迅维网

标题: 修改安卓安装app时的dex编译配置为速度模式 让app启动速度更快 [打印本页]

作者: zhaoyueming    时间: 2025-2-7 19:58
标题: 修改安卓安装app时的dex编译配置为速度模式 让app启动速度更快
本帖最后由 zhaoyueming 于 2025-2-8 09:03 编辑

安卓手机安装app时会有个dex编译配置
一般都不是速度模式
导致app安装后启动速度很慢
所以修改安卓默认的安装app时的dex编译配置为speed速度模式
让app启动速度变得最快吧
如何做到
1
复制下面这段优化代码
pm.dexopt.install=speed
pm.dexopt.bg-dexopt=speed
pm.dexopt.boot=speed
pm.dexopt.first-boot=speed

2
然后把以上优化代码复制到/system/build.prop文件里的最下面
注意再把修改后的build.prop文件权限设置成原来的三读一写
不设置成原来的三读一写 手机会卡死在启动界面无法启动 需要严重注意
20250207_195438.png
登录/注册后看高清大图


最后重启手机 那么每次安装app时都是speed模式 app安装后启动速度最快
但是 也有不好的缺点 那就是新的软件安装时安装时间会变得很长
因为在进行速度编译 所以安装时间会变得很长但安装时间并没有长多少 可以忽略





补充内容 (2025-4-8 13:53):
为了解决dex编译优化成speed后安装app时间变长的问题 可以在第一次安装app后备份/data/app/软件包名/oat/arm/base.odex和arm64/base.odex这两个文件 没有arm64/base.odex则不备份

补充内容 (2025-4-8 14:33):
当再次安装同一个且版本也相同的app时 注意版本也要相同 先重命名/system/bin/dex2oat文件为dex2oatx让系统禁用dex2oat命令 再安装app 会最快安装完成 再把备份的arm/base.odex和arm64/base.odex还原到相同的目录

补充内容 (2025-4-8 14:43):
这样安装app后就可以直接完成dex的编译优化 从而实现最快安装完成app  又能让app启动运行速度最快
然后再把/system/bin/dex2oatx重命名回dex2oat

补充内容 (2025-11-30 06:25):
speed模式依然不是最快的模式 最快的模式是everything模式

补充内容 (2025-11-30 06:30):
修改成
pm.dexopt.first-boot=everything
pm.dexopt.boot=everything
pm.dexopt.install=everything
pm.dexopt.bg-dexopt=everything
才是最快的速度

补充内容 (2025-11-30 06:37):
interpret-only/quicken‌ 模式仅验证 DEX代码并优化指令 不生成机器码 性能与 Dalvik一致
‌verify/verify-profile‌      模式仅验证代码 不编译

补充内容 (2025-11-30 06:39):
speed-profile‌ 模式根据热点代码(Hot Methods)的profile数据编译部分方法 平衡性能与空间
‌speed‌           模式编译所有方法 但可能跳过巨型方法(Huge Methods)

补充内容 (2025-11-30 06:41):
everything‌ 模式编译所有可编译的代码(包括巨型方法)追求极致性能 速度最快 超过speed模式速度

补充内容 (2025-11-30 06:51):
编译单个app为everything‌模式命令
cmd package compile -m everything -f <app包名>
比如
cmd package compile -m everything -f com.tencent.mobileqq
则优化qq的dex2oat模式为everything模式

补充内容 (2025-11-30 06:56):
编译所有的app为everything模式命令
cmd package compile -m everything -f -a
只需添加 -a 参数即可
作者: VXVYUFh6    时间: 2025-2-7 20:16
学习下学习下
作者: zhaoyueming    时间: 2025-2-8 09:04

作者: u1582633    时间: 2025-2-10 10:27
学习一下。。。。。。。。。。
作者: zhaoyueming    时间: 2025-2-11 00:05
u1582633 发表于 2025-2-10 10:27
学习一下。。。。。。。。。。


作者: 留不住妳的吻♀    时间: 2025-2-15 17:06
路过看看                                               
作者: zhaoyueming    时间: 2025-4-18 02:47
本帖最后由 zhaoyueming 于 2025-4-22 10:50 编辑

安卓系统高版本还可以有更多dex编译参数配置成speed模式

以下代码全部复制到/system/build.prop文件里的最下面

注意 /system/build.prop文件修改后文件权限也要修改成原来的权限 一般是三读一写 不然卡在启动界面

注意 安卓9及以上系统先在/system分区和/vendor分区搜索带prop字样的所有文件 然后对已存在dex编译参数代码的文件进行修改添加 不一定是修改/system/build.prop文件

pm.dexopt.first-boot=speed
pm.dexopt.boot=speed
pm.dexopt.install=speed
pm.dexopt.bg-dexopt=speed
pm.dexopt.ab-ota=speed
pm.dexopt.inactive=speed
pm.dexopt.shared=speed
pm.dexopt.cmdline=speed
pm.dexopt.boot-after-mainline-update=speed
pm.dexopt.install-bulk=speed
pm.dexopt.install-bulk-downgraded=speed
pm.dexopt.install-bulk-secondary=speed
pm.dexopt.install-bulk-secondary-downgraded=speed
pm.dexopt.boot-after-ota=speed
pm.dexopt.post-boot=speed
pm.dexopt.install-fast=speed


注意
pm.dexopt.boot-after-ota=speed存在时pm.dexopt.boot=speed会无效
pm.dexopt.boot-after-mainline-update=speed存在时pm.dexopt.boot=speed也会无效

可以删除pm.dexopt.boot-after-ota=speed和pm.dexopt.boot-after-mainline-update=speed这两行代码只保留pm.dexopt.boot=speed

如果删除pm.dexopt.boot-after-ota=speed后一直卡在启动界面那么pm.dexopt.boot-after-ota=speed不能删除

如果删除pm.dexopt.boot-after-mainline-update=speed后一直卡在启动界面那么pm.dexopt.boot-after-mainline-update=speed不能删除







补充内容 (2025-11-30 07:13):
再增加四行代码
pm.dexopt.nsys-library=everything
pm.dexopt.shared-apk=everything
pm.dexopt.forced-dexopt=everything
pm.dexopt.core-app=everything




欢迎光临 迅维网 (https://www.chinafix.com/) Powered by Discuz! X3.4