<manifest xmlns:android="http://schemas.android.com/apk/res/android"          package="string"          android:sharedUserId="string"          android:sharedUserLabel="string resource"           android:versionCode="integer"          android:versionName="string"          android:installLocation=["auto" | "internalOnly" | "preferExternal"] >    . . .</manifest>


android:installLocation
The default install location for the application.

The following keyword strings are accepted:

Value Description
"internalOnly" The application must be installed on the internal device storage only. If this is set, the application will never be installed on the external storage. If the internal storage is full, then the system will not install the application. This is also the default behavior if you do not define android:installLocation.
"auto" The application may be installed on the external storage, but the system will install the application on the internal storage by default. If the internal storage is full, then the system will install it on the external storage. Once installed, the user can move the application to either internal or external storage through the system settings.
"preferExternal" The application prefers to be installed on the external storage (SD card). There is no guarantee that the system will honor this request. The application might be installed on internal storage if the external media is unavailable or full, or if the application uses the forward-locking mechanism (not supported on external storage). Once installed, the user can move the application to either internal or external storage through the system settings.

从上图可以看到installLocation属性的取值有三个,用于指示程序安装策略:

1)“auto”:程序默认安装在内存,如果内存空间不足,将安装在外存中;并且之后用户可以通过系统设置随意地在内存和外存之间切换程序的安装位置;

2)“internalOnly”:程序只能安装在内存中,当内存空间不足时,程序将安装失败,当我们不指定installLocation属性时,这是我们程序的默认行为。

3)“preferExternal”:程序优先考虑安装在外存中(SD卡),但当外存空间不足或其他原因影响时,程序也可以被安装在内存中;并且之后用户可以通过系统设置随意地在内存和外存之间切换程序的安装位置;

一般要根据应用的类型来决定应用程序的installLocation取值,以下几种类型的应用不应该安装在外存中(SD卡):

Services、Alarm Services、Input Method Engines、Live Wallpapers、AppWidgets、Account Managers、Sync Adapters、Device Administrators、Broadcast Receivers listening for "boot completed"、Copy Protection。

因此,一般的程序,如果没有特殊要求的话,一般都取值为“auto”。

关于installLocation属性的更多信息可参见:

http://developer.android.com/guide/topics/manifest/manifest-element.html#install

http://developer.android.com/guide/topics/data/install-location.html

更多相关文章

  1. Android 内存笔记
  2. android 程序调试入门
  3. Android 程序打包及签名
  4. android 调用系统安装程序
  5. Android 如何获取手机内存大小,内置存储空间大小
  6. android 程序日志记录
  7. Android取得系统信息和分辨率内存信息
  8. Android系统中自带了很多图标,我们的程序可以方便使用。
  9. 在程序中设置android:gravity 和 android:layout_Gravity属性 .

随机推荐

  1. android Canvas用法
  2. android传输视频到PC
  3. Android中的网络时间同步
  4. Android系统服务 WMS与AMS简单理解
  5. android window窗口机制
  6. Android应用程序防止被LMK干掉
  7. mysql 5.7.16 免安装版安装配置方法图文
  8. mysql一对多关联查询分页错误问题的解决
  9. mysql 5.7.23 安装配置图文教程
  10. mysql 5.7.23 winx64解压版安装教程