Android中App安装位置详解

Android应用可以安装在本机自带存储,同时也可以安装到外部存储(SD卡)。自从API 8后也就是Android2.2后,我们能使APK安装到外部存储上。这是一个可选的特性,在工程的manifest文件中可以进行配置:

?

<manifestxmlns:android="http://schemas.android.com/apk/res/android" ? ? android:installLocation="preferExternal" ? ? ... >

? ? ? 如上,如果声明为preferExternal,则指定APK安装到外部存储上,但是系统不保证一定能安装到外部存储上,所以叫preferExternal,例如当外部存储空间已经满了,这时系统会将应用程序安装到内部存储上。用户能够在内部存储与外部存储之间移动应用程序。还有一种声明选择,那就是“auto”,如果将属性值声明为这个,安装位置将由系统去决定。

?

想要将应用程序安装到外部存储上,需要保证以下条件都满足:

1.在manifest文件中指定android:installLocation属性值为“preferExternal”或“auto";

2.确保当前系统API级别为8或以上,android:minSdkVersion值必须是8以上(Android 2.2);

?

? ? ? 需要特别注意的是,用户连接手机到PC并开启大容量存储模式时,也就是读取外部存储卡内容时,所有安装到外部存储的应用程序将会被系统全部杀掉!

如果你的应用中存在在以下情况下,应用程序不推荐安装到外部存储上:

1.应用程序中有运行后台Service

2.注册了通知服务例如AlarmManager

3.第三方输入法,如果将第三方输入法安装到外部存储上,如果当前外部存储被挂起,则第三方输入法会失效并切回系统输入法

4.墙纸主题应用,外部存储被挂起时,会切换为系统默认墙纸或主题

5.App桌面组件工具,外部存储被挂起是,会将Widgets从桌面移除

6.注册了开机广播的应用,因为系统是先发出开机广播然后再加载外部存储设备的,这里有个顺序问题

上一篇:ABP框架 ApplictianService 返回结果被封装


下一篇:Qt对文件的删除、复制、移动、可执行文件位置