adb 调式常用命令
adb 原理
ADB的全称是Android Debug Bridge,意思就是起到调试桥的作用。
adb Client
这里的Client和Daemon不是一一对应的,Client比如Eclipse DDMS,Windows终端命令行,豌豆荚,360安全卫士。
Client本质上就是Shell,用来发送命令给Server。发送命令时,首先检测PC上有没有启动Server,如果没有Server,则自动启动一个Server,然后将命令发送到Server,并不关心命令发送过去以后会怎样。
adb Server
运行在PC上的后台程序,目的是检测USB接口何时连接或者移除设备。ADB Server维护着一个”已连接的设备的链表”,并且为每一个设备标记了一个状态:
- offline
说明Server发现了一个设备,但是不能成功连接到Daemon。—-这样最好重启一下手机。 bootloader
recovery
- online
adb Daemon
运行在手机上的一个进程,作用是连接到adb server(通过usb或tcp-ip),并且为client提供一些服务。
搭建ADB环境
要使用ADB,首先我们要有ADB工具(ADB工具下载),然后配置好环境变量,请参考如何配置环境变量,方可正常使用ADB工具。
连接设备
要确保设备的adb调试已打开,请参考打开Android开发者调试。
1.通过IP远程连接
工作中的使用场景:某些设备不支持USB连接,我们就会使用IP远程连接
adb connect IP
//例如,如果设备IP是 192.168.1.111
adb connect 192.168.1.111
2.USB连接
3.查看是否已连接设备
adb devices
4.指定device进入shell模式
如果我们同时连接着多个设备,可以使用-d指定进入某一个设备的shell模式
adb -d devices_name shell
获取日志
1.清空缓存log
可以在重现BUG前执行下该命令,清除缓存Log
adb logcat -c
2.抓取log保存到本地C:\test\log.txt
adb logcat -v time >C:\test\log.txt
-v 表示格式,time表示带上时间
3.根据TAG过滤
比如我要过滤TAG为Jane的LOG
adb logcat -s "Jane"
文件操作
拉取设备文件
工作中的应用场景:
a.拉取应用crash日志
b.拉取应用APK
adb pull 设备地址 本地地址
//例如拉取设备里/sdcard/crash/log.txt 到 电脑上的C:\test\
adb pull /sdcard/crash/log.txt C:\test\
推送文件到设备
工作中的应用场景:
a.要预制APK到系统目录时使用该命令推送APK到设备里
adb push 本地地址 设备地址
//例如推送电脑上的 C:\test\test.apk 到设备的 /sdcard/
adb push C:\test\test.apk /sdcard/
查看APK信息
这里用到了aapt工具,如果没有该工具,请下载aapt工具包,配置好环境变量,请参考