安卓传输文件的一些研究

来源:互联网 发布:未识别的网络不能上网 编辑:程序博客网 时间:2024/05/17 02:26

今天从Youtube上下了一些视频,想传到自己的一部HTC OneX里面。又不高兴用HTC提供的HTC Sync Manager,想自己手动挂载,找/dev半天也没发现可能的目标,一想到一起在Ubuntu里面能够直接自动挂载,故研究了一下。

首先:传输时大致有三种协议 USB Mass Storage,MTP,PTP

       

从USB Mass Storage开始说吧:

如果用过老的安卓机都知道,我们把设备连上电脑,会需要我们去选择是否当做外部存储,选择是之后,主机中就像插入U盘一样,我们可以直接对存储进行操作。这其实就是通过USB Mass Storage(或UMS)来实现的。

说说这样做的好处吧:我们能操作的可能性比较大,因为获得了执行权限,我们几乎可以进行任何操作,但是弊端更多:

1.使用时需要是存储器完全摆脱OS(android)的管理。

这意味着如果我们当前有应用正读写着存储里面的数据,我们可能就不得不得先关闭这个应用了

2.文件系统必须使用Windows识别的,例FAT

3.有不少的安全隐患

      


这是老机器了,而现在我们将安卓设备连接到主机上,很多时候我们并不能进行直接的操作,设备对主机以媒体设备形式暴露,这其实就用到了MTP和PTP两种协议。

我们先从PTP协议开始讲起:

PTP:Picture Transfer Protocol。正如它名字暗示的那样,这其实是设计用来给数字照相机和主机通信时使用的协议,使用这种协议的设备和主机进行通信时,我们从主机上看到的情况就是,显示为一个数字照相机。这种情况其实大家在生活中或多或少都遇到过。需要提的是在苹果的OSX操作系统中,默认是支持这种协议的,当然,还有上面的UMS。



最后,讲一下MTP(Media Transfer Protocol)

MTP是基于PTP的,不过它对PTP进行了很多拓展。当我们将使用MTP协议的设备和主机连接时,主机上显示的就是媒体设备了。MTP被设计用来传输音像和数字音乐信息。当使用MTP协议时,主机对存储的操作并不是直接的了。OS(Android)将起到一个类似过滤的功能,当上传或者下载时,系统可以进行判断是否可以放行。和上面两种协议不同的是,OSX默认不支持MTP协议。。。这也就是为什么我的HTC连接到OSX时我不能像U盘一样挂载或者访问手机存储了,当然,Linux支持MTP(通过libmtp),所以Ubuntu中会自己挂载。毕竟是苹果么。。。iDevice设备之间通信也采用了苹果自己的协议,怎么会原生添加对MTP的支持呢~?。当然,OSX中想要访问MTP协议的设备也有方法,应该有很多第三方的软件,但是其实Google就提供了Android File Transfer来实现一个简单的MTP客户端:下载地址





最后总结:

旧设备连接电脑时,当然。。只能选UMS,如果设备支持MTP和PTP。推荐使用MTP

0 0
原创粉丝点击