一、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)

framework层打log

三种类型的log,三种类型分别为MAIN、RADIO和SYSTEM, Log.(v,d,i,w,isLoggable,e,wtf,wtfStrack,wtfQuiet,println)(TAG,""...
  • sky_mine
  • sky_mine
  • 2016年11月30日 11:32
  • 290

android framework层 学习笔记(一)

最近在研究android framework层的开发。  先来一张frame work的源码结构图
  • zmobs
  • zmobs
  • 2014年11月26日 17:23
  • 2656

Android: Framework层理解(一)

不管你是做手机系统开发还是APP开发,Framework层你肯定会碰到。除非你所做的事情只是UI的优化。    那么Framework具体的工作是做什么呢? 简单一句话:提供Android开发人员一系...
  • lyjIT
  • lyjIT
  • 2016年09月08日 16:13
  • 8365

android开发---8.framework层的java应用接口demo

android开发---8.framework层的java应用接口demo
  • wangcong02345
  • wangcong02345
  • 2016年07月01日 19:32
  • 646

第三学:logcat---android中Runtime层和Framework层的log调用层次分析

这一节的学习比较简单,可以看出作者的主要目的在于基于比较简单的android的LOG日志系统来将android当中从java层到framework层再到runtime层的调用流程拉通进行讲解一次,所以...
  • class_brick
  • class_brick
  • 2017年02月23日 09:23
  • 488

Android Framework中的Application Framework层介绍

引言                 Android的四层架构相比大家都很清楚,老生常谈的说一下分别为:Linux2.6内核层,核心库层,应用框架层,应用层。我今天重点介绍一下应用框架层Fram...
  • qhshiniba
  • qhshiniba
  • 2014年03月26日 14:56
  • 18211

Android framework层JNI的使用浅析

JNI技术对于多java开发的朋友相信并不陌生,即(java native interface),本地调用接口,主要功能有以下两点: 1、java层调用C/C++层代码 2、C/C++层调用java层...
  • yuanzeyao2008
  • yuanzeyao2008
  • 2015年01月05日 12:27
  • 28797

Android Framework 分析---2消息机制Native层

在Android的消息机制中,不仅提供了供Application 开发使用的java的消息循环。其实java的机制最终还是靠native来实现的。在native不仅提供一套消息传递和处理的机制,还提供...
  • xcy2011sky
  • xcy2011sky
  • 2014年05月16日 12:19
  • 2937

Android Framework应用框架层和HAL硬件抽象层以及Linux Kernel底层之间的关系

Android应用框架层和硬件抽象层以及底层之间的关系1. JNI技术: (1).JNI技术简单的说就是在本地Java语言声明本地方法和加载动态链接库(.so文件) (2)...
  • u014225510
  • u014225510
  • 2015年05月04日 20:37
  • 2056

Android USB 在framework相关源码浅析

Android USB 在framework相关源码分析USB插拔这一块内容比较多,在实际开发过程中,暴露出来的问题也比较多,而且有些问题还比较不好解决,定位过程中不能一下就定位出是framework...
  • xxm282828
  • xxm282828
  • 2016年02月03日 10:57
  • 1547
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一、framework层涉及到的usb相关文件
举报原因:
原因补充:

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