adb 是 Android 的远程调试命令,在 Android 打开 USB 调试模式或直接打开 ADB 功能,就可以用 shell 命令来控制系统。
Android 打开 USB 调试
打开 Android 系统的开发者模式的通用模式。
1 | 1.打开“设置”应用,然后滚动到底部。 |
安装 adb
Mac OS X
使用 brew 可以很简单的安装
1 | $ brew cask install android-platform-tools |
随后就可以使用 adb 命令,不需要在配置各种环境变量
其他安装方式见 Set up adb on Mac OS X
链接设备
启动服务
1 | $ adb start-server |
查看设备列表
1 | $ adb devices |
关闭服务
1 | $ adb kill-server |
链接设备
当设备没有出现在设备列表中时,我们可以手动链接设备
1 | $ adb connect <ip>:5555 |
Android 的 uiautomator 模块默认使用了 5555 端口号
链接成功后,设备会出现在设备列表中
1 | $ adb devices |
使用 shell 命令
1 | $ adb shell |
当有一个设备时,默认链接,如果有多个设备,需要指定设备
1 | $ adb -s 10.0.2.1:5555 shell |
如果不想每次都手动指定,可以设置环境变量
1 | export ANDROID_SERIAL="DC886B75" |
shell 登陆后即可使用常见的脚本命令,比如 ls
1 | $ adb shell |
如果只是执行简单的命令,我们也可以直接在本地执行
1 | $ adb shell ls |
包管理
安装
1 | $ adb install test.apk |
卸载
1 | $ adb uninstall com.test.app |
查看包安装列表
1 | $ adb shell pm list packages |
包路径
1 | $ adb shell pm path com.android.phone |
清除数据和缓存
1 | $ adb shell pm clear com.test.abc |
进程管理
启动应用
1 | $ adb shell 进入 Android |
或者直接运行
1 | $ adb shell am start -n <package-name>/<package-name>.<activity-name> |
一些系统应用打开方式
1 | # 设置 |
这里有个问题,我们可以通过 pm
命令查到 apk 的包名,但是 activity
就不方便知道了,我们希望只通过包名就能启动应用,从网上查到这个方法
1 | $ am start -a android.intent.action.MAIN -n <package-name> |
但是这种方式,我在模拟器中只可以打开系统应用,第三方应用会报错,再次查找发现可以使用 monkey
命令来启动应用
1 | $ monkey -p <package-name> -c android.intent.category.LAUNCHER 1 |
经过测试,这种方式是比较方便打开各种应用
杀掉应用
1 | $ am force-stop <package-name> |
杀掉所有后台进程
1 | $ am kill-all |
更多命令
推送文件到设备
1 | $ adb push test.apk /data |
拉取设备的文件到本地
1 | $ adb pull /data/test.apk |
查看设备 SSN 号
1 | $ adb shell getprop | grep ro.boot.serialno |
参考
