博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android应用程序的安装位置
阅读量:4616 次
发布时间:2019-06-09

本文共 1215 字,大约阅读时间需要 4 分钟。

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:installLocationinternalOnly时,用户在"Setting"->"Application"->"Manage applications"中不能把应用程序在SD卡与内存中相互移动 
android:installLocationautopreferExternal时,用户在"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");

转载于:https://www.cnblogs.com/Free-Thinker/p/4029234.html

你可能感兴趣的文章
Js刷新页面的几种方法(转)
查看>>
Linux挂载qcow2格式的镜像
查看>>
OSTU二值化算法
查看>>
深入理解Javascript原型和闭包(1)——一切都是对象
查看>>
【scroll-view】 可滚动视图组件说明
查看>>
折腾 Phalcon 的笔记
查看>>
数组加1问题
查看>>
ubuntu 12.04安装telnet和ssh服务
查看>>
Halcon一日一练:图像采集设备的基本参数
查看>>
WP7应用开发笔记(1) 序言
查看>>
Spring第五章:AOP(Schema-based)
查看>>
发现一些有趣的工具
查看>>
[翻译] UIView-draggable 可拖拽的UIView
查看>>
centos 下tomcat安装
查看>>
java基础-Reference三
查看>>
java登陆验证码与JS无刷新验证
查看>>
Spring3中js/css/jpg/gif等静态资源无法找到(No mapping found for HTTP request with URI)问题解决...
查看>>
POJ 2601
查看>>
android基本控件学习-----ToggleButton&Switch
查看>>
python采用pika库使用rabbitmq(五)消息持久化存储(Message durability)
查看>>