软件包管理系统中的 dexopt 实现仅适用于 Android 13 及更低版本。在 Android 14 中,它已被 ART 服务取代,并且将在下一个版本中从软件包管理系统中移除。如需了解如何配置 ART 服务,请参阅 ART 服务配置。
从 Android 7.0 开始,系统提供了一种通用方式来指定各个阶段的编译/验证级别。编译级别通过系统属性来配置,默认值如下:
pm.dexopt.install=speed-profile
pm.dexopt.bg-dexopt=speed-profile
pm.dexopt.boot-after-ota=verify
pm.dexopt.first-boot=verify
-
在设备初次启动时使用的编译过滤器。此时使用的过滤器只会影响出厂后的启动时间。我们建议使用
verify
过滤器,以免用户在首次使用手机时需要花很长时间等待手机启动。请注意,如果系统映像中的所有应用都已使用verify
、speed-profile
或speed
和正确的类加载器上下文进行了编译,首次启动时的编译将被忽略,pm.dexopt.first-boot
将不会产生任何影响。
这是通过 Google Play 或其他应用商店安装应用时使用的编译器过滤器。我们建议将安装过滤器设置为 speed-profile
,以支持使用 dex 元数据文件中的配置文件(请参阅博文)。请注意,如果未提供配置文件或配置文件为空,speed-profile
的效果与 verify
相同。
这是在设备空闲以及充电时使用的编译器过滤器。如要充分利用配置文件引导型编译并节省存储空间,可以尝试使用 speed-profile
编译器过滤器。
无线下载更新后使用的编译过滤器。对于此选项,我们强烈建议使用 verify
编译过滤器,以防启动时间过长。