2015-04-30 110 views
0

我最近修改了我所有的應用程序通過指定 Android的SD卡上運行的運行:在manifest.xml的installLocation =「preferExternal」。他們在我所有的測試手機上測試都很好。在SD卡的問題

對於允許這樣做的應用程序來說,這似乎是一件不容忽視的事情。但我注意到我手機上的大多數應用程序都不允許在SD卡上運行。谷歌瀏覽器,Google地球,Dropbox,Google Gmail,GolfNow等等。實際上,沒有任何Google應用會在SD卡上運行。

我試圖找出原因。在SD卡上運行有什麼缺點? 謝謝, 院長

回答

0

這實際上是一個廣泛的問題,你必須要求這些應用程序的開發人員得到明確的答案。

一些想法......

  • 外部存儲,因爲它是傳統上被通過插上SD卡,通常是提供。當然,SD卡可以被用戶卸下和/或物理移除,這意味着安裝在其上的任何應用程序都不會工作,直到它被重新插入。
  • 某些類型的RAM芯片比其他類型的存取時間快得多。設備上的內部RAM可能更適合於處理器/計算密集型應用程序,而不是訪問在RAM芯片級上訪問時間較慢並且由於必須通過外部總線的SD卡。
  • 任務關鍵型應用程序(取決於用戶應該定義的內容)需要永久訪問(請參閱我的第一點)。如果用戶希望以固定的時間間隔短時間檢索他們的電子郵件,則由於外部存儲已被卸除/移除,因此他們的電子郵件應用程序不能被允許消失。
  • 當應用程序安裝在SD卡上時,有些應用程序要求會導致不可預知的結果。一個典型的例子是任何註冊BroadcastReceiver以接收BOOT_COMPLETED操作的應用程序。啓動完成發生之前設備的各個部分已啓動並正在運行 - 這包括安裝SD卡。在這種情況下,會發送廣播,但SD卡上的應用程序未運行且無法接收。
  • 隨着時間的流逝,所謂的「內部」和「外部」存儲的定義已經變得越來越模糊 - 在以前比較好幾年,許多Android設備有「內部」大量內存使它不那麼重要,以釋放通過安裝或移動應用程序到'外部'存儲空間。有些設備甚至無法添加外部SD卡,而'外部'存儲是通過'內部'存儲上的分區來模擬的。其他
  • 一個點(舌頭在臉頰) - 也許你提到的應用程序的開發者的自大狂,只是堅持使用了寶貴的「內部」存儲只是因爲他們可以。 ;)
+0

實際上,相對較少的設備將其「外部存儲」用作可移動SD卡。也有例外,但現在幾年來,大多數人使用內部使用的*相同*閃存塊進行仿真。但幾乎沒有人使用「RAM芯片」來存儲它們。 –

+0

@ChrisStratton:正如我在我的一個觀點中提到的 - 由於傳統原因,最近的設備模擬所謂的外部存儲。仍然有「舊」設備,我仍然支持。我每天使用的老化HTC Desire(原始型號)已經使用了5年,仍然運行Froyo,並且只有SD卡作爲外部存儲選件。對於我使用古老術語「RAM芯片」的道歉 - 自從我還是一個孩子以來,我一直在玩電子產品(並於1985年獲得電子工程師的資格),但我仍然根據它們的功能來概括術語。 – Squonk

+0

「RAM」在歷史上並不適用於今天閃存所填充的角色或者在問題中討論的問題 - 這個問題涉及磁盤或磁帶在早期時代所扮演的角色。 –

0

什麼是SD卡

上運行的下行取決於應用程序。如果您的應用程序收聽廣播,使用鬧鐘管理器等,則不能在SD卡上運行。如果您的應用程序沒有使用任何這些,那麼從開發者的角度來看,這並沒有什麼區別。

+0

我的應用程序的所有使用谷歌雲消息和我通過廣播接收器接收這些消息和它完美的作品上的SD卡。 –