adb 称之为:Android 调试桥 (Android Debug Bridge )
是一种允许模拟器或已连接的 Android 设备
进行通信的命令行工具
,它可为各种设备操作提供便利,如安装和调试应用
,并提供对 Unix shell(
可用来在模拟器或连接的设备上运行各种命令
)的访问。
- 可以在Android SDK/platform-tools
中找到adb 工具或下载 ADB Kits
。
注: 有部分命令的支持情况可能与 Android 系统版本及定制
ROM
的实现有关。
ADB 是 Android SDK 里的一个工具, 用这个工具可以直接操作管理Android模拟器或者真实的Android设备
。它的主要功能有:
在设备上运行Shell命令;
将本地APK软件安装至模拟器或Android设备;
管理设备或手机模拟器上的预定端口;
在设备或手机模拟器上复制或粘贴文件。
发出 adb 命令从·命令行终端调用客户端
·。每个模拟器或设备实例
上作为后台进程运行。开发计算机上作为后台进程运行
。adb连接真机或者模拟器一共有以下3种方法
启动夜神模拟器
连接模拟器
查看连接的设备
启用设备的开发者选项,启动调试功能
将手机与电脑通过 USB 线连接
cmd框输入adb devices
命令查看设备连接情况
将 Android 设备与要运行 adb 的电脑连接到同一个局域网
同一个 WiFi
。将手机与电脑通过USB
线连接。让设备在 5555 端口
监听TCP/IP
连接
通过 IP 地址连接设备,在cmd窗口输入adb connect '手机ip地址'
注:连接不成功,检查以下问题
- 确保
网络和端口
都没有问题,使用的是原装数据线
- 请确认 Android 设备与电脑是连接到了同一个 WiFi,然后再次执行
adb connect
那一步- 通过
adb kill-server
重新启动 adb 然后从头再来一次试试
常用命令
adb version 查看版本
adb devices -l 查看已链接的设备
adb shell getprop ro.build.version.release 查看Android内核版本号
#查看正在运行的服务:语法 adb shell dumpsys activity services []
adb shell dumpsys activity | findstr “mResume” 1.查看手机屏幕当前应用页面Activity名称以及程序包名,入口类名 (window)
adb shell dumpsys window | grep mCurrent 2.查看手机屏幕当前应用页面Activity名称以及程序包名,入口类名(mac)
adb start-server 启动adb 一般无需手动执行此命令,在运行 adb 命令时若发现 adb server 没有启动会自动调起。
adb kill-server 停止adb
adb -P <port> start-server 指定 adb server 的网络端口 ADB的默认端口为 5037。
注意
adb shell dumpsys activity | find “mFocusedActivity”
注意:如果是真机的话,Android版本一般是在8.0
以上,命令需要改下adb shell dumpsys activity | find “mResumedActivity”
1、adb devices: 获取设备列表和设备的状态
2、adb get-state: 获取设备的状态(设备的状态有三种:device,设备连接正常;offline,连接出现异常,设备无响应;unknown,设备未连接;)
3、adb kill-server,adb start-server: 结束,启动adb服务
4、adb install -r: 覆盖安装应用(apk)
5、adb uninstall: 卸载应用(应用包名)
6、adb pull : 将设备上的文件复制到电脑上
7、adb push : 将电脑上的文件复制到设备上
8、adb reboot : 重启设备
9、adb connect : 远程连接设备
10、adb disconnect : 断开设备连接
列出安装在设备上的应用
adb shell pm list package -s 列出系统应用
adb shell pm list package -3 列出第三方的应用
adb shell pm list package -i 列出来源
db shell pm list package -f 列出包名和路径
列出应用apk的位置
adb shell pm path packagename 列出应用apk的位置#### 列出应用的详细信息
列出应用的详细信息
adb shell pm dump packagename
清除应用的缓存数据
adb shell pm clear packagename
安装卸载手机应用:
首先将test.apk文件push到手机目录中比如/data/local/tmp
adb shell pm install /data/local/tmp/test.apk 安装
adb shell pm install –r /data/local/tmp/test.apk 重新安装
adb shell pm uninstall -k packagename 卸载,加k保留缓存数据
adb shell pm install -d apk 允许降级安装
1、启动一个 Activity:adb shell am start -n activityname
2、等待页面启动完成:adb shell am start -W activityname
3、先停止应用再启动:adb shell am start -S activityname
4、结束应用: am force-stop packagename
监控应用数据:
adb shell dumpsys cpuinfo cpu信息
adb shell dumpsys meminfo 内存信息
adb shell dumpsys power 电源信息
adb shell dumpsys battery 电池信息
adb shell dumpsys wifi wifi信息
adb shell dumpsys notification 通知信息
adb shell dumpsys activity 获取页面信息
杀死monkey进程:
ps | grep monkey 查看monkey进程的pid
kill pid 杀死monkey进程
dumpsys procstats --hours 12 最近12小时的资源情况
adb shell screenrecord /sdcard/demo.mp4 视频录制命令
可选参数:
限制录制时间:
参数: --time-limit
指定视频分辨率大小:
参数: --size
指定视频的比特率:
参数: --bit-rate
在命令行显示log:
参数: --verbose
adb shell screencap -p /sdcard/screen.png 截图并保存到指定位置
adb shell input:
text 输入文本
keyevent 输入事件
tap 点击
swipe 滑动<坐标><坐标为原地,则是长按>
adb shell dumpsys activity top | findstr ACTIVITY 获取当前界面的Activity
adb shell dumpsys activity | findstr mFocusedActivity 获取当前页面的activity
adb shell uiautomator dump [file] 获取当前页面的xml信息
text 控件中显示的文本内容
class 控件的类型
package 包名
content-desc 说明
checkable 是否允许check
checked check状态
clickable 是否允许click
enabled 控件状态
focusable 是否允许获取焦点
focused 是否获取到焦点
scrollable 是否允许滚动
long-clickable 是否允许长安
password 是否是密码控件
selected select状态
bounds 控件绘制的长宽及位置 四个数据,分成两组,分别是 左上坐标和右下坐标
logcat -s ActivityManager 打印页面的log信息
adb shell getprop ro.product.model 获取设备型号
adb shell getprop ro.build.version.release 获取设备 Android 系统版本
adb get-serialno 获取设备的序列号(设备号)
adb shell wm size 获取设备屏幕分辨率
adb shell dumpsys activity |find "mFocusedActivity" 查看前台应用包名,适用于 Android 7.0 以下,必须先启动 app
adb shell dumpsys activity |find "mResumedActivity" 查看前台应用包名,适用于 Android 8.0 以上,必须先启动 app