為什麼現在手機都沒有 USB 存儲了?

為什麼現在手機都沒有 USB 存儲了?(就是把手機當做 U 盤的的功能)


題主問的應該是MTP模式和U盤模式

USB存儲模式(U盤模式)的壞處:1. 數據一致性不好保證;2. 支持存儲卡的手機越來越少了。

如果題主仔細觀察的話,支持USB存儲模式的手機,大部分都是把手機存儲卡作為USB存儲設備,而內置的存儲是不行的,並且存儲卡作為USB存儲設備被PC機訪問的時候,在手機端存儲卡是被卸載的狀態。也就是說,以USB存儲模式工作的情況下,手機放上訪問不了該存儲設備,設備需要以獨佔的方式提供給PC訪問

而MTP模式則沒有問題,並且MTP模式還能訪問內置存儲,所以現在手機基本上都是以MTP模式連接PC,因為MTP更靈活。

要獨佔訪問的原因就是我說的第一條:數據一致性。

U盤模式下,手機以塊設備方式工作,手機先識別到一個塊設備,然後按塊讀取內容,並獲得文件系統類型,掛載文件系統,然後提供給PC訪問,PC端能操作的基本單元是扇區。

而一般的操作系統中,文件系統和設備驅動的布局如下,需要注意的是下層是沒有比較簡單的機制能直接通知上層某個數據的改變的:

[IO系統框架,提供open/read/write等上層操作]
|
[文件系統驅動,提供文件的操作]
|
[塊設備驅動,基本操作單元是扇區或者塊] &<---U盤模式工作在這裡

那麼如果兩邊都能以U盤方式訪問,那麼假設PC更改了某個塊,但這個塊可能已經被文件系統緩衝了,這種情況下,PC和手機同時修改一個文件,那麼兩邊同時更新一個塊,數據就發生了衝突。更極端的情況:如果PC上創建了一個新文件,手機上可能看不到這個文件,因為手機的文件系統里並不知道塊設備里寫了新數據。

為了解決這個問題,才有了MTP的方案,MTP工作在更上層(可能是IO系統框架或者文件系統一層,不同操作系統實現不同),這種情況下,所有的操作都要經過文件系統,就不會有數據不一致的問題了。

所以現在廠商基本都用MTP,因為MTP保證數據一致性,也能訪問內置存儲。

U盤模式還有一些壞處,比如需要安全移除,突然掉電的時候或者傳輸的過程拔除設備會損壞存儲卡,造成數據丟失,MTP是沒這個問題的。

------------------------

評論區有人說MTP性能不行,主要的性能瓶頸是在小文件上。大文件的性能與USB存儲模式幾乎沒有區別。原因是MTP的操作對象是文件,缺少文件系統底層的緩存,不能夠做塊一級的預讀,這樣就導致了批量賦值小文件的時候要一個文件一個文件的讀取屬性,不能批量操作,也不能在掛載階段預讀,開銷非常巨大。

MTP有各種不好,但對於廠商來說,避免的存儲設備的損壞,能兼容各種文件系統,還是有進步的,速度慢並不是一個大問題。


因為現在的 Android 手機大部分已經不再使用傳統的 FAT32 文件系統了,通常使用的是 ext4 或者其他加密的文件系統。這些文件系統普通的 Windows 電腦是識別不了的。

大概是這個原因吧。


作為開發過Android MTP的碼農,不想再說MTP和U盤模式的差別了。

有些技術問題要從商業上找原因。第一用的人少,第二不符合商業策略。即使現在還有,未來也會逐漸消失。

現在廠商的策略都是雲,用來獲取更多數據和收益,同時增加用戶粘性。用戶的文件沒必要讓用戶同步到自己的電腦上。

對於愛折騰的人士,如我,有MTP也不用,而是用自建的Syncthing和Nextcloud來做同步。多根線就是麻煩,能用(無線)網路的就不用USB。不折騰又不用雲的人士可能可以用微信文件傳輸助手?總之都是走網路。


有啊,可能有的系統需要開啟開發者選項,然後在裡面啟用usb調試。


Windows10絕對是可以的 不止一次通過數據線來拷手機上的文件


推薦閱讀:

充電速度不達標?可能是充電姿勢不太對。
SSD 外部硬碟是否會受到USB3.0借口速度的限制?
激光焊接機在手機USB數據線中的應用
漲姿勢(第1彈)·10大沙雕USB設備,總有一款適合你
新iPhone將採用Type-C介面,這是最好的選擇

TAG:手機 | Android手機 | USB | Android |