目录
ADB 的全称是 Android Debug Bridge,中文翻译为 Android 调试桥。顾名思义,主要用于 PC 端和 Android 设备调试连接的作用。从最早的 Eclipse 到现在的 Android Studio,其实底层和 Android 设备的链接,都是依赖的 ADB 实现的。
Mac 配置环境变量
打开终端,在当前用户目录下输入 touch .bash_profile
回车,再输入 open -e .bash_profile
,在弹出的文件编辑页面中输入:
export ANDROID_HOME=/Users/username/Library/Android/sdk
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools
保存并关闭文件,关闭终端,重新打开终端,输入“adb” 进行验证。
如果安装了 oh-my-zsh,可能还是无法使用 adb 命令,这是因为 bash shell 以及 zsh shell 读取的是两种系统环境变量(使用 adb 的前提是你肯定已经在 bash 的 .bash_profile 配置了相关 android tool 的环境变量了,从而才能使用 adb 命令),然而在使用 zsh shell 的时候,你并没有把相关的环境变量的配置设置到 .zshrc 中(功能上类似 bash 的 .bash_profile)。既然是 .zshrc 没有配置相关环境变量设置,把 bash 中 .bash_profile 全部环境变量加入就好了,具体操作如下:
打开终端在当前用户目录下输入命令:open .zshrc
,在打开的文件中找到 #User configuration
部分,添加 source ~/.bash_profile
,关闭并保存文件,最后执行命令 source .zshrc
即可。
常用命令
1、查看当前连接设备
可以通过 adb devices
命令,查看当前已经连接的设备,包括模拟器、通过 USB 或 无线 连接的设备。
2、关闭和启动服务
- 启动服务:adb start-server
- 关闭服务:adb kill-server
正常来说,ADB 的服务,在连上设备的时候,就是一直在后台保持运行的。但是偶尔会出现一些其他的软件争抢权限的问题。通常来说,把 ADB 的服务杀掉重新启动,大部分问题都可以得到解决。
3、安装应用
通常用 adb install
[apk路径] 就可以把 APK 安装到设备上,但是有时候会有一些安装的 APK 版本号的限制,例如没法从低版本覆盖安装设备上高版本的情况。这个时候可以添加 -r
参数,即可完成强制覆盖安装。
如果遇到 Failure [INSTALL_FAILED_TEST_ONLY] 错误,是因为 Android Studio 3.0
会在 debug apk 的 manifest
文件 application
标签里自动添加 android:testOnly="true"
属性。可以添加 -t
参数,即可完成安装。
4、卸载应用
卸载应用的命令是 adb uninstall [需要卸载的APK的包名]
。
5、上传文件到设备
可以通过 adb push
<电脑文件路径> <设备目标路径> 命令,将电脑上的文件,上传到手机中,如果不需要重命名,最后指向目录即可,如果需要重命名,跟在目录后面即可,符合Linux命令的风格。
6、下载文件到电脑
可以通过 adb pull
<设备文件路径> [电脑目标路径] 命令,将手机上的文件,下载到电脑上。可以指定目录和文件名,如果不指定,会把文件下载到当前的用户目录下。
7、进入 shell 环境
通过 adb shell
命令进入 shell 环境。Android 底层本身也是 Linux 系统,同样有自己的 shell 环境,通常可以执行一些常用的 Linux 命令。
8、通过 ip 连接设备
可以通过 IP 连接设备。端口号默认是 5555,只要没有修改,这里可以不需要填写端口号。命令为:adb connect <ip 地址> [端口号]
。
9、断开通过 ip 连接的设备
通过 adb disconnect
断开的连接,只能是通过 IP 进行连接的设备,通过 USB 连接的设备,不会被 disconnect 命令断开。
10、查看帮助文档
adb help
同时操作多个设备
一般的命令仅适用于操作单个设备的情况。如果同时连接多个设备,可以通过 -s
参数来区分设备进行操作。
调试命令
1、进入应用信息页,查看当前应用的权限,设置,占用空间等。
adb shell am start -a android.settings.APPLICATION_DETAILS_SETTINGS -d package:<PACKAGENAME>
-a
是指定 ACTION 的参数,还有其他参数可以指定,如:DATA_URI、CATEGORY、COMPONENT、FLAG 等,可以在输入 adb shell am start 后,按 Tab 键查看提示。
2、清理应用数据
adb shell pm clear <PACKAGENAME>
3、启动某个已安装的App
adb shell am start -n <PACKAGENAME>/<.ACTIVITY>
-n
是指定 COMPONENT 的参数。
4、查看进程信息
adb shell ps [| grep 关键字]
5、查看设备上安装的所有 App 的包名
adb shell pm list package [-f]
不加
-f
参数,只会列出应用的包名;加上-f
参数,会打印出 apk 的安装目录,可以根据该路径导出 Apk 文件。
6、查看磁盘空间情况
adb shell df
7、获取手机系统版本号
adb shell getprop ro.build.version.release
8、截屏
adb shell screencap <存储路径>
9、录屏
adb shell screenrecord <存储路径>
10、获取设备 ID
adb shell getprop ro.serialno
11、屏幕分辨率/像素密度
➜ ~ adb shell wm size
Physical size: 1080x2340
➜ ~ adb shell wm density
Physical density: 440
12、IP 地址
adb shell ifconfig
13、内存信息
adb shell cat /proc/meminfo
14、查看当前正在运行的 Activity/Service 的所有信息
adb shell dumpsys activity [services]
15、重启手机
adb reboot
16、使用 Monkey 进行压力测试
adb shell monkey [-p ALLOWED_PACKAGE] -v <COUNT>