zoukankan      html  css  js  c++  java
  • Android应用程序的安装位置

    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");6
  • 相关阅读:
    汇编笔记
    PHP笔记——SOAP
    Eclipse 插件资源地址记录
    使用SetWindowLong修改窗口样式
    C++ builder 剪贴板Clipboard使用
    c++ builder 实现右键选择节点实现方式
    c++ builder 使listview获得焦点并选择第一个节点
    c++ builder 2009 启用codeguard 检测内存泄漏
    c++ builder 2009如何生成独立运行exe
    WPF编程学习——样式
  • 原文地址:https://www.cnblogs.com/zhaolizhe/p/6945996.html
Copyright © 2011-2022 走看看