api8開始,你可以讓你的應用程式被安裝在外部儲存裝置。
您可以設定
android:installlocation
屬性:
"preferexternal
" or "auto
"。
如果你宣告「preferexternal
「,您要求您的應用程式被安裝在外部儲存,但並不能保證你的應用程式將被安裝在外部儲存系統。
如果外部儲存滿時,系統將其安裝在內部儲存。
使用者也可以將您的應用程式之間的兩個位置。
如果你宣告「 auto
「,則表明您的應用程式可以安裝在外部儲存,但是你不必安裝位置偏愛。
該系統將決定在**安裝您的應用程式,基於幾個因素。
使用者也可以將您的應用程式之間的兩個位置。
當您的應用程式安裝在外部儲存:
警告:當使用者啟用usb大容量儲存,與電腦共享檔案,通過系統設定或解除安裝sd卡,外部儲存裝置解除安裝和外部儲存上執行的所有應用程式,當即斃命。
為您的應用程式安裝在外部儲存的能力是乙個功能僅適用於
api lv8(安卓2.2)
或更高版本的裝置上執行。現有的應用程式api等級8之前落成將始終安裝在內部儲存,並不能移動到外部儲存(即使在裝置api等級8)。但是,如果您的應用程式被設計為支援的api級別
低於8,你可以選擇支援此功能的裝置api等級8或更大,仍然是相容使用api級別低於8的裝置。
要允許安裝在外部儲存裝置上,並保持與低於api等級8的版本相容:
android:minsdkversion
屬性(
低於「8」的),並確定您的應用程式**只使用api的相容的等級。
為了編譯您的應用程式,更改您的構建目標為api等級8。這是必要的,因為舊的android庫不支援android:installlocation
屬 性,將無法編譯您的應用程式。
當您的應用程式使用api級別低於8,安裝在裝置上的
android:installlocation
屬性被忽略,並且應用程式安裝在內部儲存。
注意:雖然xml標記將被忽略,像這樣的老平台,你必須小心,不要使用minsdkversion
程式設計api中引入api等級8,而低於「8」,除非你進行必要的工作,以提供向後相容性你的**。
當使用者使自己的電腦(或以其他方式解除安裝或刪除的外部儲存)usb大容量儲存共享檔案,安裝在外部儲存和當前正在執行的任何應用程式被殺害,直到usb大容量儲存被禁用,重新安裝外部儲存裝置。除了 查殺應用程式,使使用者無法使用它,這樣可以破壞某些型別的應用程式,乙個更嚴重的方式。為了讓您的應用程式始終像預期的那樣,你不應該讓你的應用程式被安裝在外部儲存,如果它使用以下任何功能,由於外部儲存解除安裝時引用後果:
服務正在執行的服務
會被殺死,並重新安裝外部儲存時,將無法重新啟動。你可以,但是,廣播
意圖,這將外部儲存裝置上安裝的應用程式時通知應用程式已經成為系統再次註冊。這時候,你可以重新啟動您的服務。
報警服務
註冊alarmmanager的
報警將被取消。您必須手動重新註冊任何報警時重新安裝外部儲存。
輸入法引擎。
你的輸入法將被替換為預設輸入法。重新安裝外部儲存時,使用者可以開啟系統設定再次啟用您ime。
動態桌布
你執行的動態桌布,將被替換預設的live桌布。重新安裝外部儲存時,使用者可以再次選擇您的動態桌布。
應用程式!
從主螢幕上,你的應用程式部件將被刪除。重新安裝外部儲存時,您的應用程式部件將
無法供使用者選擇,直到系統復位(通常系統重啟)。
客戶經理
您的帳戶建立的accountmanager
會消失,直到外部儲存裝置重新安裝。
同步介面卡
您的的abstractthreadedsyncadapter
和其同步功能將無法正常工作,直到重新安裝外部儲存。
裝置管理員
您的的deviceadminreceiver
和其所有的管理功能將被禁用,它可以有不可預見的後果,裝置的功能,外部儲存裝置重新安裝後,可能會持續。
廣播接收機聽「引導完成」
該系統提供了action_boot_completed
廣播之前被安裝到外部儲存裝置。如果您的應用程式安裝在外部儲存,它可以永遠不會收到此廣播。
如果您的應用程式使用任何上面列出的功能,你不應該讓你的應用程式安裝在外部儲存。預設情況下,系統
不會讓你的應用程式安裝在外部儲存,所以你不必擔心你現有的應用程式。不過,如果你確定你的應用程式不應該安裝在外部儲存,那麼你應該明確這一點宣告android:installlocation
的「internalonly
「屬性。雖然這並沒有改變預設的行為,它明確規定,您的應用程式只能安裝在內部儲存,並作為你和其他開發人員,這個決定已經作出提醒。
大型遊戲是更常見的型別,應該讓外部儲存裝置上安裝的應用程式,因為遊戲通常不提供額外的服務,不活動時。當外部儲存變得不可用,乙個遊戲程序被殺死了,應該沒有明顯的效果,當儲存再次變為可用的使用者重新啟動遊戲(假設遊戲妥善儲存其狀態在正常 活動的生命週期)。
如果您的應用程式的apk檔案需要幾兆,您應該謹慎考慮是否要啟用應用程式安裝在外部儲存,使使用者可以保留其內部儲存空間。
unity打包APK報錯
unity打apk,總是彈出下面的提示框 可是在android studio中我已經把sdk更新了,不管了,統統點了use hightest installed按鈕,結果打包報錯了 網上搜了一堆辦法都不行,無意中看到了sdk的路徑,unity裡寫的是sdk的安卓路徑 然後看到android stud...
unity 打包apk 崩潰記錄
最近在做乙個專案,碰到乙個詭異的問題。專案好像變得很脆弱,只要進資源,打包時候就會崩潰 could not allocate memory system out of memory 然後如履薄冰的去刪資源,刪乙個資源,打包測一次,刪乙個測一次。問題持續了一月之久。因為專案不是我啟動的,我是半道接手的...
Unity打包的APK中Asset檔案分析
用unity開發的遊戲,打包成android平台的apk檔案之後,如果解開這個apk,會在assets bin data目錄下看到大量的檔名很長而且無意義的檔案。像下圖這樣。本文要分析的就是這些檔案。首先要感謝unitystudio的作者的辛勤工作,我也正是從他的 中才學到這些知識的。在此整理出來供...