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

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

android linux应用安装位置,Android中App安装位置详解相关推荐

  1. php 中 app cookie管理,详解iOS App开发中Cookie的管理方法

    一.何为Cookie Cookie是网站为了便是终端身份,保存在终端本地的用户凭证信息.Cookie中的字段与意义由服务端进行定义.例如,当用户在某个网站进行了登录操作后,服务端会将Cookie信息返 ...

  2. linux教程for语句,Bash 中的 For 循环详解

    循环是编程语言的基本概念之一.当你想要一遍又一遍地运行一系列命令直到达到某个条件后终止退出时,循环很方便. 在诸如 Bash 之类的脚本语言中,循环对于自动执行重复性任务非常有用.在 Bash 脚本中 ...

  3. linux nginx location,nginx配置文件中的location指令详解

    Nginx的HTTP配置主要包括三个区块,结构如下:http { //这个是协议级别 include mime.types; default_type application/octet-stream ...

  4. android 11.0 12.0app安装黑名单(限制app安装)

    1.概述 在11.0 12.0定制化开发中,最近由项目需求要实现对某些app应用安装限制也就是app安装黑名单功能,在黑名单之中的应用会被限制安装,不能安装到系统中 功能分析 在系统中PMS就是负责管 ...

  5. android 8.1 9.0 10.0 app安装黑名单(限制app安装)

    1.概述 在10.0的产品定制化开发中,客户需求要实现对某些app应用限制也就是app安装黑名单功能,在黑名单之中的应用会被限制安装,PMS就是负责管理app安装和卸载的,所以接下来看下PackMan ...

  6. Android  Doze and App Standby模式详解

    Android  Doze and App Standby模式详解 来源:腾云阁 https://www.qcloud.com/community Optimizing for Doze and Ap ...

  7. Android中的四大组件详解

    Android中的四大组件详解 我们都知道Android系统应用层框架中,为开发者提供了四大组件来便于应用的开发,它们是Activity.Service.BroadcastReceiver.Conte ...

  8. Android M新特性Doze and App Standby模式详解

    转载请标明出处:http://blog.csdn.net/xx326664162/article/details/52312122 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的 ...

  9. android studio parcelable,Android中Parcelable的使用详解

    Parcelable与Serializable Serializable是Java为我们提供的一个标准化的序列化接口. Parcelable是Android为我们提供的序列化的接口. 对比: 1.Pa ...

  10. linux tftp客户端安装命令,Linux系统中tftp命令使用详解

    Linux系统中tftp命令主要是传输文件用的.下面由学习啦小编为大家整理了linux系统中tftp命令使用详解,希望对大家有帮助! Linux系统中tftp命令使用详解 语法 tftp [主机名称或 ...

最新文章

  1. HTML基础(part2)--HTML介绍及空白合并
  2. Vue学习笔记:创建一个Vue实例
  3. leetcode--single number.
  4. Python编程技巧合集
  5. oracle安装过程中内核参数详解
  6. numpy 常用api(一)
  7. 【web组件库系列】封装自己的字体图标库
  8. idea关于连接mysql数据库异常解决的方法
  9. HTML中常见元素及格式
  10. iOS端Mock GPS定位 —— 测试、开发、玩游戏、发朋友圈等等,你都用得上(转)
  11. 修改Solaris系统时间
  12. php 小程序生成海报,轻松生成小程序分享海报
  13. VS2010 旗舰版和专业版 下载
  14. [百晓生]-鼠标右键新建添加RTF文档
  15. Tac-Simur: Tactic-based Simulative Visual Analytics of Table Tennis
  16. 关于ABA问题(隔壁老王问题)
  17. 使用 Android Studio 内置的模拟器体验原生安卓
  18. ICPC2021第一场网络预选赛A题
  19. 中国移动国际mCloud体验再次升级,助力企业远程协同数字化转型
  20. EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器解决方案之CDN内容分发网络

热门文章

  1. Go语言 Redis的使用
  2. CVCode简繁转换的扩展:GBK与Big5转换
  3. hihoCoder1040 矩形判断
  4. 用Windows Live Writer在51CTO写博客
  5. 腾讯云服务器配置JDK和Tomcat环境
  6. Apache ab压力测试工具
  7. 2013年F5应用交付高峰论坛北京站落幕
  8. 卢松松:你的网站也是抄来的吗?
  9. GetLogicalDriveStringS获取驱动器根路径
  10. keyCode(ASCII)与键盘按键对照表