热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

快速理清.dex、.odex、ART、AOT、OAT逻辑关系

目的理清.dex、.odex、ART、AOT、OAT等近似名称的概念和意义。APK生成apk的打包过程最终apk内的代码文件为.dex文件。APK安装运行基础概念AOT:编译方式,

目的

理清 .dex、.odex、ART、AOT、OAT 等近似名称的概念和意义。

APK 生成


apk的打包过程

最终 apk 内的代码文件为 .dex 文件。

APK 安装运行


基础概念

AOT:编译方式,运行前编译。
JIT:编译方式,动态编译。
Dalvik:Android 5.0 之前默认虚拟机。
ART:Android 5.0 及其之后默认虚拟机。
OAT:Android 私有 ELF 文件格式,后缀为 .odex。不仅包含从 .dex 翻译过来的二进制本地机器指令,还包含原来的 .dex 文件内容。这使得无需重新编译原 APK 就能直接在 ART 中运行。

多种安装运行方式































名称 编译方式 特性 备注
Dalvik JIT 运行时编译 .dex,.dex 是 DVM 使用的运行时编译字节码。系统第一次开机会提取 apk 内的 dex 文件生成 .odex,以提升运行时编译的速度。 此 .odex 只是对 .dex 文件的提取,这样运行时无需再次从 apk 提取,可以加速编译,并非可执行文件。
ART AOT 安装时编译。安装时生成 OAT 文件,该文件包含机器码,可以直接运行。 此 .odex 可以直接运行。
Android N 之后 JIT、AOT 混编 安装时 JIT,系统空闲时 AOT 针对 "热代码"(常用代码块)编译为 OAT 保存在本地。 时间、空间的综合方案。


推荐阅读
author-avatar
gaoxuxinyue23
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有