App Install Location

來源:互聯網
上載者:User

從API level 8開始,使用者可以將應用程式安裝到外部存放裝置中(如SD卡)。該屬性可以通過android:installLocation屬性在manifest中聲明。如果不聲明該屬性,應用程式將只會安裝在記憶體中,而且不能移動到外部存放裝置。
要將應用程式安裝到外部存放裝置中,只需修改manifest檔案,在manifest元素中添加android:installLocation屬性,屬性值為preferExternal或auto。例如:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      android:installLocation="preferExternal"
      ... >


如果該屬性值設為"preferExternal",表明使用者要求應用程式安裝在外部存放裝置中,但是系統並不保證應用程式真的安裝在外部存放裝置中。如果外部存放裝置的空間已滿,系統仍然會將應用程式安裝在記憶體中。使用者也可以在兩個位置之間行動裝置 App程式。
如果該屬性值設為"auto",表明應用程式可能安裝在外部存放裝置中,但是使用者本身對安裝位置沒有特殊要求。系統會根據多種因素決定將應用程式安裝在哪裡。使用者也可以在兩個位置之間行動裝置 App程式。
當應用程式安裝在外部存放裝置中時:
只要外部存放裝置裝載在裝置上,應用程式的效能就不會受到影響。
.apk檔案是儲存在外部存放裝置中的,但是所有的私人使用者資料、資料庫、最佳化的.dex檔案和提取的本地代碼都是儲存在裝置的記憶體中的。
儲存應用程式的唯一容器經過一個隨機產生的密鑰進行加密。該密鑰只能由最初安裝該程式的裝置解密。因此,安裝在SD卡上的應用程式只能在某一個固定的裝置上運行。
使用者可以通過系統設定將應用程式移動到記憶體上。
注意: 當使用者使用USB大量存放區與電腦共用檔案時,或通過系統設定卸載SD卡時,外部存放裝置將從本裝置卸載,並且所有在該外部存放裝置中啟動並執行應用程式將立刻被關閉。
向後相容
應用程式能夠安裝在外部存放裝置中是API level 8 (android 2.2) 以上的裝置的特點。在此之前的應用程式只能安裝在記憶體中,且不能移動到外部存放裝置中(即使裝置是API level 8的)。然而,如果應用程式設計的時候就支援低於API level 8的裝置的,那麼使用者可以選擇在API level 8及以上的裝置上是否需要支援這一特性,並且在使用API level 8 以下的裝置的時候仍然相容。
要在外部存放裝置中安裝程式,並且與低於API level 8 的版本相容,需要做到以下幾點:
1. 在manifest元素中添加android:installLocation屬性,設屬性值為"auto"或"preferExternal"。
2. 保持android:minSdkVersion屬性不變(低於8的某個值),確保應用程式的代碼能夠相容該等級。
3. 為了能夠編譯器,將產生目標設為API level 8。 這一步必不可少,因為舊的android庫不識別android:installLocation屬性,當該屬性存在時,應用程式將無法編譯通過。
當應用程式安裝在低於API level 8 的裝置中時,android:installLocation屬性將被忽略,應用程式將安裝在記憶體中。
注意: 儘管在老的平台上,類似這種的XML標記會被忽略, 但是在android:minSdkVersion低於8時,編程時也一定要注意避免使用API level 8 推薦的寫法,除非在代碼中已經提供了向後相容。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.