一、MTP简介
MTP,全称是Media Transfer Protocol(媒体传输协议)。它是微软的一个为计算机和便携式设备之间传输图像、音乐等所定制的协议。
Android从3.0开始支持MTP。MTP的应用分两种角色,一个是作为Initiator,另一个作为Responder。以"Android平板电脑"连接"PC"为例,他们的关系如图1-01所示。
Initiator —— 在MTP中所有的请求都有Initiator发起。例如,PC请求获取Android平板电脑上的文件数据。
Responder —— 它会处理Initiator的请求;除此之外,Responder也会发送Event事件。

二、MTP框架

说明:
在Kernel层,USB驱动负责数据交换,而MTP驱动负责和上层进行通信,同时也和USB驱动进行通信
(01)USB驱动负责数据交换,是指Android设备和PC通过USB数据线连接之后,实际的数据交换是经过USB数据线发送给USB驱动的。
(02)对于"MTP请求"而言,MTP驱动会从USB驱动中解析出的MTP请求数据,然后传递给上层。而对于上层传来的"MTP反馈",MTP驱动也会将反馈内容打包好之后,通过传递给USB驱动。
在JNI层,MtpServer会不断地监听Kernel的消息"MTP请求",并对相应的消息进行相关处理。同时,MTP的Event事件也是通过MtpServer发送给MTP驱动的。 MtpStorage对应一个"存储单元";例如,SD卡就对应一个MtpStorage。 MtpPacket和MtpEventPacket负责对MTP消息进行打包。android_mtp_MtpServer是一个JNI类,它是"JNI层的MtpServer 和 Java层的MtpServer"沟通的桥梁。android_mtp_MtpDatabase也是一个JNI类,JNI层通过它实现了对MtpDatabase(Framework层)的操作。
在Framework层,MtpServer相当于一个服务器,它通过和底层进行通信从而提供了MTP的相关服务。MtpDatabase充当着数据库的功能,但它本身并没有数据库对数据进行保存,本质上是通过Medi

更多相关文章

  1. Android数据持久化之File机制分析
  2. Android消息机制——ThreadLocal(Android艺术开发探索读书笔记)
  3. android BLE从入门到精通开发
  4. android adapter中到converView机制
  5. 【Android】 开发即时聊天工具 YQ (仿QQ) 教程:目录
  6. 第6章 数据存储
  7. Android(安卓)应用程序分析之Settings
  8. 深入理解 Android(安卓)的 IPC 机制--------Binder
  9. android listview 详解 开发指南

随机推荐

  1. Android(安卓)Repo
  2. Android(安卓)AIDL浅析及异步调用
  3. Android(安卓)BCM4330 蓝牙BT驱动调试记
  4. Android(安卓)View中getViewTreeObserver
  5. Android(朗读文本) TextToSpeech的使用
  6. maven 学习笔记(二)创建一个简单的 eclipse
  7. Intent总结06 category属性
  8. 一句话_理解Activity四种启动模式
  9. android动态加载外部资源文件
  10. Android(安卓)Gradle权威指南