您的位置:首页 > 移动开发 > Android开发

Android Debug bridge

2011-11-19 11:55 204 查看
ADB全称Android Debug Bridge, 是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备。

三个组件

客户端(Client):运行在我们的开发电脑上,可以通过adb命令来启动Client,其他的android工具,如ADT插件和DDMS也可以创建Client。服务器(Server):作为后台程序运行在我们的开发电脑上,它的作用是负责Client与模拟器或手机设备上adb 守护进程(Deamon)之间的通信。守护进程(Deamon):在模拟器或手机设备后台运行的ADB进程。

主要功能

快速更新设备或手机模拟器中的代码,如应用或Android系统升级;在设备上运行shell命令;管理设备或手机模拟器上的预定端口;在设备或手机模拟器上上传下载文件

运行原理

启动过程如下图:Server端启动绑定的是本机的5037端口。Client端用5037与服务器端对话。任何Deamon都会取5555到5585之间两个连续的端口,其中奇数端口是负责与adb链接,偶数端口是负责与控制台链接。服务器端通过扫描5555到5585之间的奇数端口来寻找模拟器或设备实例并与找到的建立链接。一旦服务器与所有模拟器或设备建立连接,就可以用adb命令控制和访问这些实例。因为服务器管理模拟器/设备实例的连接,和控制处理从多个dbc 客户端的的命令,你可以从任意一个客户端(或脚本)控制任何模拟器/设备实例。以下部分描述通过命令使用adb和管理模拟器/设备的状态。要注意的是如果你用装有ADT插件的Eclipse来开发Android应用程序,那么你不需要通过命令行方式使用adb。ADT插件已经透明的把adb集成到Eclipse IDE中。当然,如果必要的话,你仍然可以直接使用adb命令,比如调试。

发出ADB命令

你可以在你的开发机的命令行或脚本中使用adb命令:
$adb [-d|-e|-s ]
当你输入命令后,adb 客户端被启动,客户端并不与模拟器/设备实例相关,所以如果有多个模块器/设备在运行,你需要使用-d选项去识别命令执行的目标实例。

ADB命令

Options:
-d:仅仅通过USB接口来管理abd.
-e:仅仅通过模拟器实例来管理adb.
-s:通过模拟器/设备的允许的命令号码来发送命令来管理adb
General:
devices:查看所有连接模拟器/设备的设施的清单.
version:查看adb的版本序列号
logcat[] []:将日志数据输出到屏幕上
bugreport:查看bug报告,如dumpsys,dumpstate和logcat信息。
push:将本地文件拷贝到模拟器/设备上
pull:从模拟器/设备上拷贝文件到本地
install:将本地apk包拷贝到模拟器/设备上并安装 shell:登陆设备,可执行shell命令
scripting:
adb wait-for-device - 阻塞adb server直接设备可用
adb start-server - 启动 adb server
adb kill-server - 关闭 adb server
adb get-state - 打印信息: offline | bootloader | device
adb get-serialno - 打印信息:
adb status-window - 不断地打印指定设备的状态信息
adb remount - 在可读写设备上重新挂载/system分区
adb reboot [bootloader|recovery] - 重新启动设备,选择性地进入bootloader或recovery模式
adb root - 用root权限重新adb
More adb info:
adb help
参考资料:http://developer.android.com/guide/developing/tools/adb.html
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: