包管理器中的 dexopt 實現僅適用於 Android 13 及更低版本。在Android 14中,它被ART Service取代,並將在下一版本中從包管理器中刪除。有關配置 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
編譯器過濾器,以避免啟動時間過長。