Android中App安装位置详解

Android中App安装位置详解

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

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

原文发布于微信公众号 - Java学习网(javalearns)

原文发表时间:2015-07-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Ken的杂谈

【Hyper-V教程】二、安装CentOS7虚拟机

5942
来自专栏京东技术

必须掌握的ADB命令 | 让你的测试事半功倍

ADB的全称是Android Debug Bridge,是一个与模拟器或者连接设备通讯的桥梁。ADB是CS结构包含三个部分:

1.3K4
来自专栏web编程技术分享

【php增删改查实例】第二十二节 - 引入百度地图

2095
来自专栏张戈的专栏

Nginx开启fastcgi_cache缓存加速,支持html伪静态页面

张戈博客不久前分享过 Nginx 开启缓存为 WordPress 加速的教程,其中分享了 2 种缓存模式:代理模式和本地模式。我一直以为单个 ngx_cache...

7575
来自专栏ionic3+

自定义Cordova插件详解

在混合式应用中,我们通过现有的Cordova插件,可以轻松的在 H5 上调用手机native的功能。现有的Cordova插件能满足平时大部分的开发需求,然而,有...

1713
来自专栏游戏杂谈

rtx登录内网系统

公司内部使用rtx进行沟通和交流,经常遇到订餐的问题,用php写了一个订餐系统,实现rtx上点击链接打开系统就自动登录了,无需再次输入用户名和密码。

2931
来自专栏子勰随笔

Android开发调试常用工具

2968
来自专栏iOS 开发杂谈

浅谈如何在项目中处理页面中的多个网络请求

在开发中很多时候会有这样的场景,同一个界面有多个请求,而且要在这几个请求都成功返回的时候再去进行下一操作,对于这种场景,如何来设计请求操作呢?今天我们就来讨论一...

2682
来自专栏Python爬虫与算法进阶

强大的异步爬虫 with aiohttp

看到现在网络上大多讲的都是requests、scrapy,却没有说到爬虫中的神器:aiohttp

1622
来自专栏Jerry的SAP技术分享

Java Web项目,Android和微信小程序的初始页面配置

我们在Eclipse里开了Java Web项目之后,Run As Tomcat或者Apache服务器,本地运行,如果直接用http://localhost:80...

2231

扫码关注云+社区

领取腾讯云代金券