Android JIT编译:adb shell cmd package compile选项

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

相关推荐
每次的天空12 分钟前
Android面试总结之GC算法篇
android·算法·面试
仙魁XAN15 分钟前
Flutter 学习之旅 之 Flutter 和 Android 原生 实现数据交互的MethodChanel和EventChannel方式的简单整理
android·flutter·flutter module·aar·混合开发·flutter交互
凌云志 !3 小时前
Android Studio 2024版,前进返回按钮丢失解决
android·ide·android studio
tangweiguo030519874 小时前
Android Kotlin 项目完整集成 Bugly 异常监控指南
android·kotlin
Yang-Never4 小时前
Kotlin -> lateinit 和 lazy 详解
android·开发语言·kotlin·android studio
MyhEhud4 小时前
kotlin 过滤 filter 函数的作用和使用场景
android·java·服务器·前端·kotlin
前后端杂货铺6 小时前
uniapp+vue3+ts 使用canvas实现安卓端、ios端及微信小程序端二维码生成及下载
android·前端·ios·微信小程序·uni-app·canavas·二维码海报生成
tangweiguo030519876 小时前
Android Kotlin 项目集成 Firebase Cloud Messaging (FCM) 全攻略
android·kotlin
ii_best8 小时前
按键精灵安卓ios辅助工具脚本:实用的文件插件(lua开源)
android·开发语言·ios·lua
我命由我123458 小时前
Android 解绑服务问题:java.lang.IllegalArgumentException: Service not registered
android·java·开发语言·java-ee·安卓·android jetpack·android-studio