ADB(Android Debug Bridge) 是一个用于管理 android 终端(或者模拟器)状态的工具。它的 c-s 工作方式包含有下面主要部分:
客户端 – 客户端运行在 PC 端,通过执行 ADB 命令,可以获得用户资格。其他的 android 工具,例如 ADT , DDMS 等也可以建立 ADB 用户。
服务器端 – 在 PC 端有一个后台程序会运行,这个后台程序主要用于处理客户端与 Android 终端(或者模拟器)之间的通信。
Daemon 服务 – 这是一个运行在 Android 终端(或者模拟器)上的后台程序。
ADB 客户端运行后,首先查看是否有运行的 ADB 服务器,如果没有,一个新的 ADB 服务程序会被建立。
* daemon not running. starting it now *
* daemon started successfully *
这个服务程序会绑定 PC 的 TCP-5037 端口,监听从 ADB 客户端发送来的命令。同时,这个服务程序会建立从客户端到 Android 终端(或者模拟器)之间的通信。每个 Android 终端(或者模拟器)需要两个相连的端口,偶数端口( 5554-5584 )用于控制台连接,奇数端口 (5555-5585) 用于 ADB 连接。服务程序会扫描从端口 5555 到 5585 的 ADB 连接,查找 ADB daemon 服务,从而建立从 Android 终端到 PC 客户端的连接。这样开发者可以通过输入 ADB 命令管理。
下面讲一讲如何在 windows 环境下使用 ADB 。下载 adb.exe ,以及一些附带的驱动, .dll 文件等。
- 开始 -> 运行 ->cmd
- 进入 adb.exe 所在的文件夹,如果 adb.exe 及相关库文件存放于 windows32(或者更新了系统path) ,则忽略这一步
- Adb devices
- Adb shell
- # ls
有的时候,由于多次连接或者不正常退出,ADB会识别出多余的(假的)终端/模拟器,这个时候在输入 > adb devices命令之后会列出一些offline的设备,输入命令,例如adb shell的时候会的这样的返回,error: more than one device and emulator。一个简单的解决方案是,关闭adb服务器,然后重新打开。
- adb kill-server
- adb devices
下面的常用的adb命令及其解释,(持续更新中)
# ps // 列出目前运行中的进程
# dmsge // 打印出内核启动时的Log
# catlog // 进入捕捉log状态