[测试开发] ADB(Android Debug Bridge)
2018-08-18 本文已影响0人
杨山炮
Android学习笔记
ADB命令
-
常规操作
- adb root 以 root 权限运行 adbd
- adb remout 重新挂债
- adb shell 进入手机
- adb start-server 启动adb进程
- adb kill-server kill adb 进程
- adb devices 查看手机设备
- adb version adb版本
- adb install <apk file> 安装apk
- adb shell pm clear <packagename> 清除应用缓存
- adb -P <port> start-server 指定adb 的网络端口
- adb -s <serial-naumber>制定手机序列号
- adb shell am force-stop <packagename> 强制删除应用
- adb uninstall [-k] <packagename> 删除应用 -k表示保留缓存数据
-
截屏操作
- adb shell screencap -p /sdcard/name.png 截取png图片到SD卡下面
- adb pull /sdcard/name.png ./ 将sd卡线面的图片渠道本地当前文件夹
- adb shell screenrecord /sdcard/filename.mp4 录屏
-
查看应用列表
-
adb shell pm list packages
-
参数 显示列表 无 所有应用 -f 显示应用关联的 apk 文件 -d 只显示 disabled 的应用 -e 只显示 enabled 的应用 -s 只显示系统应用 -3 只显示第三方应用 -i 显示应用的 installer -u 包含已卸载应用 <FILTER>
包名包含 <FILTER>
字符串
-
-
查看应用activity
- adb shell dumpsys activity activities | grep mFocusedActivity
-
与应用交互
- 常用Command
Command 用途 start [options] <INTENT>
启动 <INTENT>
指定的 Activitystartservice [options] <INTENT> 启动 <INTENT>
指定的 Servicebroadcast [options] <INTENT> 发送 <INTENT>
指定的广播force-stop <packagename> 停止 <packagename>
相关的进程-
参数 含义 -a <ACTION> 指定 action,比如 android.intent.action.VIEW
-c <CATEGORY> 指定 category,比如 android.intent.category.APP_CONTACTS
-n <COMPONENT> 指定完整 component 名,用于明确指定启动哪个 Activity,如 com.example.app/.ExampleActivity
- Options参数的值
| 参数 | 含义 |
| ------------------------------------------------------------ | ---------------------- |
| `--esn <EXTRA_KEY>` | null 值(只有 key 名) |
| `-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE>` | string 值 |
| `--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE>` | boolean 值 |
| `--ei <EXTRA_KEY> <EXTRA_INT_VALUE>` | integer 值 |
| `--el <EXTRA_KEY> <EXTRA_LONG_VALUE>` | long 值 |
| `--ef <EXTRA_KEY> <EXTRA_FLOAT_VALUE>` | float 值 |
| `--eu <EXTRA_KEY> <EXTRA_URI_VALUE>` | URI |
| `--ecn <EXTRA_KEY> <EXTRA_COMPONENT_NAME_VALUE>` | component name |
| `--eia <EXTRA_KEY> <EXTRA_INT_VALUE>[,<EXTRA_INT_VALUE...]` | integer 数组 |
| `--ela <EXTRA_KEY> <EXTRA_LONG_VALUE>[,<EXTRA_LONG_VALUE...]` | long 数组 |
-
调用activity :adb shell am start [options] <INTENT>
- adb shell am start -n org.mazhuang.boottimemeasure/.MainActivity --es "toast" "hello, world"
-
调用Service:adb shell am startservice [options] <INTENT>
- adb shell am startservice -n com.tencent.mm/.plugin.accountsync.model.AccountAuthenticatorService
-
发送广播:adb shell am broadcast [options] <INTENT>
- adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -n org.mazhuang.boottimemeasure/.BootCompletedReceiver
-
文件管理
- 复制文件到电脑:adb pull /sdcard/<device-file> <pc-path>
- 推送文件到设备adb push <pc-file> /sdcard/<device-file>
-
按键模拟
- adb shell input keyevent <keycode>
-
日志管理
Options 含义 V Verbose(最低,输出得最多) D Debug I Info W Warning E Error F Fatal S Silent(最高,啥也不输出) adb logcat <options> |grep
-
设备管理
- adb shell getprop <product-property>
-
电池管理
- adb shell dumpsys battery
-
屏幕分辨率
- adb shell wm size
-
屏幕密度
- adb shell wm density
-
显示屏幕参数
- adb shell dumpsys window displays
-
查看进程
- adb shell ps
-
资源占用情况
-
adb shell top
列名 含义 PID 进程 ID PR 优先级 CPU% 当前瞬间占用 CPU 百分比 S 进程状态(R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程) #THR 线程数 VSS Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) RSS Resident Set Size 实际使用物理内存(包含共享库占用的内存) PCY 调度策略优先级,SP_BACKGROUND/SPFOREGROUND UID 进程所有者的用户 ID NAME 进程名
-
ADB操作
提取手机中安装的apk
1. 找到程序的包名
adb shell pm list packages
nan@breeze:~$ adb shell pm list packages
package:com.android.fmradio
package:com.mediatek.gba
package:com.mediatek.ims
package:com.qihoo.safe.remotecontrol.stub
package:com.qiku.blackmagic
package:com.android.providers.telephony
package:com.qiku.logsystem
package:com.goodix.fingerprint
package:com.android.providers.calendar
package:com.daimajia.gold
2. 找到apk的位置
adb shell pm path package_name
以取出淘宝apk为例
nan@breeze:~$ adb shell pm path com.taobao.taobao
package:/data/app/com.taobao.taobao-1/base.apk
3. 将apk pull出来
adb pull apk_path
nan@breeze:~$ adb pull /data/app/com.taobao.taobao-1/base.apk
/data/app/com.taobao.taobao-1/base.apk: 1 file pulled. 9.1 MB/s (80300927 bytes in 8.424s)