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");

更多相关文章

  1. Android(安卓)Studio 创建虚拟机失败 Failed to load 解决办法
  2. android manifest.xml中元素含义
  3. Android(安卓)SDK中tools详解
  4. Android系统构架分析和应用程序目录结构分析
  5. android cmd adb命令安装和删除apk应用
  6. Windows下Android平台搭建_3
  7. Android(安卓)应用程序之道
  8. Android介绍与前景
  9. 让Python程序在Android手机上跑起来

随机推荐

  1. mysql 操作索引FORCE INDEX
  2. navicat for mysql 传输数据失败
  3. 需要从mysql数据库中获得productdata。
  4. 在本地计算机无法启动MySQL服务。错误106
  5. MySQL在Windows下不是免费的,那大家都是怎
  6. 如何使用webrequest使用Json数组绘制折线
  7. MySQL忘记root密码??重置密码方法
  8. mysql 同一表中.两个字段值互相复制,从一
  9. MySQL笔记(二)查询操作
  10. MySQL在保存数据时添加时间戳