android 从api 8 开始,应用自身可以设置默认安装位置。
设置方法:
在 AndroidManifest.xml 中的manifest 节点设置 android:installLocation属性
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="preferExternal">
其中 android:installLocation有3种属性可以设置,分别是 auto、internalOnly、preferExternal
1:auto,应用可以被安装到外部存储器,但是没有优先权,用户可以自己设置应用安装在内部存储器还是外部存储器。
2:perferExternal,应用会被优先安装到外部存储器,如果没有外部存储器或者外部存储器满了会被安装到内部存储器中,用户可以自己设置应用安装在内部存储器还是外部存储器。
3:internalOnly,应用会被安装到内部存储器上面。
当应用被安装到外部存储器上面:
1).只要外部存储卡装载在手机上,不影响应用的性能。
2).只是.apk文件被放置在外部存储卡上面,用户存储的数据, 数据库, 所有的.dex文件, 运行代码都被保存在内存中。
3).应用虽然被安装在外部存储卡(sdcard) 中,但是应用是根据首次安装随机生成秘钥加密的。一个设备只能运行同一个应用。
4).可以通过系统设置,讲应用移动到内部存储卡当中。
5).当外部存储(sd card)卡被移除或者通过usb共享数据,那么安装运行在外部存储(sd card)卡上的应用进程会被立即杀死。
设置方法:
在 AndroidManifest.xml 中的manifest 节点设置 android:installLocation属性
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="preferExternal">
其中 android:installLocation有3种属性可以设置,分别是 auto、internalOnly、preferExternal
1:auto,应用可以被安装到外部存储器,但是没有优先权,用户可以自己设置应用安装在内部存储器还是外部存储器。
2:perferExternal,应用会被优先安装到外部存储器,如果没有外部存储器或者外部存储器满了会被安装到内部存储器中,用户可以自己设置应用安装在内部存储器还是外部存储器。
3:internalOnly,应用会被安装到内部存储器上面。
当应用被安装到外部存储器上面:
1).只要外部存储卡装载在手机上,不影响应用的性能。
2).只是.apk文件被放置在外部存储卡上面,用户存储的数据, 数据库, 所有的.dex文件, 运行代码都被保存在内存中。
3).应用虽然被安装在外部存储卡(sdcard) 中,但是应用是根据首次安装随机生成秘钥加密的。一个设备只能运行同一个应用。
4).可以通过系统设置,讲应用移动到内部存储卡当中。
5).当外部存储(sd card)卡被移除或者通过usb共享数据,那么安装运行在外部存储(sd card)卡上的应用进程会被立即杀死。