android資料儲存之應用安裝位置

來源:互聯網
上載者:User

 

從API8開始,你可以將你的應用安裝在外部儲存。這是一個可選的特徵,你可以在你的應用的manifest中聲明:android:installLocation屬性。如果你不聲明這個屬性,你的應用程式將會被安裝在內部儲存,並且不能被移到外置儲存。

 

當你聲明了preferExternal,你要求你的應用程式安裝在外置儲存,但是系統不確定你的程式一定安裝在外置儲存。若外置儲存已經滿了,將會儲存在內建儲存。使用者也可以在兩個儲存之間移動你的應用程式。若你聲明了auto,你表明你的應用程式可以安裝在外置儲存,但是你沒有一個安裝位置的偏好。系統會根據一些因素來決定你的應用程式安裝在哪。使用者也可以在兩個儲存之間移動你的程式。

 

當你的應用被安裝在外置儲存:

1.當你的外置儲存掛載在你的裝置上時,對你的應用操作沒有影響。

2..apk檔案會儲存在外置儲存,但是所有私人的使用者資料,資料庫,最佳化的.dex檔案,和提取的本地的代碼都會儲存在內建儲存。

3.你的應用被安裝的容器使用一個隨機產生的key加密,而且只能被安裝了這個應用的這個裝置解密,這樣保證一個sdcard上只有一款相同的應用。

4.使用者可以通過系統設定將你的應用移到內建儲存。

注意:當使用者使用usb儲存和電腦共用檔案或通過系統設定卸載SD Card,在外置儲存中啟動並執行應用會立即被殺死。

 

向前相容

在API8之前安裝的應用會被安裝在內建儲存,並且不會被移動到外置儲存。

但是你的應用可以通過設定來支援低於API8:、

1.在中設定android:instaillLocation為auto或perferExternal.

2.不用修改minSDKVersion,並且保證你的應用代碼是相容的

3.為了編譯你的應用程式,將你的build target改為API8,因為低的android庫不認識instaillLocation屬性,而且不會編譯你的應用程式。

 

那些不用安裝在外置儲存的應用

使用者使用usb儲存和電腦共用檔案或通過系統設定卸載SD Card,在外置儲存中啟動並執行應用會立即被殺死。

為了使你的應用能按預期的執行,如果你使用了一下的特徵你不能將你的應用安裝在外置儲存。

1.服務:你啟動並執行服務將會被殺死,而且當外置儲存被掛載時也不會重啟。但是你可以註冊一個 ACTION_EXTERNAL_APPLICATIONS_AVAILABLE的廣播intent,這樣當你外置應用變得可用的時候會被提醒。

2.警示器服務:你用AlarmManager註冊的服務將被取消,你必須在外置儲存被重新掛載的時候重新註冊。

3.輸入方法引擎:你的IME將會被預設IME取代。

4.動態壁紙:你運行著的壁紙將會被預設的動態壁紙取代。

5.App widget:你的Appwidget會被從案頭移除。

6.賬戶管理:使用AccountManager建立的賬戶會消失。

7.同步Adapter:你的AbstractThreadedSyncAdapter 以及它的一切同步方法將不會工作。

8.boot completed這個廣播的接受者:系統會在外置儲存器被掛載之間發出ACTION_BOOT_COMPLETED 的廣播,你安裝在外置儲存的應用不會受到這個廣播。

那些需要安裝在外置儲存的應用

出去以上列表的,其他的應用都可以安裝在外置儲存,大遊戲通常安裝在外置儲存中,因為遊戲在它不活躍的時候不需要提供額外的服務,當外置儲存不可用,遊戲將會被殺掉,當外置儲存變得可用而且使用者重啟遊戲,不應該有可見的影響(假設遊戲在它正常的Activity生命週期適當的儲存了狀態)

當你的應用需要MB的apk檔案時,你應該仔細考慮時候應該將應用安裝在外置儲存,來使使用者儲存內建儲存空間。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.