L版本打开WITH_DEXPREOPT宏后首次开机仍慢

本文探讨了在L版本中启用WITH_DEXPREOPT宏后,设备首次开机速度仍然缓慢的问题。针对MTK平台,文章分析了64位APK的处理和存储影响,寻求解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

L版本打开WITH_DEXPREOPT宏后首次开机仍慢

[DESCRIPTION]
打开宏WITH_DEXPREOPT:=true后,首次开机无效 果仍然慢;
说明开机之后又去提取预置apk的odex文件(原本应该是在预编译阶段就生成的);
主要原因是预置apk的Android.mk对32bit和64bit的配置不准确导致。
[SOLUTION]
搜索main log关键字:dex2oat : /system/bin/dex2oat
这条log打印出就代表这个apk有在做dex2oat且是32还是64的指令集
I dex2oat : /system/bin/dex2oat --zip-fd=11 --ziplocation=/
system/app/***.apk --oat-fd=12 --oat-location=/data/dalvikcache/
arm or arm64/system@app@**@**.apk@classes.dex --instruction-set=arm
or arm64 --instruction-set-features=default --runtime-arg -Xms64m --
runtime-arg -Xmx512m --swap-fd=13
oat-location表示odex文件存储位置
Instruction-set表示此apk的primaryCpuAbi对应的指令集(arm对应32bit / arm64对
应64bit)
请严格遵守:
1、对于64bit的芯片,若apk只32bit的lib或者只能作为32bit运行,请在预置apk时在
android.mk中添加下边的TAG标记此apk为32bit:
LOCAL_MULTILIB :=32
(比如出现上述做dex2oat arm的log,则需这样设定)
2、而对于有源码无lib库的apk,请注释掉LOCAL_MULTILIB :=32
(比如出现上述做dex2oat arm64的log,则需这样注释掉)
3、开机之后既提取arm又提取arm64的apk,请设定LOCAL_MULTILIB :=both
(比如出现上述做dex2oat arm以及arm64的log,则需这样设定)
总之,对32bit 和 64bit的apk做不同处理。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值