Starting March 27, 2025, we recommend using android-latest-release
instead of aosp-main
to build and contribute to AOSP. For more information, see Changes to AOSP.
Package Manager Configuration (deprecated)
Stay organized with collections
Save and categorize content based on your preferences.
The dexopt implementation in the package manager only applies to Android
13 and lower. In Android 14, it is replaced by ART
Service, and it will be removed from the package manager in the next version. For information about
configuring ART Service, see
ART Service Configuration.
Since Android 7.0, there's a generic way to specify the level of
compilation/verification that happened at various stages.
The compilation levels can be configured via system properties
with the defaults being:
pm.dexopt.install=speed-profile
This is the compilation filter used when installing applications through Google Play or other app
stores. We recommend the install filter be set to speed-profile
in order to enable
the use of profiles from the dex metadata files (see
blog).
Note that if a profile isn't provided or if it is empty, speed-profile
is equivalent
to verify
.
pm.dexopt.bg-dexopt=speed-profile
This is the compilation filter used when the device is idle and charging. Try the
speed-profile
compiler filter to take advantage of profile-guided compilation and save
on storage.
pm.dexopt.boot-after-ota=verify
The compilation filter used after an over-the-air update. We
strongly recommend the verify
compiler filter for this
option to avoid very long boot times.
pm.dexopt.first-boot=verify
-
The compilation filter for the first time the device ever boots. The filter
used here only affects the boot time after factory. We recommend the filter
verify
for it to avoid long times before a user gets to
use the phone for the very first time. Note that if all applications in
the system image are already compiled with verify
, speed-profile
, or
speed
with the right class loader context, the compilation on the first boot will be
skipped, and pm.dexopt.first-boot
will have no effect.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-06-12 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-06-12 UTC."],[],[],null,["# Package Manager Configuration (deprecated)\n\nThe dexopt implementation in the package manager only applies to Android\n13 and lower. In Android 14, it is replaced by ART\nService, and it will be removed from the package manager in the next version. For information about\nconfiguring ART Service, see\n[ART Service Configuration](/docs/core/runtime/configure/art-service).\n\n\nSince Android 7.0, there's a generic way to specify the level of\ncompilation/verification that happened at various stages.\nThe compilation levels can be configured via system properties\nwith the defaults being:\n\n- `pm.dexopt.install=speed-profile`\n- This is the compilation filter used when installing applications through Google Play or other app stores. We recommend the install filter be set to `speed-profile` in order to enable the use of profiles from the dex metadata files (see [blog](https://android-developers.googleblog.com/2019/04/improving-app-performance-with-art.html)). Note that if a profile isn't provided or if it is empty, `speed-profile` is equivalent to `verify`.\n- `pm.dexopt.bg-dexopt=speed-profile`\n- This is the compilation filter used when the device is idle and charging. Try the `speed-profile` compiler filter to take advantage of profile-guided compilation and save on storage.\n- `pm.dexopt.boot-after-ota=verify`\n- The compilation filter used after an over-the-air update. We **strongly** recommend the `verify` compiler filter for this option to avoid very long boot times.\n- `pm.dexopt.first-boot=verify`\n-\n The compilation filter for the first time the device ever boots. The filter\n used here only affects the boot time after factory. We recommend the filter\n `verify` for it to avoid long times before a user gets to\n use the phone for the very first time. Note that if all applications in\n the system image are already compiled with `verify`, `speed-profile`, or\n `speed` with the right class loader context, the compilation on the first boot will be\n skipped, and `pm.dexopt.first-boot` will have no effect."]]