Android usb gadget类型

以下列举了常见的几种Android USB Gadget类型:

Android USB Gadget类型

1、UMS:USB mass storage,USB大容量存储,也被称为UMS,USB MSC。在旧版Android手机上会将其暴露给计算机,有如下几种缺点:

  • USB mass storage是flash driver,外部hd,SD卡和其他USB存储设备使用的标准协议。驱动器使其自身完全对计算机可见,就像它是内部驱动器一样;
  • 这种方式存在问题。无论什么设备访问存储,都需要对其进行独占访问。将存储连接到计算机时,它与设备上运行的Android操作系统断开连接。存储在SD卡或USB存储器上的任何文件或应用程序在连接到计算机时都将不可用,此时是计算机独占;
  • 由于必须可以从Windows设备访问文件系统,因此必须使用FAT文件系统对其进行格式化。 微软不仅拥有对FAT施加的专利,而且FAT也是一个较旧的,较慢的文件系统,没有现代许可系统。

2、MTP:Media Transfer Protocol,媒体传输协议,主要用于传输媒体文件,当Android使用该协议,将其连接到电脑上,会显示一个媒体设备。该协议与USB mass storage的工作方式非常不同。

  • MTP不会将Android设备的原始文件系统暴露给Windows,而是在文件级别运行;
  • Android设备不会将其整个存储设备暴露给Windows。 相反,当将设备连接到计算机时,计算机将查询设备,并且设备会响应其提供的文件和目录列表。
  • Android可以选择它呈现出来的文件,并隐藏系统文件,以便其他人无法查看或修改它们。 如果尝试删除或编辑无法修改的文件,设备将拒绝该请求,将会看到错误消息。
  • 计算机不需要对存储设备进行独占访问,因此无需连接存储,断开连接或为不同类型的数据分别设置分区。Android也可以使用它想要的ext4或任何其他文件系统,但Windows不必了解该文件系统。
  • 在实践中,MTP的功能很像USB mass storage。 例如,MTP设备显示在Windows资源管理器中,因此您可以浏览和传输文件。

3、PTP:Picture Transfer Protocol,图像传输协议,当Android使用此协议时,它在计算机上显示为数码相机。MTP是基于PTP的,在此基础上进行扩展,PTP通常由数码相机使用;

4、CDC:Communication Device Class,通信设备类,被USB主机用于识别(确定)含有几种不同类型接口的通信设备。更多关于CDC的内容,请参考:ACM-ECM-NCM-EEM-RNDIS-RmNet介绍

5、FFS:Function Filesystem,允许通过用户空间创建function,类似于GadgetFS(gadget configfs)通过用户空间创建USB Gadget。在之前的文章中,我们讲到通过gadget configfs创建一个mass storage的gadget,里面就用到mass_storage的function,这个function是在drivers/usb/gadget/function/f_mass_storage.c就已经预先定义好的了。这里的FFS允许通过用户空间创建function,就不用在内核中预先定义。

6、MIDI:MIDI是一种技术标准,描述了通信协议,数字接口和电连接器,它们连接各种电子乐器,计算机和相关的音频设备,用于播放,编辑和录制音乐。通俗的理解就是audio设备。

7、HID:Human Interface Device,人机交互接口。

8、SERIAL:串口

9、ADB:Android Debug Bridge,Android调试桥,更具体的介绍详见Androidadb的编译配置及常见问题


参考资料

Title:Android usb gadget类型

Author:Victor Huang

Time:2019-08-11 / 14:08

Link:http://wowothink.com/ffcaead/

License: Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)