站点图标 姿势小王子

使用dex2oat编译优化app,提升运行速度,无需root/adb

虚拟机从Dalvik到ART、从靠解释运行到全部/部分编译后运行,编译后的应用体积更大,但是运行速度可能更快,也可能更加省电。

使用到的命令:

cmd package compile -m <编译选项> <其余参数> <应用包名>

1、编译选项:

interpret-only:不编译,仅靠解释运行应用,效率很低,占用空间最小;

space:仅编译一小部分函数,其余不编译,占用空间较小;

balanced:在占用空间与运行效率上做一平衡;

speed-profile:将配置文件中标明的函数编译一遍,这些函数可能是热点函数,为部分编译,频繁使用的功能运行效率会变高,不常使用的效率便会很低;

speed :将程序中所有函数都编译一遍,效率和占用空间均较高;

everything:译所有代码,效率最高,能耗较低,占用空间最高。

手机存储空间比较大建议speed或者everything模式,手机内存小就space模式。

2、其他参数:

-f :强制编译,无论应用是否曾被编译,均会被重新编译。

-a 编译全部。

比如:

# 使用everything模式重新编译全部app。编译时间长。
cmd package compile -m everything -f -a

# 使用speed模式编译telegram
cmd package compile -m speed -f com.telegram.messenger

3、获取app包名可以使用一个木函等app,或者查看:/data/system/packages.list。

有root或者使用adb,也可以无需root权限,无需adb,但是终端不能用termux。可以使用script manager,或者terminal。

如果编译app后出现了什么问题,清理缓存,或者卸载重装,即可恢复。如果是系统应用,使用speed模式编译模式出问题,就可以使用interpret-only模式编译回去。

更新app之后,需要重新编译app。

退出移动版