Android手機支持的SD卡的最大容量是根據什麼決定的?

支持外置SD卡的Android手機(平板)的參數中一般都會標明支持的SD卡的最大容量,那麼這個參數是根據什麼決定的?是系統限制還是硬體限制?如果安裝了超出支持最大容量的SD卡,會發生什麼?

如果是FAT32文件系統本身的限制,為什麼有些手機只支持最大128G的存儲卡,FAT32文件系統單個分區最大不是2TB嗎


重寫一下整個回答。

具體限制容量要看限制的數字,在解釋之前先科普幾個數字:

SD2.0規範中(SDHC)硬體支持的最大容量是32G

SD3.01規範中(SDXC)硬體支持的最大容量可以到2T

SD卡後續規範還有3.0和4.0,具體內容太多我沒讀全過,大概是有速度上的提升之類的。

說完硬體說軟體,Windows從Win2000開始就限制FAT32分區最大尺寸了,是32G,也就是說,在Windows後續版本中無法把一個容量超過32G的分區,格式化成FAT32格式。但Windows允許第三方工具格式化超過32G的FAT32分區,也能正常掛載。

所以微軟才會有FAT32最大不能超過32G,但規範上實際FAT32的最大容量是2TB的說法。微軟聲稱這麼做是因為FAT32分區容量大時會有明顯的性能下降(如果根據WDK里FAT驅動的代碼來看,確實如此)。

有了以上的內容,下面來具體看手機外存儲容量限制:

如果一個手機限制的最大SD卡容量是4G/8G之類的,那麼有可能不是硬體限制,因為硬體限制一般不會卡在4G/8G/16G這種尺寸上(當然也不排除,需要具體情況具體分析)。

如果一個手機限制的最大SD卡容量是32G,那麼很有可能是因為手機本身硬體只支持SD2.0,那麼這種情況就無能為力了。

如果一個手機限制的最大SD卡容量是64G/128G/256G這些,那麼可能也只是軟體上的限制。

因為如果分區太大,軟體掛載會很慢,並且對於安卓的Linux內核來說,文件系統內存開銷會很大,因此廠商會有這方面的限制。

所以,限制可能是軟體也可能是硬體,對於軟體的限制,可以通過root等手段把分區格式化成ext、ntfs來解決,但如果是硬體限制,那就毫無辦法了。

參見:Secure Digital


支持多大容量的SD卡取決於兩個因素:

1.手機的主端控制器 - SD Association是否支持相應規格的SD卡,(SD / SDHC/ SDXC規格和兼容性),手機的主端控制器是SoC上的。

2.手機上安裝的Android系統是否支持exFAT文件格式(支持 SDXC的操作系統 (exFAT 文件系統))

3.大部分國產手機以及外國品牌的國內特供款式都不捨得花錢和微軟買授權,不支持exFAT,例如華為的暢想5S,雖然支持128G的TF卡,但是只支持FAT32文件系統。


推薦閱讀:

利用 SD 卡槽擴充 MacBook 的容量,有哪些高速 SD 卡可以選購?
TF(micro-SD)、 SD卡、CF卡、記憶棒/XQD、 WIFI卡有什麼區別?應該如何選擇?
記憶卡的SD、SDHC與SDXC還有TF分別表示什麼意思?都有什麼區別?
同為存儲介質 為什麼SD卡就是不如U盤耐用?

TAG:Android手機 | 文件系統 | Android | SD卡 | 手機存儲卡 |