精华内容
下载资源
问答
  • Adb
    万次阅读 多人点赞
    2021-10-08 16:31:57

    和优秀的人在一起,会被他的趣味、热情所感染、喜欢探索世间的一切事物,并从中得到感悟与成长。

    注意:本篇文章中所展示的案例是在Mac book 运行。

    1.ADB概念

    ADB,全名Android Debug Bridge,是Android提供的一个通用的调试工具,是一个C/S架构的命令行工具,通过这个工具,使得我们的PC能够和Android设备来进行通信。

    1.2 ADB的工作原理:

    adb包含三个部分:

    a. Client端:运行在开发机器中,用来发送adb命令,比如电脑

    b. Daemon守护进程:运行在调试设备,比如手机、模拟器中,用来接收并执行adb命令

    c. Server端:运行在开发机器中,用来管理Client端和手机端Daemon之间的通信。

    当在电脑命令行窗口中输入adb 命令时,会先执行adb客户端,客户端拿到命令之后,会发送给adb服务端,server再将命令传给Daemon,最后在手机上执行。假如在手机上安装一个应用,会有一个返回信息,会将信息传递给adb服务器,adb 在给客户端,最后显示在命令行。

    总结:

    a.client端将命令发送给server端

    b.server端会将命令发送给daemon端

    c.daemon端进行执行

    d.将执行结果,返回给server端

    e.server端将结果再返回给client端

    2.准备工作

    2.1 打开调试模式

    为了使用adb来控制、调试Android设备,我们需要使用USB数据线将PC和Android手机设备进行连接,当然必须要将手机设备的USB调试模式打开。

    Android模拟器种类:
    - Android Studio emulator(官方),要根据电脑的性能进行使用
    - genymotion(国外的软件,需要访问外网才可以使用)
    - mumu、雷电、夜神、逍遥等第三方模拟器(强烈推荐第三方软件)
    

    2.2 安装adb

    1)安装JDK

    2)Mac中安装ADB命令

    brew install android-platform-tools
    

    3.ADB相关指令牛刀小试

    3.1 简单指令

    1)验证adb 是否安装成功

    adb help
    或者
    adb --help
    会出现adb的版本和帮助信息
    

    2)开启或者关闭服务

    adb start-server:开启adb服务
    adb kill-server:关掉adb服务
    

    3)adb devices : 查看电脑是否连接设备

    adb devices
    或者
    adb devices -l
    或者
    adb get-state
    

    使用该指令将返回设备状态信息,该状态信息包含三种

    • devices状态:表示移动设备或者模拟器已经连接到adb服务器上
    • offline状态:表示移动设备或者模拟器没有连接到adb服务器或者没有响应
    • no devices状态:表示没有设备或者模拟器连接

    3)adb install :安装

    第一种情况:当只有一台设备时

    a. adb install apk路径
    b. adb install -r :覆盖原来安装的软件,并保留数据
    c. adb install-multiple demo1.apk demo2.apk
    d. adb install -t demo1.apk : 如果在安装中,遇到Failure [INSTALL_FAILED_TEST_ONLY installPackageLI],则使用该命令
    e. adb install -d demo.apk :允许版本代码升级
    f. adb install -g demo.apk :授权所有运行时权限
    

    第二种情况:当有多台设备时,使用-s 序列号 进行指定设备

    adb -s 序列号 install apk路径
    

    4)adb uninstall :卸载

    adb unstall demo.apk
    卸载设备中的应用,并希望保留配置和缓存文件
    adb -s 序列号 shell pm uninstall -k 包名
    

    5)adb pull : 将移动设备中的文件传送到PC上

    adb pull 移动设备路径 PC路径
    

    6)adb push :将PC中的文件传送到移动设备端

    adb push PC路径 移动设备路径
    adb push PC路径 /sdcard/
    

    7)adb logcat:查看和跟踪系统日志缓冲区的信息,

    adb logcat >/Users/xxxx/demo.log
    或者
    adb -s 序列号 logcat >/Users/xxxx/demo.log
    
    日志等级,优先级从低到高分为以下几种:
    
    V——Verbose(最低等级,开发调试中的一些详细信息,仅在开发中使用,不可再发布产品中)
    
    D——Debug(调试,用于调试的信息,可以在发布产品中关闭,比较常见)
    
    I——info(信息,一般提示性的信息)
    
    W——Warning(警告)
    
    E——Error(错误,已经出现可影响运行的错误,比如应用crash时输出的日志)
    
    在 E级别中可以搜索这个关键字:fatal exception
    
    ANR全名Application Not Responding,也就是应用无响应当操作在一段时间内系统无法处理时,系统层面会弹出ANR对话框
    
    在日志中查询:ANR in
    
    在查到ANR in 之后 上一行会有
    
    

    查看日志常用的参数

    adb logcat -v time 打印时间
    adb logcat -v color 使用不同的颜色来显示每个优先级
    adb logcat -f <filename> 将日志输出到文件(文件存在手机上),例如,adb logcat -f /sdcard/log.log
    adb logcat > log.log 保存日志到PC上
    adb logcat -c 清理已存在的日志
    adb logcat *:W 打印Warning以上级别的日志
    adb logcat ActivityManager:D  '*:S' 过滤tag 为ActivityManager,level为Debug及以上级别的日志(S表示无记载silent,最高优先级,绝不输出任何内容)
    
    

    3.2 高级指令——adb shell指令讲解

    Android系统是基于Linux系统开发的,支持常见的Linux命令,这些命令都保存在手机“/system/bin”文件中,如下图所示:
    在这里插入图片描述

    1)显示手机当前目录的所有内容

    adb shell ls
    或者分开使用
    ~~adb shell
    ~~ls
    注意:使用exit退出提示符
    如果在操作过程中出现没有权限的问题,则需要切换root用户
    su root
    

    2)查看电池电量的相关信息

    adb shell dumpsys battery 
    
    描述信息:
    AC powered: false        //false表示没有使用AC电源供电
    USB powered: true        //true表示使用USB电源供电
    Wireless powered: false     //false表示没使用无线电源
    status: 2             //2表示电池正在充电,1表示没充电
    health: 2             //2表示电池状态优秀
    present: true           //true表示已安装电池
    level: 42             //电池百分比
    scale: 100             //满电量时电池百分比为100%(不确定是否正确)
    voltage: 3868           //电池电压
    temperature: 330         //电池温度为25摄氏度
    technology: Li-ion        //电池类型为锂电池
    

    在这里插入图片描述

    3) 查看无限网络信息

    adb shell dumpsys wifi
    由于该指令输出的信息很多,所以在此加入参数,当输出信息在显示满一页的时候就暂停输出
    如果想再继续输出,则需要按空格键继续显示下页内容。按“Q”停止显示后续输出信息。
    adb shell dumpsys wifi | more
    
    

    4)查看电源管理相关信息

    adb shell dumpsys power
    含义:可以判断手机是否处于锁屏状态
    
    根据关键信息进行查询,仅输出屏幕关闭时间的设置信息
    windows设置:
    adb shell dumpsys power | findstr "mScreenOffTimeoutSetting"
    Linux设置:
    adb shell dumpsys power | grep "mScreenOffTimeoutSetting"
    

    5)am

    am 全称为Activity Manager ,可以使用am去模拟各种系统的行为
    adb shell am start com.taobao.taobao/com.taobao.tao.TBMainActivity
    

    6)获取包名和界面名

    包名(Package,具有唯一性)

    界面名(activity)

     adb shell dumpsys window | grep mFocusedApp
     或者
     adb shell "dumpsys window | grep mCurrentFocus"
    

    在这里插入图片描述

    7)获取启动时间——adb shell am start -W 包名/界面名

    ➜  ~ adb shell am start -W com.qiniu.pili.droid.shortvideo.effect.demo/com.qiniu.pili.droid.shortvideo.demo.activity.MainActivity
    Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.qiniu.pili.droid.shortvideo.effect.demo/com.qiniu.pili.droid.shortvideo.demo.activity.MainActivity }
    Status: ok
    Activity: com.qiniu.pili.droid.shortvideo.effect.demo/com.qiniu.pili.droid.shortvideo.demo.activity.MainActivity
    ThisTime: 289
    TotalTime: 289
    WaitTime: 311
    Complete
    
    以毫秒为单位
    点击图标然后松开,这个时间是系统时间(分配内存和CPU的时间),应用application等待资源启动的时间
    ThisTime:为界面启动耗时
    TotalTime:应用自身启动耗时=ThisTime + 应用application等资源启动时间
    WaitTime:系统启动耗时=TotalTime + 系统资源启动时间
    

    8)adb shell pm list packages 列出包名

    - 列出所有的包名
    	adb shell pm list packages
    - 列出通过第三方安装的包
    	adb shell pm list packages -3
    	
    pm全称为package manager ,可以使用pm命令模拟Android行为或者查询设备上的应用。
    

    9)获取手机Android系统各个分区的相关信息
    在这里插入图片描述
    10) 清除应用数据及缓存
    pm 表示package management

    adb shell pm clear <包名>
    

    4. adb 模拟手机按键

    相关文档:https://developer.android.com/reference/android/view/KeyEvent

    1. 打开“指针位置” 设置
      设置——开发者选项——指针位置
    2. 执行 adb shell input 命令
      在这里插入图片描述
    - 模拟点击事件
    adb shell input tap x坐标 y坐标
    adb shell input tap 528 1539
    
    - 输入文本
    首先需要把光标移到输入框,然后执行以下命令
    adb shell input text zengzengzeng
    
    - 模拟滑动事件
    adb shell swip <起点x> <起点y> <终点x> <终点y> <滑动时长>
    adb shell input swipe 528 1539 528 1300 2000
    2000为滑动时间,单位是毫秒
    
    - 返回键
    adb shell input keyevent 4
    
    - 返回home键(置应用于后台)
    adb shell input keyevent 3
    
    - 音量放大
    adb shell input keyevent 24
    
    - 音量缩小
    adb shell input keyevent 25
    

    5. CPU使用情况

    1)查看当前系统CPU使用情况:

    adb shell dumpsys cpuinfo
    获取的是一段时间的均值
    

    在这里插入图片描述
    2)进程占用情况

    adb shell top 
    adb shell top | grep "包名" —— 查看某个包的一些性能
    adb shell top -d 1 |grep "包名"
    

    3)内存使用情况

    adb shell dumpsys meminfo
    
    更多相关内容
  • C# 实现的 Android ADB工具

    热门讨论 2017-06-23 14:01:10
    开源的 C# Android ADB工具
  • adb 1.0.36 and fastboot

    千次下载 热门讨论 2016-10-12 23:22:24
    adb 1.0.36 and fastboot。
  • ADB V1.0.31

    热门讨论 2015-09-14 09:04:28
    ADB.exe(Android Debug Bridge version 1.0.31),可用于解决abd版本太老导致执行abd shell时出现error: device not found的问题。
  • adb interface usb driver(adb驱动 32bit&64bit) 绿色版

    万次下载 热门讨论 2014-12-25 14:37:16
    适用于插上usb线,手机adb连接不上,找不到adb interface驱动的情况.
  • android 5.1的ADB 工具ADB最新工具

    千次下载 热门讨论 2015-05-07 17:27:04
    adb 最新工具,从android SDK 24中拷贝出来
  • 安卓调试工具adb-64位 测试工具下载

    热门讨论 2017-04-05 14:44:22
    1、安卓系统的adb的全称为Android Debug Bridge,就是起到调试桥的作用,利用adb工具的前提是在手机上打开usb调试,然后通过数据线连接电脑。 2、adb存放在电脑后,还需要设置环境变量才可以使用。
  • adb Android SDK Platform-Tools 23

    热门讨论 2016-07-25 16:05:30
    Android SDK Platform-Tools 23下的adb.exe工具
  • 完整ADB工具包

    热门讨论 2015-03-07 21:18:31
    完整ADB工具包 adb.exe AdbWinApi.dll AdbWinUsbApi.dll fastboot.exe Google 原版。
  • ADB 安装驱动包(支持win10)

    千次下载 热门讨论 2015-11-16 14:20:51
    ADB 驱动安装包,支持win10系统,安装快捷.
  • adb工具(win10可用)

    热门讨论 2016-10-14 09:28:38
    亲测win10可用
  • C#调用adb传输和推送数据到安卓设备上.详见博文:http://blog.csdn.net/omguare/article/details/49804323
  • android4.4 adb工具包

    热门讨论 2014-07-16 13:13:17
    开发人员应该都知道adb的用处。怎么使用就不说了。其中adb shell时候,对于有些时候会提示找不到驱动,这是因为adb的版本过低。不能兼容高版本的安卓系统。此adb工具支持4.4及以下的各种版本。
  • adb启动app_ADB 命令大全

    千次阅读 2020-11-10 21:46:59
    常用命令用于速查,都是经常需要用到的,没有接触过adb命令从第二节开始看,对每个命令有详细解释。1. 常用命令:adb devices #查看连接设备 adb -s cf27456f shell # 指定连接设备使用命令 adb install test.apk ...

    常用命令用于速查,都是经常需要用到的,没有接触过adb命令从第二节开始看,对每个命令有详细解释。

    1. 常用命令:

    adb devices #查看连接设备
    
    adb -s cf27456f shell # 指定连接设备使用命令
    
    adb install test.apk # 安装应用
    
    adb install -r demo.apk #安装apk 到sd 卡:
    
    adb uninstall cn.com.test.mobile #卸载应用,需要指定包
    
    adb uninstall -k cn.com.test.mobile #卸载app 但保留数据和缓存文件
    
    adb shell pm list packages #列出手机装的所有app 的包名
    
    adb shell pm list packages -3 #列出除了系统应用的第三方应用包名
    
    adb shell pm clear cn.com.test.mobile #清除应用数据与缓存
    
    adb shell am start -ncn.com.test.mobile/.ui.SplashActivity #启动应用
    
    adb shell dumpsys package #包信息Package Information
    
    adb shell dumpsys meminfo #内存使用情况Memory Usage
    
    adb shell am force-stop cn.com.test.mobile #强制停止应用
    
    adb logcat #查看日志
    
    adb logcat -c #清除log 缓存
    
    adb reboot #重启
    
    adb get-serialno #获取序列号
    
    adb shell getprop ro.build.version.release #查看Android 系统版本
    
    adb shell top -m 10 #查看占用内存前10 的app
    
    adb push <local> <remote> #从本地复制文件到设备
    
    adb pull <remote> <local> #从设备复制文件到本地
    
    adb bugreport #查看bug 报告
    
    adb help #查看ADB 帮助

    2.1 连接设备

    adb [-d|-e|-s <serialNumber>] <command>

    连接指定设备

    参数:

    -d 指定当前唯一通过USB 连接的Android 设备为命令目标

    -e 指定当前唯一运行的模拟器为命令目标

    -s <serialNumber> 指定相应serialNumber 号的设备/模拟器为命令目标

    command 为所需对设备执行的命令

    示例:

    $adb 

    adb devices 查看已连接的设备信息, 上面已经连接3台设备。

    2.2 查看信息

    2.2.1 查看版本设备

    adb version 查看adb 版本信息

    adb devices 查看adb 连接设备

    示例:

    $adb 

    注意:offline 表示设备未连接成功或无响应,device 设备已连接

    adb shell getprop ro.product.model 查看设备型号

    adb get-serialno 获取设备序列号

    adb bugreport 查看bug 报告

    adb logcat 查看日志

    adb shell wm size 查看屏幕分辨率

    adb shell wm density 查看屏幕密度

    2.2.2 查看应用信息

    adb shell pm list packages 列出手机装的所有app 的包名

    adb shell pm list packages -s 列出系统应用的所有包名

    adb shell pm list packages -3 列出除了系统应用的第三方应用包名

    adb shell pm list packages | find "test" win 列出手机装带有的test的包

    adb shell pm list packages | grep ‘test’ linux 列出手机装带有的test的包

    adb shell cat /sys/class/net/wlan0/address 获取MAC 地址, 根据系统版本参数可能不同

    adb shell getprop ro.build.version.release 查看Android 系统版本

    adb shell dumpsys activity services [<packagename>] 查看正在运行的Services

    <packagename> 参数不是必须的,指定<packagename> 表示查看与某个包名相关的Services,不指定表示查看所有Services。

    <packagename> 不一定要给出完整的包名,比如运行adb shell dumpsys activity services org.zhihu,那么包名org.zhihu.demo1、org.zhihu.demo2 和org.zhihu 等相关的Services 都会列出来。

    2.3 app 安装和卸载

    2.3.1 app 安装:

    adb install <apkfile> 参数apkfile 为.apk 文件名称

    adb install -r test.apk 保留数据和缓存文件,重新安装apk

    adb install -s test.apk 安装apk 到sd 卡

    2.3.2 app 卸载

    adb uninstall <package> 参数package 为软件包名称

    示例:

    $adb 

    2.4 启动停止服务

    adb start-server

    启动adb 服务,基本不会用到,因为只要设备连接正确,会自动启动adb server

    adb kill-server

    停止adb server

    adb -P <port> start-server

    指定adb server 的网络端口port (默认为5037)启动服务

    2.5 与应用交互

    adb shell pm clear <packagename>

    清除应用数据与缓存

    示例:

    $adb 

    adb shell am force-stop <packagename>

    强制停止应用

    示例:强制停止微信

    $adb 

    adb shell am <command>

    command 命令详解

    command 用途
    start [options] <INTENT> 启动 <INTENT> 指定的 Activity
    startservice [options] <INTENT> 启动 <INTENT> 指定的 Service
    broadcast [options] <INTENT> 发送 <INTENT> 指定的广播
    force-stop <packagename> 停止 <packagename> 相关的进程

    <INTENT> 参数很灵活,和写 Android 程序时代码里的 Intent 相对应,用于决定 intent 对象的选项如下:

    -a <ACTION> 指定 action,如android.intent.action.VIEW
    -c <CATEGORY> 指定 category,如android.intent.category.APP_CONTACTS
    -n <COMPONENT> 指定完整 component 名,用于明确指定启动哪个 Activity,如
    com.example.app/.ExampleActivity

    2.5.1 启动 Activity

    adb shell am start [options] <INTENT>

    示例:

    #指定完整 component 名,用于明确指定启动哪个Activity
    

    2.5.2 启动 Service

    adb shell am startservice [options] <INTENT>

    示例: 表示调起微信的某 Service。

    $adb 

    2.5.3 发送广播

    可以向所有组件广播,也可以只向指定组件广播。

    adb shell am broadcast [options] <INTENT>

    示例:

    #向所有组件广播 BOOT_COMPLETED (开机广播)
    

    系统预定义的广播:

    ae98f3d0d25ffbbf9aaf910bfe2d97e8.png
    Android 系统预定义广播

    2.5.4 强制停止应用

    adb shell am force-stop <packagename>

    示例:

    # 查询出包名
    

    2.6 文件管理

    2.6.1 复制设备里的文件到电脑

    adb pull <设备里的文件路径> [电脑上的目录]

    示例:

    $adb 
    小技巧:设备上的文件路径可能需要 root 权限才能访问,如果你的设备已经 root 过,可以先使用 adb shell 和 su 命令在 adb shell 里获取 root 权限后,先 cp /path/on/device /sdcard/filename 将文件复制到 sdcard,然后 adb pull /sdcard/filename /path/on/pc。

    2.6.2 复制电脑里的文件到设备

    adb push <电脑上的文件路径> <设备里的目录>

    示例:

    $adb 
    小技巧:设备上的文件路径普通权限可能无法直接写入,如果你的设备已经 root 过,可以先 adb push /path/on/pc /sdcard/filename,然后 adb shell 和 su 在 adb shell 里获取 root 权限后,cp /sdcard/filename /path/on/device

    2.7 使用ADB命令模拟按键/输入

    adb shell input keyevent <keycode>

    keycode位操作参数,不同的 keycode 能实现不同的功能

    完整的功能见:https://developer.android.com/reference/android/view/KeyEvent.html

    keycode 能实现不同的功能,对应的编码如下:

    402ce3896f917025902a9c9f273af357.png
    keycode 列表

    示例:

    $adb 

    2.8 查看日志

    2.8.1 Android 日志

    [adb] logcat [<option>] ... [<filter-spec>] ...

    按级别过滤日志

    按某级别过滤日志则会将该级别及以上的日志输出,Android 日志的优先级如下:

    V —— Verbose(最低,输出得最多)
    D —— Debug
    I —— Info
    W —— Warning
    E —— Error
    F —— Fatal
    S —— Silent(最高,啥也不输出)

    示例:输出W之上的日志,W,E,F,S

    $adb 

    按 tag 和级别过滤日志

    <filter-spec> 可以由多个 <tag>[:priority] 组成

    示例:输出 tag ActivityManager 的 I 以上级别日志,输出tag MyApp的D 以上级别日志,及其它 tag 的 S 级别日志(即屏蔽其它 tag 日志)。

    $adb 

    日志格式

    adb logcat -v <format>

    指定日志输出格式

    示例:

    $adb 

    清空日志

    $adb 

    2.8.2 内核日志

    $adb 

    查看内核日志

    2.9 查看设备信息

    2.9.1 型号

    $adb 

    2.9.2 电池状况

    $adb 

    2.9.3 屏幕分辨率

    $adb 

    2.9.4 屏幕密度

    $adb 

    2.9.5 显示屏参数

    $adb 

    2.9.6 android_id

    $adb 

    2.9.7 IMEI

    $adb 

    2.9.8 Android 系统版本

    $adb 

    2.9.9 IP 地址

    $adb 

    2.9.10 Mac 地址

    $adb 

    2.9.11 CPU 信息

    $adb 

    2.9.12 内存信息

    $adb 

    2.9.13更多硬件与系统属性

    $adb 

    adb shell getprop <属性名>

    也可以

    $adb 

    329c5c700b48a5eb77dccc1c5d2ddf7c.png

    2.10 修改设置

    修改设置之后,运行恢复命令仍然不太正常,可以运行 adb reboot 重启设备或手动重启。

    修改设置的原理主要是通过 settings 命令修改 /data/data/com.android.providers.settings/databases/settings.db 里存放的设置值。

    2.10.1分辨率

    adb shell wm size 480x1024 #将分辨率修改为 480px * 1024px

    adb shell wm size reset #恢复原分辨率

    2.10.2屏幕密度

    adb shell wm density 160 #屏幕密度修改为 160dpi

    adb shell wm density reset #恢复原屏幕密度

    2.10.3显示区域

    adb shell wm overscan 0,0,0,100

    # 四个数字分别表示距离左、上、右、下边缘的留白像素,以上命令表示将屏幕底部 100px留白

    adb shell wm overscan reset #恢复显示区域

    2.10.4 关闭 USB 调试模式

    adb shell settings put global adb_enabled 0

    使用命令无法恢复调试模式,只能通过手动

    2.10.5 状态栏和导航栏的显示隐藏

    adb shell settings put global policy_control <key-values>

    <key-values> 可由如下几种键及其对应的值组成,格式为 <key1>=<value1>:<key2>=<value2>

    key 键对应的值

    35cdd400aab8d1a8062d196135ab9c3a.png

    这些键对应的值可则如下值用逗号组合

    2169efb1788d69b09b601623813fe436.png

    示例:

    # 设置在所有界面下都同时隐藏状态栏和导航栏
    

    2.11 实用功能

    2.11.1屏幕截图

    adb exec-out screencap -p > img.png # 老版本无exec-out命令,只适合于新版的截图

    adb shell screencap -p /sdcard/img.png # 老版本截图先保存在设备端

    adb pull /sdcard/img.png # 通过pull拷贝到本地

    screencap 参数:

    参数 含义

    -p 指定保存文件为 png 格式

    -d display-id 指定截图的显示屏编号(有多显示屏的情况下)

    2.11.2录制屏幕

    # 默认录制时间和最长录制时间都是180s

    adb shell screenrecord /sdcard/filename.mp4

    screenrecord 参数:

    参数 含义

    --size WIDTHxHEIGHT 视频的尺寸,比如 1280x720,默认是屏幕分辨率。

    --bit-rate RATE 视频的比特率,默认是 4Mbps。

    --time-limit TIME 录制时长,单位秒。

    --verbose 输出更多信息。

    2.11.3 重新挂载 system 分区为可写

    注:需要 root 权限

    /system 分区默认挂载为只读,但有些操作比如给 Android 系统添加命令、删除自带应用等需要对 /system 进行写操作,所以需要重新挂载它为可读写。

    步骤:

    1.进入 shell 并切换到 root 用户权限。

    $adb 

    2.查看当前分区挂载情况。

    $mount
    

    找到其中我们关注的带 /system 的那一行:

    3.重新挂载。

    $mount 

    2.11.4 查看连接过的 WiFi 密码

    注:需要 root 权限

    $adb 

    2.11.5设置系统日期和时间

    注:需要 root 权限

    $adb 

    2.11.6 重启手机

    $adb 

    2.11.7 检测设备是否已 root

    $adb 

    此时命令行提示符是 $ 则表示没有 root 权限,是 # 则表示已 root。

    2.11.8 使用 Monkey 进行压力测试

    Monkey 可以生成伪随机用户事件来模拟单击、触摸、手势等操作,可以对正在开发中的程序进行随机压力测试。

    # 向 <packagename> 指定的应用程序发送 500 个伪随机事件
    

    monkey 官方文档 https://developer.android.com/studio/test/monkey.html

    2.11.9 开启/关闭 WiFi

    注:需要 root 权限

    开启 WiFi:

    $adb 

    关闭 WiFi:

    $adb 

    2.12刷机相关命令

    注:不要随便操作,没实验过无法保证成功

    2.12.1重启到 Recovery 模式

    $adb 

    2.12.2从 Recovery 重启到 Android

    $adb 

    2.12.3重启到 Fastboot 模式

    $adb 

    2.12.4通过 sideload 更新系统

    如果我们下载了 Android 设备对应的系统更新包到电脑上,那么也可以通过 adb 来完成更新。

    以 Recovery 模式下更新为例:

    1.重启到 Recovery 模式。

    $adb 

    2.在设备的 Recovery 界面上操作进入 Apply update-Apply from ADB。

    注:不同的 Recovery 菜单可能与此有差异,有的是一级菜单就有 Apply update from ADB。

    3.通过 adb 上传和更新系统。

    $adb 

    2.13 更多 adb shell 命令

    2.13.1查看进程

    adb shell ps

    2.13.2查看实时资源占用情况

    adb shell top

    top命令参数如下:

    使用方法: top [ -m max_procs ] [ -n iterations ] [ -d delay ] [ -s sort_column ] [ -t ] [ -h ]

    -m num 最多显示多少个进程
    -n num 刷新多少次后退出
    -d num 刷新时间间隔(单位秒,默认值 5)
    -s col 按某列排序(可用 col 值:cpu, vss, rss, thr)
    -t 显示线程信息
    -h 显示帮助文档

    2.13.3其它

    299a45124aaa85ae0c91314a7607da40.png
    展开全文
  • 最新的ADB源代码

    热门讨论 2014-11-20 11:14:44
    谷歌最近的adb源码,非常使用,给大家分享下。
  • 手动安装 ADB 驱动得以进入 4.4.2 安卓手机 没驱动 adb 无法访问调试老旧加多米山寨组装机 手动安装 adb 驱动得以 USB 调试 获取 adb 驱动 Windows 设备管理器手动安装驱动 重启再次调试成功

    ##################################################

    目录

    手动安装 ADB 驱动得以进入 4.4.2 安卓手机

    没驱动 adb 无法访问调试老旧加多米山寨组装机

    手动安装 adb 驱动得以 USB 调试

    获取 adb 驱动

    Windows 设备管理器手动安装驱动

    重启再次调试成功


    ##################################################

    手动安装 ADB 驱动得以进入 4.4.2 安卓手机

    ——————————

    没驱动 adb 无法访问调试老旧加多米山寨组装机

            找来找去 可算找到一部旧的加多米山寨组装机 sp6835c1 !!!

    sp6835c1

            好家伙就问这种老古董誰家还能找着 好歹是个安卓系统:

    sp6835c1

            插上 Micro-B 口的 USB 线后一上来就提示 USB 设定:

    插 USB

            同样是 MTP 传输:

    MTP

            这是插上 USB 之后开启 MTP 模式的电脑端 设备管理器是感叹号 很明显的驱动问题:

    设备管理器

            开发者选项很好找啊 就在设置里:

    开发者

            进去之后就看到 USB 调试:

    USb 调试

            开启 USB 调试:

    开启 USB 调试

            开启成功:

    开启成功

            开启调试之后还是如此……

    设备管理器

            重启之后 简直救命!!!

    还是一样

            拔掉 USB 重插又給我换了一副嘴脸:

    重插

            USB 调试时怎么都进不去!!!

    进不去

            不信邪的我又联上局域网 IP 是 192.168.0.101

    192.168.0.101

            最后还是连不上

            绝了 对于这种老爷机我也是望洋兴叹啊 就这样吧!

    连接不上

    Microsoft Windows [版本 6.3.9600]
    (c) 2013 Microsoft Corporation。保留所有权利。
    
    C:\Users\byme>cd /adb
    
    C:\adb>dir
     驱动器 C 中的卷是 System_8.1
     卷的序列号是 B6F6-A064
    
     C:\adb 的目录
    
    2022/05/27  19:05    <DIR>          .
    2022/05/27  19:05    <DIR>          ..
    2008/01/01  00:00         5,989,376 adb.exe
    2008/01/01  00:00            97,792 AdbWinApi.dll
    2008/01/01  00:00            62,976 AdbWinUsbApi.dll
    2008/01/01  00:00           241,664 dmtracedump.exe
    2008/01/01  00:00           436,224 etc1tool.exe
    2008/01/01  00:00         1,649,152 fastboot.exe
    2008/01/01  00:00            44,032 hprof-conv.exe
    2008/01/01  00:00           231,594 libwinpthread-1.dll
    2008/01/01  00:00           489,984 make_f2fs.exe
    2008/01/01  00:00           489,984 make_f2fs_casefold.exe
    2008/01/01  00:00             1,157 mke2fs.conf
    2008/01/01  00:00           752,128 mke2fs.exe
    2008/01/01  00:00         2,834,292 NOTICE.txt
    2008/01/01  00:00                37 source.properties
    2008/01/01  00:00         1,162,752 sqlite3.exe
                  15 个文件     14,483,144 字节
                   2 个目录  8,459,608,064 可用字节
    
    C:\adb>adb devices
    * daemon not running; starting now at tcp:5037
    * daemon started successfully
    List of devices attached
    
    
    C:\adb>adb devices
    List of devices attached
    
    
    C:\adb>h:
    设备未就绪。
    
    C:\adb>adb devices
    List of devices attached
    
    
    C:\adb>ping 192.168.0.1
    
    正在 Ping 192.168.0.1 具有 32 字节的数据:
    来自 192.168.0.1 的回复: 字节=32 时间=4ms TTL=64
    
    192.168.0.1 的 Ping 统计信息:
        数据包: 已发送 = 1,已接收 = 1,丢失 = 0 (0% 丢失),
    往返行程的估计时间(以毫秒为单位):
        最短 = 4ms,最长 = 4ms,平均 = 4ms
    Control-C
    ^C
    C:\adb>adb connect 192.168.0.1
    cannot connect to 192.168.0.1:5555: 由于连接方在一段时间后没有正确答复或连接的主
    机没有反应,连接尝试失败。 (10060)
    
    C:\adb>adb devices
    List of devices attached
    
    
    C:\adb>adb devices
    List of devices attached
    
    
    C:\adb>adb connect 192.168.0.101
    cannot connect to 192.168.0.101:5555: 由于目标计算机积极拒绝,无法连接。 (10061)
    
    
    C:\adb>

            我根本就找不到这玩意儿的驱动啊我靠!!!

    ——————————

    手动安装 adb 驱动得以 USB 调试

    %%%%%

    获取 adb 驱动

            就在我准备放弃的时候 突然想明白了

            平时手机电脑传输文件的时候都是用的 MTP

            MTP 需要一个驱动

            那调试用 ADB

            那么 ADB 肯定也需要驱动!

            所以我立刻去浏览吞上找 adb 驱动

    pan.baidu.com s 1unjX_Sscf-yLh7G4-WtuGg
    1298

    手动安装ADB驱动以调试手机等设备-WindowsServer文档类资源-CSDN下载没驱动adb无法访问调试adb设备手动安装驱动方法看个人主页更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/m0_67268286/85507943

    %%%%%

    Windows 设备管理器手动安装驱动

            插上手机呢 默认 MTP 是这样样子:

    插上

            这样子带感叹号的表示没有 adb 调试驱动:

    没有驱动

            找到 adb 驱动准备安装:

    准备安装驱动

            右键选择更新驱动:

    更新驱动

            选择第二项手动寻找安装:

    第二项手动寻找安装

            默认位置:

    C:\Users\byme\Documents

    C:\Users\byme\Documents

            选择从计算机的设备列表中获取驱动:

    计算机列表

            默认点击下一步:

    下一步

            选择从磁盘安装:

    从磁盘安装

            输入驱动所在位置 这边我的是

    C:\Users\byme\Downloads\Fastboot+ADB驱动

    C:\Users\byme\Downloads\Fastboot+ADB驱动

            点击浏览 选择 android_winusb.inf 驱动文件打开:

    android_winusb.inf

            然后点击确定:

    确定

            弹出驱动信息:

    驱动信息

            点击下一步 点击确定:

    确定

            正在安装:

    正在安装

            确认安装:

    确认安装

            安装完毕:

    安装完毕

            需要重启:

    需要重启

    ——————————

    重启再次调试成功

            重启之后手机进入开发者开启调试 adb 终于有驱动了:

    adb 驱动

            还有一个硬件没有驱动不知道是什么 但是手机已经能进了:

    手机已经可以进入了

            命令摘抄:

    Microsoft Windows [版本 6.3.9600]
    (c) 2013 Microsoft Corporation。保留所有权利。
    
    C:\Users\byme>cd /adb
    
    C:\adb>adb devices
    * daemon not running; starting now at tcp:5037
    * daemon started successfully
    List of devices attached
    1OOXXAA2        device
    
    
    C:\adb>adb shell
    shell@android:/ $ pwd
    /
    shell@android:/ $ df
    Filesystem             Size   Used   Free   Blksize
    /dev                   110M    76K   110M   4096
    /mnt/asec              110M     0K   110M   4096
    /mnt/obb               110M     0K   110M   4096
    /system                250M   203M    46M   4096
    /data                  189M    85M   103M   4096
    /cache                  10M     1M     8M   4096
    /runtimenv               3M     2M     1M   4096
    /backupfixnv             3M     1M     2M   4096
    /productinfo             3M     1M     2M   4096
    /fixnv                   3M     1M     2M   4096
    /mnt/internal          189M    85M   103M   4096
    shell@android:/ $ ls
    acct
    backupfixnv
    bin
    cache
    config
    d
    data
    ddr_scan.txt
    default.prop
    dev
    etc
    fixnv
    init
    init.goldfish.rc
    init.rc
    init.sc8825.rc
    init.sc8825.usb.rc
    init.sc8825.wifi.rc
    internal
    mnt
    proc
    productinfo
    res
    root
    runtimenv
    sbin
    sdcard
    sys
    system
    ueventd.goldfish.rc
    ueventd.rc
    ueventd.sc8825.rc
    vendor
    shell@android:/ $ exit
    
    C:\adb>

    展开全文
  • 文章目录前言一、adb下载地址二、安装步骤1.解压到当前文件夹2.配置环境变量3.验证是否安装成功三、adb命令大全1.查看设备2.Adb应用管理总结 前言 adb下载安装配置以及环境变量的配置 一、adb下载地址 Windows...


    前言

    adb下载安装配置以及环境变量的配置


    一、adb下载地址

    Windows版本:https://dl.google.com/android/repository/platform-tools-latest-windows.zip
    Mac版本:https://dl.google.com/android/repository/platform-tools-latest-windows.zip
    Linux版本:https://dl.google.com/android/repository/platform-tools-latest-linux.zip

    二、安装步骤

    1.解压到当前文件夹

    如图所示:
    在这里插入图片描述

    2.配置环境变量

    1、键盘按键:win + r 2、打开“系统属性”窗口 3、“高级”→“环境变量”→“系统变量” 4、找到“Path”双击,新建,复制adb路径进去,点击“确定”按钮,添加成功

    如图所示:
    在这里插入图片描述

    3.验证是否安装成功

    1、键盘按键:win + r 2、输入cmd,回车 3、输入adb或者adb --version(注意是两个“-”)

    如图所示:
    在这里插入图片描述
    在这里插入图片描述> 代表安装成功

    三、adb命令大全

    1.查看设备

    命令
    adb devices

    输出
    List of devices attached
    ba709211 device
    192.168.31.12:6666 device

    参数含义
    -d指定当前唯一通过 USB 连接的 Android 设备为命令目标
    -e指定当前唯一运行的模拟器为命令目标
    -s指定相应 serialNumber 号的设备/模拟器为命令目标

    命令:
    adb -s 192.168.31.12:6666 shell wm size //指定查看192.168.31.12:6666设备的屏幕分辨率

    示例输出
    Physical size: 1080x2400 //当前设备分辨率为1080x2400

    // 单独给某个设备安装应用
    adb -s 192.168.31.12:6666 install a.apk

    启动adb服务:adb start-server

    关闭adb服务:adb kill-server

    查看adb版本:
    // 命令
    adb version

    //示例输出:
    Android Debug Bridge version 1.0.31

    2.Adb应用管理

    查看测试机所有包名:
    // 命令
    adb shell pm list package
    //示例输出:
    package:com.miui.screenrecorder
    package:com.android.cts.priv.ctsshim
    package:com.qualcomm.qti.qms.service.telemetry
    package:com.miui.contentextension
    package:com.hpbr.bosszhipin
    package:com.qualcomm.qti.qcolor
    package:com.android.internal.display.cutout.emulation.corner
    package:com.android.internal.display.cutout.emulation.double
    package:com.android.providers.telephony
    package:com.android.dynsystem
    package:com.miui.powerkeeper
    package:com.goodix.fingerprint

    可在adb shell pm list package后面加参数,进行过滤查看:

    参数显示内容
    查看所有应用
    -f显示应用关联的 apk 文件
    -d只显示 disabled 的应用
    -e只显示 enabled 的应用
    -s只显示系统应用
    -3只显示第三方应用
    -i显示应用的 installer
    -u包含已卸载应用

    查看第三方软件包名
    // 命令
    adb shell pm list package -3
    //示例输出
    package:com.miui.screenrecorder
    package:com.hpbr.bosszhipin
    package:com.android.bankabc
    package:com.tmri.app.main
    package:com.sankuai.meituan

    模糊查找应用
    // 命令
    adb shell pm list packages hevc //查找带有hevc字符的应用

    //示例输出
    package:com.hevc.hevcandroid


    也可以使用grep或者find来查找
    // grep命令(可能出现命令不支持)
    adb shell pm list packages | grep hevc
    //示例输出,此时我们可以换成find来查找
    ‘grep’ 不是内部或外部命令,也不是可运行的程序
    或批处理文件。
    //find命令,注意find后面需要用“”来引出查找的关键字符
    adb shell pm list packages | find “hevc”
    //示例输出
    package:com.hevc.hevcandroid

    3.安装APK

    参数含义
    -l将应用安装到保护目录 /mnt/asec
    -r允许覆盖安装
    -t允许安装 AndroidManifest.xml 里 application 指定 android:testOnly=“true” 的应用
    -s将应用安装到 sdcard
    -d允许降级覆盖安装
    -g授予所有运行时权限

    // 安装一个应用
    adb install D:\工作文件\Cccccccc-v1.1.9.apk
    //示例输出状态,代表安装成功
    327 KB/s (25896185 bytes in 77.157s)
    Success

    4.卸载APK

    卸载应用
    // 卸载应用的命令
    adb uninstall com.hevc.hevcandroid
    adb uninstall -k com.hevc.hevcandroid //-k参数可选,代表卸载应用但保留数据和缓存目录
    //示例输出
    Success

    5.查看设备信息

    查看测试机cpu信息
    // 命令
    adb shell dumpsys cpuinfo

    //示例输出
    CPU usage from 109969ms to 3541ms ago (2021-12-21 23:02:32.737 to 2021-12-21 23:06:03.127) with 50% awake:
    18% 884/surfaceflinger: 8.4% user + 10% kernel / faults: 364 minor 1 major
    15% 27200/com.miui.home: 11% user + 4.1% kernel / faults: 19211 minor
    ~
    ~
    ~
    查看测试机内存信息
    // 命令
    adb shell dumpsys meminfo

    // 示例输出
    Applications Memory Usage (in Kilobytes):
    Uptime: 175868513 Realtime: 362111869
    Total PSS by process:
    513,739K: com.tencent.mm (pid 25157 / activities)
    311,194K: com.miui.home (pid 27200 / activities)
    246,700K: system (pid 1795)

    查看测试机所有包信息
    // 命令
    adb shell dumpsys activity

    //示例输出
    ACTIVITY MANAGER SETTINGS (dumpsys activity settings) activity_manager_constants:
    max_cached_processes=60
    background_settle_time=60000
    fgservice_min_shown_time=2000
    fgservice_min_report_time=3000
    fgservice_screen_on_before_time=10
    ~
    ~
    ~

    查看设备型号
    // 命令
    adb shell getprop ro.product.model

    //示例输出
    Redmi K30 5G

    查看电池状态
    // 命令

    adb shell dumpsys battery
    //示例输出
    Current Battery Service state:
    AC powered: false
    USB powered: false
    Wireless powered: false
    Max charging current: 0
    Max charging voltage: 0
    Charge counter: 2943720
    status: 3
    health: 2
    present: true
    level: 69 //代表当前电量
    scale: 100 //代表最大电量
    voltage: 4021
    temperature: 314
    technology: Li-poly

    查看设备分辨率
    // 命令

    adb shell wm size
    //示例输出
    Physical size: 1080x2400

    查看屏幕密度
    // 命令
    adb shell wm density

    //示例输出
    Physical density: 440

    查看屏参数
    // 命令

    adb shell dumpsys window displays
    //示例输出
    WINDOW MANAGER DISPLAY CONTENTS (dumpsys window displays)
    Display: mDisplayId=0
    init=1080x2400 440dpi cur=1080x2400 app=1080x2261 rng=1080x941-2305x2261
    deferred=false mLayoutNeeded=false mTouchExcludeRegion=SkRegion((0,0,1080,2400))
    mFreeFormWindowShowed=false

    查看android id
    // 命令
    adb shell settings get secure android_id

    //示例输出
    5adc06ce10522b40

    查看android 系统版本
    // 命令
    adb shell getprop ro.build.version.release

    //示例输出
    10

    修改设置
    注:修改设置之后,运行恢复命令有可能显示仍然不太正常,可以运行 adb reboot 重启设备,或手动重启。
    修改分辨率
    // 命令,将分辨率设置为:480x1024
    adb shell wm size 480x1024
    恢复原分辨率
    // 命令
    adb shell wm size reset
    修改屏幕密度
    // 命令,将屏幕密度修改为 160dpi
    adb shell wm density 160
    // 命令
    adb shell wm density reset

    5.使用 Monkey 进行压力测试

    monkey是android自带系统自带的程序,可以生成伪随机用户事件来模拟单击、触摸、手势等操作,可以对正在开发中的程序进行随机压力测试。

    简单用法

    // 命令,表示向 com.tencent.mm 程序发送 500 个伪随机事件,并且将日志指定位置保存
    adb shell monkey -p com.tencent.mm -v 500 > 日志路径.txt
    -v 是提升日志级别,最高可加三个-v
    //示例输出
    bash arg: -p
    bash arg: com.tencent.mm
    bash arg: -v
    bash arg: 500
    args: [-p, com.tencent.mm, -v, 500]
    arg: “-p”
    arg: “com.tencent.mm”
    arg: “-v”
    arg: “500”
    data=“com.tencent.mm”

    monkey多种参数代表的含义
    在这里插入图片描述举例一个monkey操作
    adb shell wm density 160
    // 命令
    adb shell wm density reset
    // 命令,表示向 com.tencent.mm 程序发送 500 个伪随机事件,并且将日志指定位置保存
    adb shell monkey -p com.tencent.mm -v 500 > 日志路径.txt
    -v 是提升日志级别,最高可加三个-v
    //示例输出
    bash arg: -p
    bash arg: com.tencent.mm
    bash arg: -v
    bash arg: 500
    args: [-p, com.tencent.mm, -v, 500]
    arg: “-p”
    arg: “com.tencent.mm”
    arg: “-v”
    arg: “500”
    data=“com.tencent.mm”
    // 命令,向腾讯微信发送500次随机事件,每次事件间隔为300毫秒。其中设定触屏的事件占比为50%。
    adb shell monkey --throttle 300 --pct-touch 50 -p com.tencent.mm 500
    //示例输出
    bash arg: --throttle
    bash arg: 300
    bash arg: --pct-touch
    bash arg: 50
    bash arg: -p
    bash arg: com.tencent.mm
    bash arg: 500

    6.日志查看

    日志查看
    控制台直接打印
    // 命令,没有添加任何过滤,代表打印所有日志,测试意义不大
    adb logcat

    指定打印某个应用的日志
    // 命令
    adb shell pm list packages tenc //模糊查询带有tenc字符的应用程序
    //示例输出
    package:com.tencent.mm
    package:com.tencent.qqlive
    package:com.tencent.mobileqq
    package:com.tencent.soter.soterserver
    //使用find或者grep来筛选应用日志,这里我拿微信来测试打印日志
    adb logcat | grep com.tencent.mm
    adb logcat | find “com.tencent.mm” //find后面需要加上“”引号

    将日志导出到指定的路径
    // 命令
    adb logcat > D:\log.txt
    在这里插入图片描述

    总结

    未经允许禁止转载,所有创作都是日常工作时整理出来的,也是为了方便记录自己的成长。

    展开全文
  • adb下载安装及使用

    万次阅读 多人点赞 2019-05-23 12:00:15
    adb介绍: Android Debug Bridge(安卓调试桥) tools。它就是一个命令行窗口,用于通过电脑端与模拟器或者是设备之间的交互。 ADB是一个C/S架构的应用程序,由三部分组成: 运行在pc端的adb client: 命令行程序”...
  • 32位及64位Windows 7的Adb驱动,支持一键安装。
  • ADB详解

    千次阅读 2021-04-15 22:49:59
    文章目录ADB相关一、安装与连接二、常规使用方法三、Adb shell四、性能统计dumpsys五、Monkey工具 ADB相关 ADB(Android Debug Bridge)顾名思义—“安卓调试桥”。 是一种功能多样的命令行工具,可与设备进行通信。...
  • adb1.0.32 for windows

    千次下载 热门讨论 2014-12-18 10:39:52
    Windows下1.0.32版本的adb
  • adb运行以及adb常用命令

    千次阅读 2022-02-15 16:02:02
    怎么通过adb链接上真实android手机 1.用usb线将手机连接到电脑上 2.打开手机设置->开发者选项(关于手机点击五下版本号)->usb调试模式 3. 一直允许该台检测到设备 4.adb devices 检测设备 怎么连接上真实...
  • adb push不支持中文乱码的解决方案

    热门讨论 2013-08-05 17:41:56
    2.在windows底下文件(夹)命名所采用的是GBK编码,而在Android中采用的UTF-8编码,所有使用adb 的push和pull命令时就会导致由于编码方式的不同而产生的错误,解决这一问题就只有对adb工具的源代码进行修改,让adb对...
  • Android adb查看网络连接情况

    千次阅读 2021-12-26 21:48:49
    Android 使用adb查看网络使用情况主要的adb命令: adb shell ifconfig //查看配置信息 adb shell dumpsys connectivity //查看连接情况 db shell netstat //查看连接状态和地址 adb shell ip ru //查看路由策略
  • adb教程(很详细)

    千次阅读 多人点赞 2020-11-16 08:32:21
    adb教程(非常详细) 原创博客不易,如若转载请注明来源。 如有错误及问题,欢迎评论指出。一起学习 文章目录adb教程(非常详细)简介安装WindowsUbuntuMac连接设备真机模拟器使用详解adb相关开启/停止 `adb 服务`...
  • ADB工具介绍

    万次阅读 2021-11-23 00:04:42
    简单介绍adb工具及常用指令
  • adb使用教程

    千次阅读 2022-04-15 01:08:49
    adb介绍adb(Android Debug Bridge)是在嵌入式软件测试中经常使用到的一个工具,它是一个命令行工具,我们可以通过它与仿真器或连接的Android设备进行通信adb下载...auth_key=7f22...
  • 快速设置 android手机为tcp调试,使用wifi,...点击 air adb后,即可通过电脑使用命令行 adb connect ip 链接手机进行adb调试,可在eclipse中直接调试手机,而无需使用usb数据线。支持开机自动启动,设置需要的模式。
  • ADB常用命令大全

    万次阅读 2022-03-12 23:37:00
    ADB常用命令大全,全家桶哦~~,快快收藏吧
  • python adb开发-adb常见用法

    千次阅读 2021-04-06 14:29:43
    ADB,即 Android Debug Bridge,是 Android 开发/测试人员不可替代的强大工具。 adb与应用的连接 1.启动/停止 启动 adb server 命令: adb start-server (一般无需手动执行此命令,在运行 adb 命令时若发现 adb ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 232,610
精华内容 93,044
关键字:

Adb

友情链接: fuhaoxuanzeqi.rar