ADB是个强大的调试工具,如果你有root权限,就掌控了整个手机。
模拟按键
adb shell input keyevent 66 //回车
adb shell input keyevent 22 //导航右键
模拟点击(单击)
adb shell input tap 1000 1750 //x 1000, y 1750
开发最重要功能,抓LOG
adb logcat > <your log file dir>
备份应用和设备的数据(不包含apk)
adb backup -all
备份应用和设备的数据
adb backup -apk -all
从指定文件恢复
adb restore <your backup file dir>
列出手机装的所有app的包名
adb shell pm list packages
列出除了系统应用的第三方应用包名
adb shell pm list packages -3
与应用交互
主要是使用 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
|
<INTENT>
里还能带数据,就像写代码时的 Bundle 一样:
参数 | 含义 | |
---|---|---|
--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 com.tencent.mm/.ui.LauncherUI
表示调起微信主界面。
adb shell am start -n org.mazhuang.boottimemeasure/.MainActivity --es "toast" "hello, world"
表示调起 org.mazhuang.boottimemeasure/.MainActivity
并传给它 string 数据键值对 toast - hello, world
。
调起 Service
命令格式:
adb shell am startservice [options] <INTENT>
例如:
adb shell am startservice -n com.tencent.mm/.plugin.accountsync.model.AccountAuthenticatorService
查看Activy栈
adb shell dumpsys activity | findstr "mFocusedActivity"
adb shell dumpsys activity top
去除所有解锁手势
adb shell rm /data/system/access_control.key
adb shell rm /data/system/password.key
adb shell rm /data/system/gesture.key