android开发步步为营之15:默认让应用程序安装到手机外存sd卡上

本文介绍了从Android 2.2(API Level 8)开始支持的应用安装位置配置功能,包括如何设置manifest文件中的android:installLocation属性来指定应用安装在内部存储还是外部存储,以及如何保持与较低版本的Android系统的兼容性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从用户的角度来说,他当然希望你的应用安装到外存上,因为内存占用的越少,应用才能运行的越快。然后机器也可以安装更多的应用了。 如图:
安装在了内存:
 
 
安装在了外存:

一、API Level 8(android 2.2)以上版本开始支持
从API Level 8开始,你可以允许你的应用安装至扩展存储(例如,SD卡)。这是一个可选功能,你可以在你应用的manifest属性android:installLocation里设定。如果你没设定这个属性,那么你的应用将被安装到内置存储,而且将不允许移动到扩展存储上。
   
android:installLocation 属性值包含 "preferExternal"、"auto"、” internalOnly”三种。
为了允许系统可以在扩展存储上安装你的应用,修改你的manifest文件,在 <manifest> 元素中包含android:installLocation 属性,设置其值为"preferExternal"或"auto"。例如:
<manifest xmlns:android=" http://schemas.android.com/apk/res/android"
    package="com.snda.wallet" android:versionCode="128"
    android:versionName="2.1.6-120306128" android:installLocation="preferExternal">
 
如果你定义了 "preferExternal",意味着你要求你的应用安装至扩展存储,但是系统不能保证应用肯定会安装至扩展存储。如果扩展存储没有空间了,系统将把应用安装到内置存储。用户可以在两个位置之间移动你的应用。
如果你定义了 "auto",表示你的应用可能会安装在扩展存储,但是对安装位置没有特别的偏好。系统将基于很多因素决定你的应用安装到哪里。用户同样可以将应用在两个位置之间移动。
  
二、如何兼容API Level 8(android 2.2)以下版本?
 
将你的应用安装至扩展存储的功能是运行API Level 8(Android 2.2)及以上版本的设备才有效的。使用API Level 8 之前的版本编译的已存在的应用,将一直安装在内置存储,并且无法移动至扩展存储(即使设备上运行的是API Level 8版本的系统)。然而,如果你的应用计划支持低于8的API Level,你可以选择针对API Level 8及更高版本支持此特性,并且继续保持与低于API level 8的设备兼容。
 
     为了允许安装在扩展存储并且保持与API Level 8或更低版本兼容,你需要做以下改动:
 (1)、 在 <manifest>元素中,包含值为"auto"或 "preferExternal" 的 android:installLocation 属性。
 
 (2)、继续保持你的 android:minSdkVersion 属性不变(小于8的值)并且确定你的应用代码只使用与此level保持兼容的API。
 
 (3)、为了编译你的应用,default.properties文件里面,更改你的build target为API Level 8。target=android-8,这步操作是必须的,因为旧的Android库无法理解 android:installLocation 属性,并且当该属性存在时,也不会编译你的应用。
 
    当你的应用安装到API Level 低于8的设备上时, android:installLocation 属性被忽略,并且应用会被安装至内置存储上。
 
    注意:尽管XML标记,例如这个将被之前的平台忽略,但你还是要小心不要使用API Level 8中的编程API,除非你在你的代码中提供向后兼容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值