<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(安卓)Studio(四):Android(安卓)Studio集成Genymotion
  9. Android开发环境配置备忘录

随机推荐

  1. Android粉丝眼中iOS 7与Android(安卓)4.2
  2. Android(安卓)录音实现追踪(Android(安卓)
  3. Android(安卓)修改spinner 字体颜色 样式
  4. Android的线程和线程池
  5. Android的Socket通信编程实例
  6. Android(安卓)开发艺术探索笔记之三 -- V
  7. 抓包工具Fidder详解(主要来抓取Android中
  8. android消息机制
  9. 《Android(安卓)串口驱动回眸:andriod虚拟
  10. Android(安卓)内存泄漏调试