• Android手机的USB


    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的调试桥了,主机端需要状态相应的驱动程序。
    ....


  • 相关阅读:
    Tuning 14 Using Oracle Data Storage Structures Efficiently
    Tuning 13 Using oracle blocks Efficiently
    Tuning 12 manage statistics
    Tuning SQL 11
    【TYVJ】1307 联络员(最小生成树)
    【wikioi】1022 覆盖(匈牙利)
    【TYVJ】1338 QQ农场(最大流+最大权闭合图)
    【BZOJ】3038: 上帝造题的七分钟2(线段树+暴力)
    【BZOJ】1087: [SCOI2005]互不侵犯King(状压dp)
    【BZOJ】1041: [HAOI2008]圆上的整点(几何)
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3005893.html
Copyright © 2020-2023  润新知