Android應用程式的安裝位置(二)

2021-06-26 11:50:25 字數 1788 閱讀 3066

不應該安裝在外部儲存器上的應用程式

當使用者啟用usb儲存器來跟計算機共享檔案時(或者是解除安裝或移除外部儲存器),任何被安裝在外部儲存器上,並且當前正在執行的應用程式都會被殺死。在usb儲存器被禁用和外部儲存器被重新掛載到裝置上之前,系統不會有效的感知到引用程式的存在。除了終止應用程式並讓它對使用者無效之外,這樣做還可以中斷某些更嚴重的應用程式型別。為了讓你的應用程式能夠像預期的那樣,如果它使用了以下功能,你不應該允許你的應用程式被安裝在外部儲存器上,由於在外部儲存器被解除安裝時,會引發一些後果:

services

型別的廣播intent,當被安裝在外部儲存器上的應用再次對系統有效時,它會給你的應用程式發通知。這時,你可以重啟你的服務。

alarm services

註冊的鬧鐘會被取消。在外部儲存器被重新掛載時,你必須手動重新註冊鬧鐘。

input method engines

你的ime會被預設的ime替代。當外部儲存器被重新掛載時,使用者可以開啟系統設定重新啟用你的ime。

live wall*****s

你的正在執行的livewall*****會被預設的livewall*****所替代。當外部儲存器被重新掛載時,使用者可以再次選擇你的livewall*****。

account managers

你用accountmanager

建立的賬號,會一直到外部儲存器被重新掛載才會顯示。

sync adapters

直到外部儲存器被重新掛載,你的abstractthreadedsyncadapter

和所有的非同步功能才會工作。

device administrators

和所有的管理員能力會被禁用,這可能會產生一些不可預知的結果,甚至會持續到外部儲存器被重新掛載之後。

broadcast receiverslistening for 「boot completed」

在外部儲存器被從裝置上解除安裝之前,系統會傳送action_boot_completed

廣播。如果你應用程式被安裝在外部儲存器上,它就不會接收到這個廣播。

copy protection

程式就可以被安裝在內部或外部儲存器上,包括sd卡。

如果你的應用程式使用了上述功能,你就不應該允許你的應用程式安裝在外部儲存器上。默

認情況,系統不會允許你的應用程式安裝在外部儲存器上,因此你不必擔心既存的應用程式。但是,如果你確定你的應用程式不能安裝在外部儲存器上,那麼你應該通過宣告帶有「internalonly」值的anroid:installlocation

屬性來明確說明。儘管這樣不會改變預設行為,但它會明確指示你的應用程式只能被安裝在內部儲存器上,並告訴其他開發者是已經被決定的事。

應該安裝在外部儲存器上的應用程式

簡單的說,任何不使用上述所列功能的應用程式安裝在外部儲存器上是安全的。通常一些大型遊戲會允許把應用程式安裝在外部儲存器上,因為通常遊戲在不活動時不會提供額外的服務。當外部儲存器無效,且遊戲程序被殺死時,不會影響外部儲存器再次有效且使用者重啟遊戲時的可視效果(假定遊戲在標準的

activity

生命週期中正確的儲存了它們的狀態)。

如果你的應用程式需要幾

m位元組儲存空間,你就應該認真考慮是否允許應用程式安裝在外部儲存器上,以便使用者可以保留內部儲存的空間。

android獲取安裝的應用程式

在google上輸入以上的關鍵字 android,可以搜到的 1listpacks getpackagemanager getinstalledpackages 0 雖然,有些 號稱可以過濾掉系統自身的應用程式,但是只要細看 就會發現,好像裡面的那個布林變數沒有起到什麼過濾的作用。方法一 通過獲取的...

android應用程式的安裝位置

本文編輯整理自 android應用程式的預設安裝位置以及是否可移動取決於開發者在其androidmanifest.xml中的設定 xmlns android android versioncode 1 android installlocation auto android versionname ...

Android應用程式的安裝位置

android應用程式的預設安裝位置以及是否可移動取決於開發者在其androidmanifest.xml中的設定 xmlns android android versioncode 1 android installlocation auto android versionname 1.0 andr...