参考文档
How ADB works http://www.cnblogs.com/ifantastic/p/5186362.html
http://blog.csdn.net/stpeace/article/details/24933813
Adb是Android调试桥的缩写。在看Adb命令前,先弄清楚原理,一图顶千言。
总结下:无论是执行adb命令和还是调用ddmlib库都是作为adb client连接到pc上的adb server服务(默认端口为5037)。adb server服务再连接到各个设备上运行着的adbd服务(默认监听端口为5555),建立连接后adb server负责在adb client 和adbd之间转发信息。
方式一是直接通过TCP连接设备。方式二是通过USB连接设备。
Adb命令
help帮助信息
version版本信息
服务启停
adb start-server 启动adb server
adb kill-server 停止adb server
设备相关
adb devices显示所有设备(格式为 串号和状态)-l 显示qulifiers (如: product:MT7-CL00 model:HUAWEI_MT7_CL00 device:hwmt7)
adb wait-for-device device online前一直阻塞,可以作为不需要系统完全启动就能执行的命令的前缀使用:如 adb wait-for-device shell getprop
adb get-state
adb get-serialno
adb get-devpath
adb status-window 持续显示设备状态(有变化时更新)
adb connect [:] 通过TCP网络连接设备,即上图中的方式一。(默认端口:5555)
adb disconnect [:] 断开通过网络连接的设备
adb root 以root权限重启设备上的adbd服务
adb usb 重启adbd服务,监听USB
adb tcpip 重启adbd服务,监听指定的TCP端口
adb指定目标设备选项(可以没有)
-a 所有设备
-d USB连接的设备
-e 模拟器设备
-s 按串号指定设备
-p 不清楚
-H 指定连接的adb server主机
-P 指定连接的adb server端口
adb remout 重新以读写模式挂载/system 和 /vendor 分区
adb reboot 重启设备bootloader 重启进入bootloader模式
recovery 重启并进入recovery模式
文件传送
adb pull 把设备中的文件或目录拷贝到PC端-p 显示进度
adb push 把PC端文件或目录拷贝到设备-p 显示进度
-a 拷贝时间戳和模式
adb sync [] 把PC端改动的内容拷贝到设备(默认为/system,/vendor,/data)-l 只列出,不拷贝
adb install 安装应用-r 替换
-s 安装到SD卡
可能的错误信息:
adb uninstall 移除应用-k 保留数据和缓存目录
调用Android shell命令
adb shell 进入shell环境
adb shell [shell-cmd] 执行shell命令
网络相关
adb forward socket定向绑定:
spec格式为:
tcp:localabstract:localreserved:localfilesystem:dev:jdwp:(remote only)
--no-rebind 如果local端已经绑定则失败
adb forward --remove 移除指定的定向绑定
adb forward --remove-all
adb reverse --list 显示所有从设备发出的反向socket连接
adb reverse 反向socket绑定
spec格式为:
tcp:localabstract:localreserved:localfilesystem:
--norebind 已经绑定则失败
adb reverse --remove 移除反向绑定
adb reverse --remove-all 移除所有反向绑定
adb ppp [parm] 通过USB运行PPP
logcat
adb logcat [option] [FILTER-SPECS] 输出日志数据。可以重定向到文件:adb logcat>d:\logcat.txt
options:
-s沉默默认的过滤器,以下两种方式等效
logcat -s tagName:I
logcat tagName:I *:s
-v指定输出格式,默认为
-fLog to file
-cclear(flush) 所有log,然后退出
-ddump log,退出
-g获取log循环缓冲大小,退出
-b请求其他循环缓冲,main(default), radio, events
-Boutput log in binary
FILTER-SPECS: tagName:[PRIORITY]...
PRIORITY:
VVerbose
DDebug
IInfo
WWarn
EError
FFatal
SSilent (supress all output)
tagName和priority都可以用*作为通配符,logcat命令中必须使用-s选项或加*:s才能过滤掉无关的log
调试相关
adb bugreport 显示dumpsys, dumppstate, logcat信息
adb jdwp 显示有效地jdwp (java debug wire protocol) 进程
其他
adb emu 模拟器控制台命令
adb backup 备份系统数据到文件-f 指定文件名(省确为backup.ab)
-apk | -noapk 是否备份.apk(默认为-noapk)
-obb | -noobb 是否备份apk扩展文件.obb,默认为noobb
-shared | -noshared 是否备份Shared Storeage,SD 卡内容(默认为noshared)
-all 备份所有安装的应用
-system|-nosystem -all是否包括系统应用,(默认为system)
[] 要备份的应用列表。如果有-all或-shared,可以没有此项。
adb restore 从备份文件恢复数据。
adb disable-verity
adb keygen 生成密钥对,文件中存放私钥,.pub中存放公钥。已存在文件会被覆盖。