`
想不尽的念
  • 浏览: 23313 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android M low ram device优化apk安装速度

阅读更多
安装apk慢是因为dex2oat行为导致的,要优化可以牺牲一些检查,强制用vmSafeMode去安装,facebook举例,低端机器从安装10分钟改善为1分钟不到。修改方法如下:
  1 diff --git a/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java b/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
  2 index f35552d..8ae1e13 100644
  3 --- a/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
  4 +++ b/base/services/core/java/com/android/server/pm/PackageDexOptimizer.java
  5 @@ -115,7 +115,12 @@ final class PackageDexOptimizer {
  6              return DEX_OPT_SKIPPED;
  7          }
  8
  9 +/*
10          final boolean vmSafeMode = (pkg.applicationInfo.flags & ApplicationInfo.FLAG_VM_SAFE_MODE) != 0;
11 + */
12 +        boolean vmSafeMode = (pkg.applicationInfo.flags & ApplicationInfo.FLAG_VM_SAFE_MODE) != 0;
13          final boolean debuggable = (pkg.applicationInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
14
15          final List<String> paths = pkg.getAllCodePathsExcludingResourceOnly();
16 @@ -171,6 +176,13 @@ final class PackageDexOptimizer {
17                          throw new IllegalStateException("Invalid dexopt needed: " + dexoptNeeded);
18                      }
19
20 +                    if (pkg.applicationInfo.packageName.contains("facebook")) {
21 +                        vmSafeMode = true;
22 +                    }
23                      Log.i(TAG, "Running dexopt (" + dexoptType + ") on: " + path + " pkg="
24                              + pkg.applicationInfo.packageName + " isa=" + dexCodeInstructionSet
25                              + " vmSafeMode=" + vmSafeMode + " debuggable=" + debuggable
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics