Android JIT編譯:adb shell cmd package compile選項
例如:
adb shell cmd package compile -m speed -f --full 包名
配置參數指令說明:
? compile [-r COMPILATION_REASON] [-m COMPILER_FILTER] [-p PRIORITY] [-f]
? ? ? [--primary-dex] [--secondary-dex] [--include-dependencies] [--full]
? ? ? [--split SPLIT_NAME] [--reset] [-a | PACKAGE_NAME]
? ? Dexopt a package or all packages.
? ? Options:
? ? ? -a Dexopt all packages
? ? ? -r Set the compiler filter and the priority based on the given
? ? ? ? ?compilation reason.
? ? ? ? ?Available options: 'first-boot', 'boot-after-ota',
? ? ? ? ?'boot-after-mainline-update', 'install', 'bg-dexopt', 'cmdline'.
? ? ? -m Set the target compiler filter. The filter actually used may be
? ? ? ? ?different, e.g. 'speed-profile' without profiles present may result in
? ? ? ? ?'verify' being used instead. If not specified, this defaults to the
? ? ? ? ?value given by -r, or the system property 'pm.dexopt.cmdline'.
? ? ? ? ?Available options (in descending order): 'speed', 'speed-profile',
? ? ? ? ?'verify'.
? ? ? -p Set the priority of the operation, which determines the resource usage
? ? ? ? ?and the process priority. If not specified, this defaults to
? ? ? ? ?the value given by -r, or 'PRIORITY_INTERACTIVE'.
? ? ? ? ?Available options (in descending order): 'PRIORITY_BOOT',
? ? ? ? ?'PRIORITY_INTERACTIVE_FAST', 'PRIORITY_INTERACTIVE',
? ? ? ? ?'PRIORITY_BACKGROUND'.
? ? ? -f Force dexopt, also when the compiler filter being applied is not
? ? ? ? ?better than that of the current dexopt artifacts for a package.
? ? ? --reset Reset the dexopt state of the package as if the package is newly
? ? ? ? ?installed.
? ? ? ? ?More specifically, it clears reference profiles, current profiles, and
? ? ? ? ?any code compiled from those local profiles. If there is an external
? ? ? ? ?profile (e.g., a cloud profile), the code compiled from that profile
? ? ? ? ?will be kept.
? ? ? ? ?For secondary dex files, it also clears all dexopt artifacts.
? ? ? ? ?When this flag is set, all the other flags are ignored.
? ? ? -v Verbose mode. This mode prints detailed results.
? ? ? --force-merge-profile Force merge profiles even if the difference between
? ? ? ? ?before and after the merge is not significant.
? ? Scope options:
? ? ? --primary-dex Dexopt primary dex files only (all APKs that are installed
? ? ? ? as part of the package, including the base APK and all other split
? ? ? ? APKs).
? ? ? --secondary-dex Dexopt secondary dex files only (APKs/JARs that the app
? ? ? ? puts in its own data directory at runtime and loads with custom
? ? ? ? classloaders).
? ? ? --include-dependencies Include dependency packages (dependencies that are
? ? ? ? declared by the app with <uses-library> tags and transitive
? ? ? ? dependencies). This option can only be used together with
? ? ? ? '--primary-dex' or '--secondary-dex'.
? ? ? --full Dexopt all above. (Recommended)
? ? ? --split SPLIT_NAME Only dexopt the given split. If SPLIT_NAME is an empty
? ? ? ? string, only dexopt the base APK.
? ? ? ? Tip: To pass an empty string, use a pair of quotes ("").
? ? ? ? When this option is set, '--primary-dex', '--secondary-dex',
? ? ? ? '--include-dependencies', '--full', and '-a' must not be set.
? ? ? Note: If none of the scope options above are set, the scope defaults to
? ? ? '--primary-dex --include-dependencies'.
??
? delete-dexopt PACKAGE_NAME
? ? Delete the dexopt artifacts of both primary dex files and secondary dex
? ? files of a package.
??
? bg-dexopt-job [--cancel | --disable | --enable]
? ? Control the background dexopt job.
? ? Without flags, it starts a background dexopt job immediately and waits for
? ? ? it to finish. If a job is already started either automatically by the
? ? ? system or through this command, it will wait for the running job to
? ? ? finish and then start a new one.
? ? Different from 'pm compile -r bg-dexopt -a', the behavior of this command
? ? is the same as a real background dexopt job. Specifically,
? ? ? - It only dexopts a subset of apps determined by either the system's
? ? ? ? default logic based on app usage data or the custom logic specified by
? ? ? ? the 'ArtManagerLocal.setBatchDexoptStartCallback' Java API.
? ? ? - It runs dexopt in parallel, where the concurrency setting is specified
? ? ? ? by the system property 'pm.dexopt.bg-dexopt.concurrency'.
? ? ? - If the storage is low, it also downgrades unused apps.
? ? ? - It also cleans up obsolete files.
? ? Options:
? ? ? --cancel Cancel any currently running background dexopt job immediately.
? ? ? ? This cancels jobs started either automatically by the system or through
? ? ? ? this command. This command is not blocking.
? ? ? --disable: Disable the background dexopt job from being started by the
? ? ? ? job scheduler. If a job is already started by the job scheduler and is
? ? ? ? running, it will be cancelled immediately. Does not affect jobs started
? ? ? ? through this command or by the system in other ways.
? ? ? ? This state will be lost when the system_server process exits.
? ? ? --enable: Enable the background dexopt job to be started by the job
? ? ? ? scheduler again, if previously disabled by --disable.
? ? When a list of package names is passed, this command does NOT start a real
? ? background dexopt job. Instead, it dexopts the given packages sequentially.
? ? This usage is deprecated. Please use 'pm compile -r bg-dexopt PACKAGE_NAME'
? ? instead.
Android JIT( ART即時編譯器),Just In Time Compiler,即時編譯技術-CSDN博客文章瀏覽閱讀560次,點贊6次,收藏6次。Android Runtime (ART) 包含一個具備代碼分析功能的即時 (JIT) 編譯器,該編譯器可以在 Android 應用運行時持續提高其性能。JIT是Just In Time Compiler,即時編譯技術。JIT:以下是 ART 實現的一些主要功能。ART 引入了預先編譯機制,可提高應用的性能。ART 還具有比 Dalvik 更嚴格的安裝時驗證。在安裝時,ART 使用設備自帶的 dex2oat 工具來編譯應用。https://blog.csdn.net/zhangphil/article/details/147520790