linux mtp设备,这么烂的MTP 为何现在所有Android设备都不能不用

原标题:这么烂的MTP 为何现在所有Android设备都不能不用

虽然智能手机作为独立的设备,其功能和性能越来越强大,但到目前为止,用户们依旧都有着把它们插上PC电脑的需求,其中Android设备都是通过MTP模式来被PC识别,即便资深用户们都对MTP积怨已深。本文中我们就详细说说MTP在Android上的前世今生,以及其背后的优劣得失。

05eb7e014bb9ee18326337f5d298b0a1.png

本文部分图片来自网络,向相关版权方致谢。

MTP的几宗罪:

也许有新手会问,MTP(Media Transfer Protocol)挺好的啊,为什么会说难用会说积怨已深?Too simple too naive,那只是你还没有在真正意义上用到它们而已。下面就先举几个例子:

1.小文件传输很慢

相比我们习惯的大容量存储(即U盘模式),MTP-USB的传输效能只有在传大文件时才能和它一比,如果小文件很多,MTP就会慢到崩溃,U盘那边早就搞定了,而MTP设备甚至可能还在慢慢悠悠地计算文件大小和所需时间,差评。事实上,即便是改用WLAN无线传输小文件也要比MTP快得多。

6a1504a997659f2be057d07dbd159302.png

2.报错率极高

不仅是慢,MTP传输文件还有报错率高的问题,经常出现进度条卡死半天不动或者直接报错说设备正忙已停止响应,重新插拔还未必能得到解决,只能另选他途,这足够令人抓狂了。

d8fc1b368a05ff757499ee06d938da02.png

3.文件格式支持有限

如果是音频爱好者估计已经见怪不怪了,在导入APE或者FLAC格式无损音频的时候肯定会弹出窗口说这个格式不受支持,询问是否需要转换。拜托,我们用的可是智能手机啊,总问这些没用的问题烦不烦?

aa03e531bdf93243d9459567ed909458.png

4.文件浏览功能有限

当然对于大部分文件来说,我们还是可以在MTP设备里面直接打开,然而很多必要信息比如照片的exif却不能获取。

d490ff063b95c001102914ae527fe351.png

此外,新建文件夹这个功能倒是正常,然而你一旦把它重命名则必然死机,只能重新插拔解决。

f5779b38b555daee2e7a99d6e4d8a7dc.png

5.文件索引不能实时刷新

译成白话文就是,我刚下载或者生成的文件,用手机的文件浏览器可以看到并打开确认正常,但插电脑上就死活找不到。

6.驱动问题大,经常不能识别

这也是困扰用户们的大问题,要么是无法加载驱动,要么是插过的设备太多默认驱动不匹配之类的,特征是插上之后看不见盘符,然后在设备管理器上显示一个叹号设备。

8d277badad17a885ede3f721c1b04e42.png

当然还有些别的问题,笔者只是一时想不起来了,总之就文件传输来说,相比U盘模式,MTP简直不能用。

那么既然MTP这么烂,为啥还在Android设备上普及,反倒是大容量存储模式消亡了呢?

这其实是个历史问题,如果你是一位2011年或者之前就入坑的老司机,经历过Android2.X的时代,就应该记得当时除了大容量存储模式是每机必备之外,盛行的还有外置TF卡扩展,事实上还不同于现在的TF扩展,而是让TF卡作为用户的主存储器。

200aaac22df1c712c72dab2460f78e65.png

从硬件角度讲,早期没有像现在这样再内置闪存时直接集成用户存储目录,大体是因为当时大容量闪存芯片的供应链不够成熟,大量供应的只有4GB以内的容量,根本不够用,只能先满足系统本身的需求(后来成了一种固定的开发模式,在Android4.0之前被广泛采用)。也正因此,当时的rom所属目录对于用户而言是不可见的。

f27a67828ce773fe5b991d27ec45cded.png

既然用户存储目录依靠的是外置TF卡,这就涉及到了文件系统的问题,在此前的文章中我们详细讨论过,简而言之就是Android基于Linux体系,所用的文件系统和Windows体系并不兼容,而TF卡普遍预置windows兼容的文件系统,这样为了保证用户们能够即插即用,手机只能将用户目录做成一种挂载外置存储设备的状态,将内外分区严格隔离开,此时因为相互兼容,Windows就可以通过U盘模式直接挂载用户存储器,这时也会造成手机失去挂载而不能读取TF卡。

e8e6f96c7812b9c995e66bdcd30085ae.png

而随着软硬件技术的发展,8GB以上甚至16GB的闪存IC得以普及之后,U盘模式便面临瓶颈:首先,因为文件系统互不兼容,内外分区需要严格隔离出来,无法动态调整,这样任意分区出现空间不足,整个系统运行就会受限。这个问题出现很早,在2010年就怨声载道,谷歌曾经采取过一些数据转移手段来转移应用数据到SD卡来试图解决,但也因为文件系统的不同,这种数据转移能支持的非常有限,无法治本,民间有人在TF卡建立EXT4分区强行增加Linux内核可用空间,但TF卡读写速率偏低,可靠性相对也较差,因此拖慢整个系统也得不偿失。

再者,U盘模式会令手机对存储器失去挂载,这样会失去很多运行数据的来源,插上电脑时正在运行的进程都可能会受到影响,增加了系统的不稳定性。

f803fab6410d7fd6baa653e691f703f8.png

因此,唯一的方法只有将用户分区也改为Linux兼容的文件系统,这样手机就可以真正管理机身存储器内所有文件,但要求Windows PC能通过手机本身来读取用户目录内的文件,且相关的协议和驱动还必须被Windows原生支持,这便的确只有识别为便携媒体设备,也就是MTP可以满足了。于是谷歌在Android4.0时采用了大容量存储和MTP并存的方式作为试水,然后鉴于没有出现怨声载道的情况(其实相当多是因为看到大容量存储还在就懒得吐槽MTP),在Android4.1时修改了机身目录和文件系统并开始去除大容量存储模式。

换言之,对于谷歌而言,选择MTP只是没有办法的办法,而MTP这么辣鸡,谷歌和微软都要背锅,而看到微软对于自家Windows升级的控制力和Windows10的坑爹程度,或许我们只能做好继续忍受的准备。文末附上MTP驱动故障,即设备叹号时的解决方案:

dda125976d338022aa6db440ee4f0d0f.png

呼出设备管理器,找到叹号设备,右键点击更新驱动程序,选择设备驱动列表;

021206e6c52b91e8b682092a99d62ea7.png

然后如果需要选择设备,则需要在各种设备中选择便携设备,点击下一步;

41d32375d2e2b24c43d9bcbba58e7e30.png

之后需要在下面的各种MTP驱动中选择一个能用的,再点下一步,这需要一个一个试,以笔者的经验看从下向上更容易找到正确的驱动。返回搜狐,查看更多

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值