开发者如何控制Android App的安装位置

Android的应用程序要么安装在内部存储器中,要么就安装在外部存储器中(如SD卡)。那么如何控制App的安装位置呢。


原来在工程中的 AndroidManifest.xml 文件中的<manifest>标签中有个 android:installLocation 属性,这个属性可以设置为三种值:

(1) "internalOnly" :如果这是成这个值那么App将只能安装在内部存储器上,用户可以请求将App从内部存储区移动到外部存储器中,但是如果设置了"internalOnly",那么将不允许这种移动。

(2) "auto":系统会默认将App安装在内部存储器中,但是如果内部存储器容量已满,系统就会把App安装在外部存储器上。

(3) "preferExternal" :系统会将App安装在外部存储器中,但是如果外部存储器容量已满,系统就会把App安装在内部存储器中。

※只有API Level > 7 的版本才支持将App安装在外部存储器中,不过现在基本上也见不到低于level 8的Android设备了



如果没有对 android:installLocation 属性进行设置,那么系统将默认采用"internalOnly" 值。


当用户把USB插在电脑上进行数据传输时,安装在外部存储器上的程序将会终止运行,所以这里有一些参考,罗列了如果你的App有哪些功能时不应该将你的App安装在外部存储器上:

1. 含有Service

2. 闹钟服务

3.  IME (输入法)

4.  动态壁纸

5.  App Widget (应用组件)  //这个我也没弄懂指的是啥

6.  账户管理

7.  Sync Adapter (同步适配器)

8.  设备管理

9.  监听了"boot completed"的广播接收器(Broadcast Receivers)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值