我最近將手機升級到了LG Motion 4G(Android 4 ICS)。我看到sdcard安裝在 / sdcard / external_sd
上。我還注意到,這似乎與其他一些較新的型號相同。應用程序期望sdcard位於 / sdcard
。我假設製造商想包括很多內部存儲,但是為什麼將內部存儲安裝在 / sdcard
上?這不應該違反某種形式的Android規範標準嗎?
我最近將手機升級到了LG Motion 4G(Android 4 ICS)。我看到sdcard安裝在 / sdcard / external_sd
上。我還注意到,這似乎與其他一些較新的型號相同。應用程序期望sdcard位於 / sdcard
。我假設製造商想包括很多內部存儲,但是為什麼將內部存儲安裝在 / sdcard
上?這不應該違反某種形式的Android規範標準嗎?
原因是Android的歷史:第一代Android設備僅具有少量內部存儲(大約100-400MiB),該內部存儲安裝在 / data
下。
接下來,出現了帶有外部SD卡的設備。將SD卡安裝在 / mnt / sdcard
下。
然後,內部存儲空間較大的設備上市了。由於 / mnt / sdcard
已成為來自應用程序,圖片等的大數據塊的默認位置,因此該存儲被分配了。因此,Android環境必須具有 / data
和 / mnt / sdcard
目錄。因此,一個分區用於 / data
,另一個分區用於 / mnt / sdcard
。這就是為什麼即使 / mnt / sdcard
上有足夠的空間,存儲空間也會變小( / data
分區)的原因。
使用Android 3.0改善了這種情況: / data
和 / mnt / sdcard
現在指向同一分區。 好的Google,這本來可以在以前的版本中完成的。 sup>這也是在Android 3.0或更高版本上不再需要app2sd的原因:您只能在相同的捲中移動數據。
現在,如果您有任何問題,我們將為您解答:由於 / mnt / sdcard
已經安裝在內部存儲器上,因此外部SD卡必須使用其他安裝點。並且該掛載點不是Google指定的。可能是
/ mnt / sdcard / ext_sd
/ mnt / external
/ mnt / extSdCard
/ mnt / sdcard / external_sd
API調用 getExternalStorageDirectory()
通常指向內部存儲目錄。此行為已記錄。有提供工具的開源項目,可以以規範的方式查找外部SD卡目錄。
迫使外部SD卡遠離 / mnt / sdcard
沒有技術優點,這是Google幫助硬件供應商為具有更多內部存儲器的手機創建差異化點的方法。
當 / mnt / sdcard
顯然是sdcard的原本位置,而Google未定義的加載外部SD卡的方式是另一個原因時,應用程序沒有理由必須找到一種方法來定位外部卡小於消費者友好的空間,從而使外部SD卡在較新的Android設備中不再有用。沒有理由將 / data
和 / mnt / sdcard
合併到較新版本的Android的同一分區中,除非製造商將內置更大內存的手機與成本更低的單位,內部存儲器更少。即使必須合併,Google仍可以為外部SD卡明確定義一個 STANDARD 新安裝點,而不必完全模糊。通過笨拙的設計來防止供應商區分高端手機與內置內存較少的低成本手機,這完全可以防止Android生態系統的進一步“細分”。
Android應用二進製文件是體積很小,具有1-2 Gig內部存儲器的電話應該有足夠的空間來容納數百個應用程序,並且所有大數據都可以安全地存儲在外部SD卡中。但是隨後,供應商意識到他們必須有一種區分高端產品的方法,並聲稱更高的內部存儲器已成為該方案的一部分,而削弱外部存儲器的實用性是該方案要完全發揮作用所必需的另一個集成部分,因此不太有用的API,無法找到外部SD卡和未標準化的安裝點。
所以:不,將SD卡安裝在 / mnt / sdcard
之外的其他地方不過是一種在新版Android下銷售價格更高的新手機的商業策略,僅此而已。試想一下,如果Nexus 4 8GB和Nexus 16GB都可以使用64GB的外部SD卡存儲應用程序和媒體,那麼有人有理由購買16 GB版本嗎?如果涉及外部SD卡,那額外的8 GB NAND存儲器肯定不值50美元。由於智能手機中的大多數組件幾乎都必須相同(RAM,處理器,無線電),因此,留出更多利潤空間的唯一區域是內部存儲空間,因此還有怪異的外部存儲器安裝點。
每個人都還注意到目前的“ Google”品牌的android設備中缺少外部SD支持嗎?這種趨勢將繼續在“頂級” Android設備中擴展。外部SD卡支持是Android設備超越iPhone在移動市場上的主導地位的關鍵區別。現在,由於Android在數字遊戲中具有至高無上的統治力,這種利潤削減做法幾乎不需要保持更長的時間。
我不會對Android 5.0感到驚訝,外部SD卡支持將是過去的事情。因為如果應用程序很難找到外部SD卡,那麼大多數程序將只使用已知的 / data
和 / mnt / sdcard
位置,而大多數應用程序使用的位置更多,無需在 / mnt / sdcard
上安裝外部SD卡,就可以憑空創建一個充滿活力的產品標記策略。
您應該知道(如果已root),您可以進入/system/etc/vold.fstab並將/ sdcard和/ mnt / external_sd的掛載點交換...。這將使您的sdcard位於/ sdcard上如您所願,其餘的“內部存儲”將安裝在/ mnt / external_sd上,或者如果您更喜歡/ sdcard / external_sd /