1. adb_trace_init : 初始化调试级别, 通过设置ADB_TRACE=all环境变量可打开调试
默认的服务端口为5037,也可以通过环境变量ANDROID_ADB_SERVER_PORT来设置。
执行adb命令时过程:
*) 把命令变成字符串(例如 host:devices)
*) 通过tcp连接到本地服务器(5037端口)
*) 如果服务器开着的, 则发送host:version 命令请求服务器的版本号并判断是否相同,若不相同执行host:kill, 然后再启动服务器.
*) 如果服务器没开着,则开启子线程执行 adb fork-server server 命令, 并把错误重定向到父进程的pipe.
=============================================================================
1. 初始化 init_transport_registration
transport的添加和删除事件异步执行。
注册时atransport->transport_socket 和 atransport->fd 也组成一个异步执行事件, 并创建读写两个线程负责远端数据的发生和接收.
异步事件负责分发处理从远端接收到的数据.
所有的transport都挂在transport_list列表中(可以遍历此表列出transport).
注销transport时关闭其异步事件处理,一般来说注销transport是由于读写线程读远端数据错误造成的。读写线程同时关闭所有使用这个transport的socket。
在客户端,用户可以通过device_tracker_list来实时跟踪设备的插入或者拔出状态.
2. usb_vendors_init 加载所有usb设备的产商ID。代码默认支持一些usb产商, 也可以通过 ~/.android/adb_usb.ini 文件来指定usb pid.
3. usb_init : 启动线程监视usb设备变化, 每隔1s遍历/dev/bus/usb目录下的所有usb设备.
4. local_init : 初始化,默认情况会去连接本地的模拟器设备.
5. adb_auth_init 初始化密钥
6.