Android强制指定安装目录

原创 2017年09月13日 20:24:47
+++ b/frameworks/base/core/java/android/content/pm/PackageParser.java
@@ -194,7 +194,8 @@ public class PackageParser {

     private static boolean sCompatibilityModeEnabled = true;
     private static final int PARSE_DEFAULT_INSTALL_LOCATION =
-            PackageInfo.INSTALL_LOCATION_UNSPECIFIED;
+          PackageInfo.INSTALL_LOCATION_PREFER_EXTERNAL;            
+//     PackageInfo.INSTALL_LOCATION_UNSPECIFIED;

     static class ParsePackageItemArgs {
         final Package owner;
@@ -1280,8 +1281,9 @@ public class PackageParser {
         for (int i = 0; i < attrs.getAttributeCount(); i++) {
             final String attr = attrs.getAttributeName(i);
             if (attr.equals("installLocation")) {
-                installLocation = attrs.getAttributeIntValue(i,
-                        PARSE_DEFAULT_INSTALL_LOCATION);
+           //     installLocation = attrs.getAttributeIntValue(i,
+           //             PARSE_DEFAULT_INSTALL_LOCATION);
+                 installLocation = PARSE_DEFAULT_INSTALL_LOCATION;
             } else if (attr.equals("versionCode")) {
                 versionCode = attrs.getAttributeIntValue(i, 0);
             } else if (attr.equals("revisionCode")) {
@@ -1401,9 +1403,10 @@ public class PackageParser {
                     com.android.internal.R.styleable.AndroidManifest_sharedUserLabel, 0);
         }

-        pkg.installLocation = sa.getInteger(
-                com.android.internal.R.styleable.AndroidManifest_installLocation,
-                PARSE_DEFAULT_INSTALL_LOCATION);
+//        pkg.installLocation = sa.getInteger(
+//                com.android.internal.R.styleable.AndroidManifest_installLocation,
+//                PARSE_DEFAULT_INSTALL_LOCATION);
+       pkg.installLocation = PARSE_DEFAULT_INSTALL_LOCATION;
         pkg.applicationInfo.installLocation = pkg.installLocation;

         pkg.coreApp = attrs.getAttributeBooleanValue(null, "coreApp", false);
版权声明:本文为博主原创文章,未经博主允许不得转载。

Android应用程序的安装位置

从API Level8以后,android允许将应用程序安装在外部空间,之前则只能安装到内部空间。 一、安装到外部空间的特点 二、安装路径选择的策略 它由多方面的因素影响,包括应用本身的设置、安装应用...
  • y658t
  • y658t
  • 2014年03月01日 13:18
  • 1971

Linux软件安装到指定目录方法

1、软件安装卸载,分几种情况: A:RPM包,这种软件包就像windows的EXE安装文件一样,各种文件已经编译好,并打了包,哪个文件该放到哪个文件夹,都指定好了,安装非常方便,在图形界面里你只...
  • ywb201314
  • ywb201314
  • 2016年05月07日 15:18
  • 3436

账号二次登陆,强制当前账号下线

很多网页或者APP都是通过SessionID(会话ID)或者Token(令牌)和服务器进行交互,以保证交互过程,客户端的唯一性。那么如果账号出现了二次登陆,应该如何处理呢?本文模拟服务器消息,然后简单...
  • abc6368765
  • abc6368765
  • 2016年06月29日 17:22
  • 1616

APK安装时如何拷贝apk里的文件到sdcard

安装: String str = "/CanavaCancel.apk"; String fileName = Environment.getExternalStorageDirectory(...
  • tiandyoin
  • tiandyoin
  • 2014年04月11日 09:40
  • 3175

android SDK 安装目录结构详解及各工具

目录结构图片模糊可以在本文章附件中查看清晰图片       重点介绍SDK自带的工具: tools目录   重点介以下工具,其他工具,学友们可...
  • liao277218962
  • liao277218962
  • 2013年04月21日 01:58
  • 324

Android NDK开发(九)——应用监听自身卸载升级版,使用Inotify监听安装目录

在上一篇博客中,我们讲了一个小小的案例,用NDK监听应用程序自身卸载,并且打开内置浏览器加载用户调用页面。关于监听应用程序自身卸载的原理和实现方案可以在上篇博客中找到,地址是:http://blog....
  • lee_tianya
  • lee_tianya
  • 2015年01月09日 16:35
  • 5841

android应用程序安装目录及android开发相关

1,第3方android应用程序的安装目录默认在/data/app/下,可以看到此目录下有很多apk文件; 2,系统提供的应用程序安装在/system/app/下,同样在这里可以看到很多apk文件; ...
  • cp25807720
  • cp25807720
  • 2014年03月13日 00:57
  • 868

linux的软件指定安装目录

1、软件安装卸载,分几种情况: A:RPM包,这种软件包就像windows的EXE安装文件一样,各种文件已经编译好,并打了包,哪个文件该放到哪个文件夹,都指定好了,安装非常方便,在图形界面里你只需要...
  • happy_marvin
  • happy_marvin
  • 2014年09月16日 10:31
  • 312

linux 手工自动安装mysql最新版本tar包步骤(随意指定安装目录且不分散)

操作必须是root权限,可以sudo su提升1. 完全卸载之前安装的所有的mysql,以及配置文件等等2. 使用命令 uname -a 查看linux的版本,注意是32位还是64位的3. 到mysq...
  • qidizi
  • qidizi
  • 2013年03月28日 16:48
  • 3279

NodeJS、npm安装配置,指定npm安装目录,可移植的node以及模块

1、首先我们要到nodejs官网(https://nodejs.org)上下载node,选择一个自己喜欢的版本下载。我这里选择的是最新版2、下载完了就直接双击安装,安装过程中可以另外指定安装路径,我的...
  • suiyuehuimou
  • suiyuehuimou
  • 2017年07月02日 18:04
  • 1296
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android强制指定安装目录
举报原因:
原因补充:

(最多只允许输入30个字)