本文译自:http://developer.android.com/guide/topics/connectivity/usb/index.html
Android通过两种模式来支持各种USB外设和Android的USB附件(实现了Android从属协议的硬件):USB从属模式和USB主机模式。在USB的从属模式中,外部的USB硬件作为USB主机。从属USB设备的例子包括机器人控制器、基座、诊断和音乐设备、读卡器等。这种没有主机能力Android设备不具备跟USB硬件进行交互的能力。Android的USB附件必须跟Android设备协同工作,并且要必须遵循Android从属模式通信协议。在USB主机模式中,Android设备做为主机。这种设备的例子包括数码相机、键盘、鼠标以及游戏控制器等。
图1.显示了这两种不同的模式。当Android设备是主机模式时,它作为USB主机和供电总线。当Android设备是USB从属模式时,被连接的USB硬件作为主机和供电总线。
图1.USB的主机模式和从属模式
USB的从属模式和主机模式在Android3.1(API Level 12)以后被直接支持。USB从属模式还可以作为一个类库添加到更广泛的设备上,以便向后兼容Android2.3.4(API Level 10)。设备制造商能够选择在它们的系统镜像中是否包含这个附件类库。
注意:对USB主机模式和从属模式的支持,最终依赖设备的硬件,而不是平台的级别。通过使用<uses-feature>元素能够过滤支持USB主机模式和从属模式的设备。
调试方面的考虑
在调试使用USB从属功能或主机功能的应用程序时,你会把USB硬件跟Android设备连接,这样妨碍你通过USB跟Android设备连接的adb连接。通过网络连接你依然能够访问adb。以下是启用基于网络连接的adb的步骤:
1. 通过USB把Android设备连接到你的计算机上;
2. 在你SDK的platform-tools/目录下,在命令行模式下,键入adb tcpip 5555命令;
3. 键入adb connect <device-ip-address>:5555,这时你应该连接到了Android设备上,并且能够发布adb命令了,如adb logcat;
4. 键入adb usb,把你的设备设置为监听USB模式。