Android从3.0开始支持MTP Media Transfer Protocol(媒体传输协议)

  次阅读 作者:智能小宝 来源:互联网 2016-01-19 12:06 我要评论(0)

MTP的全称是Media Transfer Protocol(媒体传输协议),它是微软公司提出的一套媒体文件传输协议。Android从3.0开始支持MTP。不过,在今天的智能手机领域 内,Google和微软是一对冤家,为什么Android中会使用MTP呢?请看下文。

MTP的全称是Media Transfer Protocol(媒体传输协议),它是微软公司提出的一套媒体文件传输协议。Android从3.0开始支持MTP。

不过,在今天的智能手机领域内,Google和微软是一对冤家,为什么Android中会使用MTP呢?请看下文。

一背景知识介绍

笔者相信《程序员》杂志的绝大多数读者或多或少都使用过MTP。因为早在智能手机普及前,数码相机和MP3播放器等都使用了MTP的前身 PTP(Picture Transfer Protocol)进行媒体文件传输。那时,只要通过USB数据线把它们连接上Windows操作系统,就能在 我的电脑 中见到这些设备了。此后,用户 可以把它们当做U盘一样使用,例如对其进行目录、文件的浏览和拷贝等操作。

既然可以通过MTP把智能设备当作U盘使用,那么它和我们常用的USB大容量存储(USB Mass Storage,简称UMS)有何不同呢?

UMS模式下,PC操作存储设备的粒度是设备块(FAT block),而非文件系统。什么意思?此处举一个简单例子。当Android手机通过UMS将sdcard挂载到PC后,PC就拥有对sdcard的绝 对控制权。这样,手机就无法同时访问sdcard了。这种做法带来的后果就是Camera或Music程序将因没有外部存储空间而提示无法进行操作(注 意,有些厂商的手机对此进行过修改,使得Camera能短时间录制一部分视频到内部存储空间)。这也是Android早期版本中一个很明显的特点。另外, 由于PC在操作sdcard时可能弄坏其文件系统,这将导致sdcard重新挂载到手机后不能被识别。

如果Android手机的sdcard以MTP模式挂载到PC机上,sdcard的控制权其实还是属于手机。只不过智能手机通过MTP协 议向PC机构建了一个虚拟文件系统。PC机操作其中的文件时,都会通过标准MTP协议向智能手机发起请求。另外,Android把MTP功能集成在 MediaProvider中,其好处是PC机操作(例如拷贝或删除等)媒体文件时,媒体数据都会及时更新到媒体数据库中。而UMS模式下,当 sdcard挂载回手机后,Android还得花较长时间重新扫描媒体文件以更新媒体数据库。

MTP的好处还有很多,例如它可判断PC机拷贝的媒体文件是否受目标手机支持,甚至可以触发对应的转码程序将其转换成手机支持的格式。不过和UMS 相比,MTP也有不足之处:

传输大文件的速度较慢。

MTP不能直接修改文件本身。只能先拷贝到本地修改,完毕后再拷贝回去。

除了Windows外,Linux和MacOS对MTP支持还不是很完善。

下面我们将介绍MTP协议。

1.1MTP协议介绍

根据协议,MTP的使用者包括两个部分,分别是Initiator和Responder。如图1-1所示:

图1-1Initiator和Responder图示

由图1-1可知:

Initiator:主要是指USB Host,例如PC机,笔记本等。协议规定所有MTP操作只能由Initator发起。

Responder:一般是诸如数码相机、智能手机等存储媒体文件的设备。Responder在MTP中的作用就是处理Initator 发起的请求。同时,它还会根据自身状态的变化发送Event以通知Initiator。

注意:后文我们将统一以PC代表Initiator,Android手机代表Responder。

与很多协议一样,MTP也有自己的协议栈,如图1-2所示:

图1-2MTP协议栈

由图1-2可知,MTP协议栈由下到上分别是:

Pyshical Layer(物理层):物理层在MTP协议中用来传输数据。目前有三种物理层可供MTP使用。它们分别是USB:其主要特点是传输文件,同步媒体文件时速 度快,而且可以边工作边充电,这是目前用的最多的一种方式;IP:基于IP的MTP(简称MTP/IP)将通过UPnP来匹配和发现设备。它是家庭网络中 是最理想的传输方式;Bluetooth:MTP/BT是最省电,同时也是速度最慢的一种传输方式,用处较少。

传输层:MTP中,数据传输格式遵循PTP协议

命令层:实现了MTP协议中的各种命令。

如上文所述,MTP采用命令-应答方式来工作(Initator发送命令给Responder处理,Responser反馈处理结果),这种方式的 主要特点有:

所有MTP命令均以Package(数据包)的方式在设备两端进行传递。

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...