Android手机的USB
Android的手机很少使用USB Host功能,不过很多平板上倒是有,其实Android USB Host功能比较简单,就是驱动USB Controller和Port的驱动程序而已。我们主要讨论USB Slave功能,这是每一个USB手机上没都有的。
我们一般如何使用USB呢?基本上有如下几个功能。
1,充电
2,连接到电脑,当作大硬盘使用
3,连接到电脑,出现MTP或者PTP
4,连接到电脑,支持adb命令
5,连接到电脑,支持各个厂商自己的协议,例如三星Kies 华为的HSuite LG的LG套件
6,连接到电脑,实现USB网卡的功能,也就是所谓的USB捆绑

其实Android的OS是基于linux的,所以,Android的USB支持,就是linux的USB支持。要了解Android的USB支持,必须懂一个gadget的概念。Linux-USB Gadget 驱动框架实现了 USB 协议定义的设备端的软件功能。
一个UDC(usb设备控制器)上面要挂一个usb_gadget_driver,usb_composite_dev挂到UDC的gadget上,usb_composite_driver挂到usb_composite_dev上,然后在usb_composite_dev上挂上一个usb_configuration配置,然后在usb_configuration的function链表中挂一个function,并且把function写入对应的config 的interface数组中。这就是整个流程。
所以,USB实现不同的功能,就是建立起系统不同的function,然后按照协议制定方式,给其提供相应的数据。
在android里面,有一个重要的prop设置,persist.sys.usb.config我们可以通过这个配置,设置支持不同的功能
例如adb shell setprop persist.sys.usb.config mtp,adb,acm
mtp就是支持媒体传输协议(Media Transfer Protocol,MTP)
acm就是支持USB模拟串口的功能,是microsoft定义的一种标准设备,不需要另外安装主机端驱动,就可以驱动它。
adb就是google的调试桥了,主机端需要状态相应的驱动程序。
....


更多相关文章

  1. Android(安卓)文件上传
  2. android 打电话的例子
  3. Android特色开发(5):账户管理
  4. Android实现打开系统照相机&相册图片展示
  5. 浅谈Android辅助功能 AccessibilityService
  6. Android(安卓)-SharedPreferences
  7. Android集成Mob3.0.0短信验证功能SMSSDK For Android
  8. android如何调用其他应用的方法或属性
  9. Android下使用Hessian与Java服务端通讯

随机推荐

  1. mysql索引使用率监控技巧(值得收藏!)
  2. Mysql中mysql.user用户表详解
  3. sql脚本函数编写postgresql数据库实现解
  4. win10 64位 MySQL8.0下载和安装教程图解
  5. Mysql大型SQL文件快速恢复方案分享
  6. Mysql在线回收undo表空间实战记录
  7. MySQL关于ERROR 1290 (HY000)报错解决方
  8. MySQL使用Replace操作时造成数据丢失的问
  9. MySQL 数据库铁律(小结)
  10. MySQL版本低了不支持两个时间戳类型的值