Android Debug Bridge
【一、简介】
Android Debug Bridge(ADB),Android 调试桥是一种多用途的命令行工具。通过它我们可以和模拟器或者设备通信。ADB是一个客户端-服务器程序,包括三个组成部分:
- 客户端(Client),运行在你用于程序开发的电脑上。你可以通过shell端使用adb命令启动客户端。其他Android工具,例如ADT插件和DDMS同样可以产生adb客户端。
Eclipse 中的 ADT、SDK Tools 目录下的 DDMS、Monitor 等工具,都是同样地用到了 adb 的功能来与 Android 设备进行交互。
PC 端的手机助手,诸如 360 手机助手、豌豆荚、应用宝等,其除了安装第三方应用方便,其他的功能,基本上都可以通过 adb 命令去完成,这里建议测试人员尽量不要在电脑上安装这类手机助手,因为其自带的 adb 程序可能会与 Android SDK 下的 adb 程序产生冲突,5037 端口被占用,导致使用 adb 命令时无法连接到设备 - 服务器(Server),以后台进程的形式运行在你用于程序开发的电脑上。该服务器负责管理客户端和运行于模拟器或设备上的adb守护进程(daemon)之间的通信。
adb服务启动后,Windows 可以在任务管理器中找到 adb.exe 这个进程 - 守护进程(Daemon),以后台进程的形式运行在模拟器或者设备上。
执 行 adb shell ps | grep adbd ,可以找到该后台进程,windows 请使用 findstr 替代 grep
[xuxu:~]$ adb shell ps | grep adbd
root 23227 1 6672 832 ffffffff 00019bb4 S /sbin/adbd
这里注意一个地方,就是 adb 使用的端口号,5037,有必要记一下
【二、下载与安装】
1、下载地址:
https://developer.android.com/studio/command-line/adb
2、安装
**1)**将如下如下五个文件拷贝至C:\Windows\System与C:\Windows\System32中
将如下两个文件拷贝至C:\Windows\SysWOW
**2)**打开设置,选择高级系统设置
选择系统变量下的Path再选择编辑(你也可以选择新建,注意添加分号;
将下载的文件夹路径添加在这个地方
保存结束可以打开cmd输入adb信息验证下:
【三、指令总结】
$adb root //restarts the adbd daemon with root permissions
$adb shell // shell 是 linux 系统的字符交互界面,输入shell可以进入Android的shell
$adb devices // Prints a list of all attached emulator/device,如果同一台主机插入不止一台手机,输入如下:
e4b25377 device
emulator-5554 device
前面的为ID号,可以用ID来区分不同的设备进行操作。
$adb –s ID 操作 //用这个格式的指令来操作不同设备eg: adb -s id号 install -r xx.apk(安装apk)
$ adb reboot bootloader //指令进入fastboot模式, *:fastboot reboot:退出该模式并重启
$ adb shell getprop //从系统的各种配置文件中读取设备信息 ro. 开头的代表只读属性
$adb shell getprop ro.build.version.incremental //查看MIUI版本
$ adb shell dumpsys activity a //获取activity信息
$ adb shell pm list users //查看用户,确定当前手机内是否有双开或者分身,以及用户编号
$ adb shell am force-stop +PKname //强制关闭某个包,在某些应用卡死了的情况下使用
$adb start-server/kill-server //启动和关闭ADB服务
$adb install/uninstall xxx.apk //安装和卸载apk
$ adb uninstall –k xxx.apk //卸载软件但是保留配置和缓存文件
$ adb push <本地路径> <远程路径> //从电脑上发送文件到设备
$adb pull <远程路径><本地路径> //把设备(手机)上的文件或者文件夹复制到本机电脑
$adb shell pm list packages //列出手机装的所有app的包名
$adb shell pm list packages –s //列出系统应用的所有包名
$adb shell pm list packages -3 //列出除了系统应用的第三方应用包名
$adb shell pm list packages | grep qq //使用grep来过滤
$adb shell pm clear //清除应用数据与缓存,和在应用设置里用清清除数据功能一样
$adb shell am start –n //启动某个应用,但是不能直接用包名,可以用某个activity的名称。例如登录的activity,或者设置的activity,简而言之,可以快速启动某个应用的某个页面
$adb reboot // 重启
$adb shell wm size //查看屏幕分辨率
$adb shell wm density //查看屏幕密度
$adb disable-verity //这个指令是用于disable verity功能的,详情可搜索“dm-verity”,在不disable的情况下,即使adb remount了也可能无法读写
$adb remount //重新挂载系统分区,使系统分区重新可写
$adb shell dumpsys meminfo PACKAGE_NAME //获取内存信息
$adb shell dumpsys activity top | findstr ACTIVITY //要获取当前界面的Activity
$adb shell top //查看设备cpu和内存占用情况
$adb shell ps|grep //查看某一程序进程,如果不用包名也可以写成 adb shell ps |findStr <关键词>