Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android數據儲存之應用安裝位置

android數據儲存之應用安裝位置

編輯:關於Android編程

 

從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生命周期適當的保存了狀態)

當你的應用需要兆字節的apk文件時,你應該仔細考慮時候應該將應用安裝在外置儲存,來使用戶保存內置儲存空間。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved