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

通过修改dex2oat过程中的vmSafeMode设置,可以显著减少低端设备上安装Facebook APK的时间,从10分钟缩短到不到1分钟。
AI助手已提取文章相关产品:
安装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

您可能感兴趣的与本文相关内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值