Android Debug Bridge (adb)
Android Debug Bridge (adb) 是一个多用途命令行工具,用于和设备通讯。adb命令方便了一系列设备操作,例如安装和调试应用,并且提供了一个Unix shell可以在设备上运行一系列命令。adb是一个客户-服务器程序,包含3个组件:
客户端:发送指令。这个客户端程序运行在开发主机上,你可以从命令行终端发起
安装
备注
Android Studio安装Android SDK以后,adb位于 sdk/platform-tools 目录:
Windows平台安装目录:
%USERPROFILE%\AppData\Local\Android\sdk\platform-tools\Mac平台安装目录:
~/Library/Android/sdk/platform-tools
你可以通过 Android Studio 安装来获得 adb ,也可以仅下载 Android 调试桥 (adb) 的 SDK Platform Tools 软件包,下载以后解压缩就是 platform-tools 目录,请移动到对应目录下。
macOS安装adb
通过 Homebrew 可以完成:
Linux安装adb
从 Google 下载
platform-tools for linux(这里下载版本是r34.0.5)并解压缩并移动到~/adb-fastboot目录下:
wget https://dl.google.com/android/repository/platform-tools-latest-linux.zip
unzip platform-tools-latest-linux.zip
mkdir ~/adb-fastboot
mv platform-tools ~/adb-fastboot/
配置
~/.profile内容添加路径:
platform-tools 安装路径if [ -d "$HOME/adb-fastboot/platform-tools" ] ; then
export PATH="$HOME/adb-fastboot/platform-tools:$PATH"
fi
激活设备adb debugging
要通过USB连接设备使用adb,需要在设备的系统设置中激活 USB debugging ,这个激活位于 Developer options 。
对于Android 4.2或更高版本,这个 Developer options 默认是关闭的,要看到这个选项,选择菜单 Settings > About phone ,然后在 Build number 菜单上 连续点击7次 。
注意,此时设备还没有授权给主机,需要在设备上点击确认信任该电脑: 选择菜单 Settings > Developer options > USB debugging ,此时手机上会弹出确认是否信任连接主机,选择信任
此时将设备通过USB连接电脑,执行命令:
adb devices 检查连接设备adb devices
就会看到设备:
现在就可以使用adb对设备进行操作了。
安装软件包
如果你的电脑上连接了多个Android设备,则需要指定设备进行操作,请使用参数 -s <DEVICE ID> 。可以使用 adb 安装软件包:
adb -s <DEVICE ID> install <PATH TO APK>
复制文件
使用 pull 和 push 命令可以从设备或到设备复制文件,命令类似 git ,这个命令可以寄昂文件复制到设备到任何位置。而 install 命令仅能复制APK文件到特定位置。
从设备中复制文件:
adb pull remote local
向设备中复制文件:
adb push local remote
停止adb服务器
有时候需要终止adb server进程然后重新启动它以解决一些问题,例如不相应命令:
adb kill-server
shell命令
使用 adb shell 可以启动交互shell:
adb [-d |-e | -s serial_number] shell shell_command
adb提供了很多有用的Unix命令航工具,例如要查看可用的工具:
adb shell ls /system/bin
调用活动管理器(activity manager, am)
adb的shell可以使用activity manager工具来执行系统活动,例如启动一个动作,强制停止进程,广播intent,修改设备屏幕属性等:
am command
例如可以通过adb使用动作管理器命令:
adb shell am start -a android.intent.action.VIEW
调用软件包管理器(package manager, pm)
在adb的shell中,可以使用包管理器执行安装,查询软件包等操作:
pm command
例如卸载软件包:
adb shell pm uninstall com.example.MyApp
调用设备策略管理器(policy manager, dpm)
dpm command
屏幕截图
使用 screencap 命令可以截屏:
screencap filename
举例:
adb shell screencap /sdcard/screen.png
记录视频
screenrecord 命令可以记录屏幕:
screenrecord [options] filename
例如:
adb shell screenrecord /sdcard/demo.mp4
按下 Ctrl+C (在Mac上是 Command+C )就可以停止记录。默认自动停止记录是3分钟,或者启动时设置 --time-limit 。
备份照片
很多国内厂商的Android手机,例如华为,往往是通过自己定制的文件传输程序来备份照片。不仅安装的软件陈旧而且非常麻烦。解决的方法是采用 adb 获取 /mnt/sdcard/DCIM/Camera 目录下文件列表,然后再通过 adb 下载:
adb shell ls "/mnt/sdcard/DCIM/Camera" | tee files
for file in `cat files`;do adb pull /mnt/sdcard/DCIM/Camera/$file;done