android sdk 深入理解adb
adb
服务器-客户端程序包括3部分
1.客户端(client) 在开发机器上运行,可通过adb命令行呼叫客户端,ADT插件和DDMS同样需要adb客户端
2.服务端(server) 在开发机器上作为后台进程运行(adb.exe打开你的任务管理器查看进程),用于客户端和adb daemon的互动交流。
3.后台程序daemon 运行在虚拟机或设备上
开始adb client的时候,检查server是否运行,否则打开服务,TCP是5037,用于接受adb client发来的命令。所有的client使用5037端口与服务端互动。
服务端建立与模拟器或设备的连接。检查在5555到5582之间的奇数(odd-numbered)端口号的模拟器/设备,找到后,建立与此端口的连接。然后模拟器/设备获得一系列连续的端口,偶数端口号(even-numbered)用于console控制台连接,奇数号用于adb连接。
Emulator 1, console: 5554
Emulator 1, adb: 5555
Emulator 2, console: 5556
Emulator 2, adb: 5557
and so on...
Emulator 1, adb: 5555
Emulator 2, console: 5556
Emulator 2, adb: 5557
and so on...
通过客户端可以控制任何的模拟器/设备
adb 相关命令
基本命令行
adb [-d|-e|-s <serialNumber>] <command>adb get-state 获取当前状态
adb start-server 检查adb服务进程是否开启
adb kill-server 终止adb服务进程
当前设备
adb devices
从设备“拉”文件到电脑
adb pull <remote> <local>从电脑“推”文件到设备
adb push <local> <remote>安装apk
adb install <path_to_apk>指定设备
adb -s <serialNumber> <command>
UNIX shell脚本
打开activity
adb shell am start -a android.intent.action.VIEW卸载app
adb shell pm uninstall com.example.MyApp打开路径
adb shell ls /system/bin打开调试
adb logcat