一、前言
真是搞不懂MTP(媒体传输模式)这种传输模式为什么会广泛使用
不仅慢还常常会发生图片资料毁损的情况
还我MSC(大量储存模式)啊...
二、研究动机与目的
在处理手机.thumbnails资料夹的时候
发现删除了容量还是回不来
只好备份资料后格式化内建储存空间
备份拉出资料的速度还算可以
12G大档混小档的档案一个小时左右完成
但要还原的时候真的让人吐血
事前就知道MTP传零碎档超级慢
所以我放著12小时去睡觉
睡醒居然还没跑完那堆资料(LINE的零碎档和2万张照片占大多数)
有人可能会问,为什么不手机开FTP直接扔过去比较快
1.零碎档断线又传断线又传
而且多档连线常常会跳出失败
不会快到哪里去
2.如果使用FTP传输或adb backup
adb backup -shared -nosystem -f "sd.ab"
还原回去的时候会是一个“全新”的档案
一些跟日期没有关系的档案可能无伤大雅
但照片及影片的档案排序会整个乱掉
在看图的时候会非常不方便
三、文献探讨
上网爬完之后发现不只我在骂
原来已经干声一片好几年了= =
现在除了少部分厂商的4.x系统可以使用MSC模式以外
5.x以上基本都已经是强制走MTP了
而有人就质疑了“明明还可以用push,为什么把MSC取消了?”
这段话明显是两个不同的东西看起来很搞笑XD
但却让我想到可以用adb pull和push来达到我要的效果
备份: adb pull /sdcard x:\ooo (全部备分)
adb pull /sdcard/aaa x\ooo\aaa (单独备份资料夹)
注3.1. x:\ooo\为你要在电脑上放置的目录,不写就是同adb.exe位置
注3.2. 它是复制“该资料夹内的档案”不是“资料夹”直接过去
因此备份及还原时请务必在目的路径加上原资料夹名称
还原: adb push x:\ooo /sdcard (全部还原)
adb push x:\ooo\123 /sdcard/123 (单独还原资料夹)
四、结论
1.零碎小档还原传输速度(以LINE零碎图片暂存盘为例)
a.使用MTP的速度是: 2秒1个
b.使用FTP的速度是: 1秒5~10个
c.使用adb pull/push的速度是: 1秒25个以上 (说以上是因为跑太快我看不清...)
2.单就资料结构完整性来说
a.MTP 可以保留 媒体拍摄时间
b.FTP 无法保留 媒体拍摄时间
c.adb pull/push 可以保留 媒体拍摄时间
3.档名名称编码支援度
a.MTP 支援 非英数档名
b.FTP 支援 非英数档名
c.adb pull/push 不支援 非英数档名
注4.1. 下指令后日语及简体错误会马上告知,不会跑一半才报错
注4.2. 中文不会报错,但会产生资料错误及档案遗漏
综合以上结果可知
目前尚有与MSC同样效能与稳定性的传输方式
英文文件使用adb pull/push,非英文文件另外独立使用MTP
是现在备份/还原内建储存空间最好的折衷方法