一、framework层涉及到的usb相关文件

转载 2013年12月04日 10:10:25

转自:http://blog.sina.com.cn/s/blog_6100a4f10101ee3t.html

ICS4.0 Framework层的usb框架

             Android 下的usb主要工作还是在androidframework层。主要有以下几个文件:

1.1 UsbDeviceManager.java/

主要完成功能切换及状态的更新,需要向外广播状态,接收kernel发送过来的event信息。实质性的工作都在这里边完成。

1.2  UsbManager.java / usbService.java/

这两个主要是接口,因为usb的工作本身就应该在kernel里,framework只是简单的逻辑流程重组。Android framework****Manager.java是给用户提供的接口。

下面这个体现了managerservice的工作方式,用户会通过usbManager的调用来完成usb功能的设置。

public int setUsbTethering(boolean enable) {

        UsbManager usbManager = (UsbManager)mContext.getSystemService(Context.USB_SERVICE);

………………

              else {

              mUsbTetherRequested = true;

                     usbManager.setCurrentFunction(UsbManager.USB_FUNCTION_RNDIS, false);

                 }

1.3 UsbSettings.java

packages/apps/Settings/src/com/android/settings/deviceinfo

这个是用户在setting中,选择不同的存储类型时的,进行的界面更新及状态切换的处理流程。

1.4 UsbSettingsManager.java

frameworks/base/services/java/com/android/server/usb

没有明白具体功能是干什么的,在UsbDeviceManager.java有用到一些。

发送usb device attached

1.5 StorageNotification.java/

frameworks/base/packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java

主要用来处理存储设备相关动作的状态更新、通知。主要涉及两个方面:一是插入usb cabel后的状态栏更新,主要针对ums功能。二是storage状态发生改变时,会调用这个activity,如mountunmount等。

所以入口主要有两个:onUsbMassStorageConnectionChangedonStorageStateChanged分别处理usb连接状态的改变和storage状态的改变。

1.6 UsbStorageActivity.java/

       启动u盘功能后的一些ui的处理,状态的监控等处理,做的工作不多。

1.7 Usbstring.c

       kernel/driver/usb/gadget/ 用来进行字符串格式的转换

1.8 UsbDevice.java

/frameworks/base/core/java/android/hardware/usb

       主要是usb设备的一些接口,基本上是获取的设备描述符。

1.9 UsbDeviceConnection.java

/frameworks/base/core/java/android/hardware/usb

usb设备的打开,基本传输等动作,似乎是native层面的。

1.10 UsbDisconnectedReceiver.java

/frameworks/base/core/java/android/hardware/usb

接收断开的信息,android.hardware.usb.action.USB_DEVICE_DETACHED

1.11 UsbHostManager.java

       处理host情况下的事件流程:

UsbDeviceAdded函数:报告有USB 设备插入,通过getCurrentSettings().deviceAttached发送intent消息:UsbManager.ACTION_USB_DEVICE_ATTACHED

对应的JNI函数com_android_server_UsbHostManager.cpp 

其中的monitorUsbHostBus会调用usb_host_run函数(system/core/libusbhost/usbhost.c)不停的读取bus总线,读取到以后,调用注册的回调函数usb_device_added--àUsbDeviceAdded(method_usbDeviceAdded)

Java对象(实例)创建涉及到的内存分配及相关事宜

1 成员变量 成员变量和局部变量不一样,首先是作用域不同:成员变量的作用域在整个类里,而成员变量的作用域在定义它的代码块里;其次是局部变量没有显式初始化使用该局部变量,编译器会报错,但是成员变量在没有...
  • Jexhen
  • Jexhen
  • 2017年03月01日 13:05
  • 226

项目涉及到的文件收集_未整理

  • 2011年08月22日 01:51
  • 2.61MB
  • 下载

关于LSA的相关学习---短文本聚类涉及到的知识,一种主题模型(原载于我的百度空间)

豆瓣上有一篇简单介绍LSA和PLSA的文章 链接http://www.douban.com/note/63275934/,我也已经保存到本地了 【Latent semantic analy...

动态内存分配涉及到的二级指针,传递相关

今天看了《Linux C程序设计王者归来》动态内存管理一节。发现了一个很容易犯错的地方,特写此博客,以作总结。 正确的代码如下:#include #includevoid f1(int **p) { ...

凡问题涉及到相关部门的部长

你先别走,我还有几个问题。”李克强指着汇报材料中的每项措施,逐一问询。“提高对燃煤发电企业脱硫、脱硝电价的补偿标准,已经完全落实了吗?”“新能源汽车的购买补贴是否该加大力度?”“提高主要污染物的排污收...

ABAP业务涉及到的相关数据库表 .

n    表的要求 l   表中使用的字段请尽量参照各模块的SAP字段标准使用习惯;    例:“ZXSLRZX销售组织对应的利润中心”中的销售组织应该使用VKORG、利润中心应该使用PRCT...

TLD取经之路(4)-- 始于足下--tldInit.m中涉及到的相关函数

matlab版源程序:http://download.csdn.net/detail/cv_richie/4982673 C程序:http://download.csdn.net/detail/cv...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一、framework层涉及到的usb相关文件
举报原因:
原因补充:

(最多只允许输入30个字)