android应用程序的安装位置
16lz
2021-12-04
本文编辑整理自:
http://blog.163.com/hero_213/blog/static/3989121420116212341948/ http://blog.163.com/hero_213/blog/static/39891214201162123639488/ Android应用程序的默认安装位置以及是否可移动取决于开发者在其AndroidManifest.xml中的设置
http://blog.163.com/hero_213/blog/static/3989121420116212341948/ http://blog.163.com/hero_213/blog/static/39891214201162123639488/ Android应用程序的默认安装位置以及是否可移动取决于开发者在其AndroidManifest.xml中的设置
<manifest xmlns: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");结束!
更多相关文章
- Pycharm安装PyQt5的详细教程
- Android(安卓)- Manifest 文件 详解
- 同时安装调试两个相同的应用 android:package 用来区分两个应用
- 关于有些安卓手机安装应用的时候提示应用未安装 的解决办法之一
- Android(安卓)BroadcastReceiver
- android:installLocation简析
- Ubuntu14.04下最新Android(安卓)NDK安装
- 测试_Android通过tcpdump抓包
- Android之Input子系统事件分发流程