Android中App安装位置详解

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

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

  1. <manifest xmlns:android="http://schemas.android.com/apk/res/android"     android:installLocation="preferEx 

如上,如果声明为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.注册了开机广播的应用,因为系统是先发出开机广播然后再加载外部存储设备的,这里有个顺序问题

责任编辑:闫佳明 来源: oschina
相关推荐

2021-08-10 20:41:33

AndroidApp流程

2011-02-13 11:37:45

Android 3.0

2011-09-09 13:47:48

Android Wid

2014-05-27 15:36:01

AndroidActivity启动模式

2021-11-24 08:33:09

Android广播机制应用程序

2017-11-14 08:27:13

AndroidLinuxAPP

2009-07-09 17:58:21

MyEclipse常用

2010-12-10 10:16:21

Android 2.3

2023-03-06 10:44:50

AndroidProguard

2010-07-22 12:25:58

Meego开发

2017-01-05 21:55:11

WindowsNano Server远程管理

2011-09-01 15:51:53

Qt插件VS 2010

2013-05-28 14:39:25

Android开发Android App

2010-05-13 10:45:38

2012-05-18 11:16:42

@Kroll注解详解TitaniumAndroid模块

2017-03-13 15:55:11

Windows 10WindowsDeskScapes

2020-12-07 13:48:48

EditorAndroid开发者

2014-07-30 13:37:15

ubuntu14.04bochs

2013-02-22 11:00:09

2021-07-21 16:30:38

iOSAPP架构
点赞
收藏

51CTO技术栈公众号