Android应用程序的安装位置
16lz
2021-12-04
Android应用程序的默认安装位置以及是否可移动取决于开发者在其AndroidManifest.xml中的设置: <manifestxmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:installLocation="auto" android:versionName="1.0"> android:installLocation的值有三个internalOnly,auto,preferExternal,缺省值为internalOnly internalOnly表示该应用程序只能安装到手机内部存储中。 auto表示由系统决定该应用程序安装到手机内部存储中还是SD卡中。 如果有SD卡且应用程序大于5M的话,安装到SD卡中,否则安排到手机内部存储中 preferExternal表示如果有SD卡就把该应用程序只能安装到SD卡中,否则安装到手机内部存储中。 android:installLocation为internalOnly时,用户在"Setting"->"Application"->"Manage applications"中不能把应用程序在SD卡与内存中相互移动 android:installLocation为auto或preferExternal时,用户在"Setting"->"Application"->"Manage applications"中可以把应用程序在SD卡与内存中相互移动 另外,adb shell 中可以使用pm setInstallLocation 2命令中强行更改安装位置。2代表的是强制安装在SD卡中,0代表自动,1代表强制装到手机内部存储中。 在代码中,对于高于Android 2.2的手机中,可以通过ApplicationInfo.FLAG_EXTERNAL_STORAGE标记可以判断应用是否安装在Sdcard上,对于低于Android 2.2的手机可以通过ApplicationInfo的sourceDir属性为/sdcard/开头来确定APK安装的位置。 示例1 PackageManager pm=ctx.getPackageManager(); ApplicationInfo appInfo=pm.getApplicationInfo(pkgName,0); if((appInfo.flags &ApplicationInfo.FLAG_EXTERNAL_STORAGE)!=0){ // App on sdcard System.out.println(pkgName+" install on sdcard");
更多相关文章
- Android(安卓)Studio 创建虚拟机失败 Failed to load 解决办法
- android manifest.xml中元素含义
- Android(安卓)SDK中tools详解
- Android系统构架分析和应用程序目录结构分析
- android cmd adb命令安装和删除apk应用
- Windows下Android平台搭建_3
- Android(安卓)应用程序之道
- Android介绍与前景
- 让Python程序在Android手机上跑起来