2017-02-27 189 views
0

我知道開發者選擇允許或不通過清單中的android:installLocation」 attribute。我的問題是:允許或不允許的原因是什麼?爲什麼有些應用程序無法移動到SD卡?


我經常看到許多應用程序不屬於下列列表中的任何一個目錄。他們不允許移動到SD卡,爲什麼他們會這樣做?什麼樣的優勢/好處可以給。

  • 服務
  • 報警服務
  • 的輸入法引擎
  • 動態壁紙
  • 應用小工具
  • 客戶經理
  • 同步適配器
  • 設備管理員
  • 廣播接收機監聽「啓動完成」
+0

請參閱:https://developer.android.com/guide/topics/data/install-location.html#ShouldNot –

+0

您是否閱讀過installLocation的文檔? –

回答

2

the documentation,你不應該允許對外部存儲器安裝在下列情況下,您的應用程序:

  • 服務
  • 報警服務
  • 的輸入法引擎
  • 動態壁紙
  • 應用小工具
  • 客戶經理
  • 同步適配器
  • 設備管理員
  • 廣播接收機監聽 「啓動完成」

的文件接着說:

默認情況下,系統將不允許您的應用程序安裝在外部存儲器上,因此您不必擔心現有的應用程序。

這意味着默認情況下不允許在外部存儲上安裝。這可能意味着很大一部分不能在外部存儲器上安裝的應用程序只是開發人員根本不知道installLocation並使用默認行爲的情況。

您需要分別分析每個應用程序,以查看開發者是否專門設置了installLocation="internalOnly"或者他們是否完全忽略它以確定它是否有意或無意。

+0

但我經常看到許多不適用於這些應用程序的應用程序。他們不允許移動到SD卡,爲什麼他們會這樣做?什麼樣的優勢/好處可以給。 –

+1

同樣根據文檔「默認情況下,系統將不允許您的應用程序安裝在外部存儲上,因此您不必擔心現有的應用程序。」 - 他們可能沒有改變默認值。 – ianhanniballake

+1

我認爲@ianhanniballake在這裏有正確的答案 - 如果大多數開發者甚至不知道這個權限,那麼他們可能根本就不會去考慮它,所以大多數人根本不會爲它添加配置。而且,當然默認是不允許的。 – GreyBeardedGeek

0

嗯,我想最主要的原因(也可能是唯一的原因)是因爲手機可能不會有太大的內部存儲。因此,這種手機可以利用外部存儲,以允許用戶在內部存儲空間已滿時安裝更多應用程序。我假設你已閱讀以下文件。它沒有提到這個答案,但我認爲這就是它存在的原因。

https://developer.android.com/guide/topics/data/install-location.html

編輯:我認爲有相當多的低端設備,其中相對於外部存儲內部存儲是非常低的。

編輯2:爲什麼不這樣做是因爲外部存儲上的所有數據都是世界可讀的。因此,如果您是應用商店數據,則可以將其取出並在其他設備上閱讀。取決於您可能不想允許的應用程序。

+0

但是「爲什麼不」。 –

+0

嗯,我沒有複製粘貼從我貼的鏈接,但我把「爲什麼」。另一個答案只是說爲什麼不。此外,我首先發布(我只是沒有把鏈接的內容,因爲我不知道你是否讀了它 - 爲未來的答案學到了教訓)。這麼多答案沒有迴應。 –