1、背景

Android 虚拟机可以识别的是dex文件,应用使用过程中如果每次将dex文件加载进行内存,解释性执行字节码,效率会很低, 严重影响用户体验。所以有必要对dex文件进行优化,通过dex2oat 优化后, 可以在系统运行之前利用合适的时机将dex文件字节码提前转化为虚拟机可以执行运行的机器码,后续直接从效率更高的机器码中运行,则运行阶段更加流畅,优化用户体验。

2、概念

dex2oat (dalvik excutable file to optimized art file) ,是一个对 dex 文件进行编译优化的程序

Android系统进行dex优化的对象既可以是一个dex文件,也可以是一个内部包含dex文件的apk或jar文件

Android dex2oat命令参数解释_joye123的博客-CSDN博客

3、触发场景

dex2oat主要有以下几种触发场景

Android ART dex2oat 浅析 - 内核工匠 - 博客园

4、dex2oat的过程

剖析 Android ART Runtime (2) – dex2oat - Mingshen Sun

5、规避手段

一篇文章看明白 Android PackageManagerService 工作流程_jeanboy-CSDN博客

Android源码分析-dex2oat相关推荐

  1. Android源码分析-全面理解Context

    前言 Context在android中的作用不言而喻,当我们访问当前应用的资源,启动一个新的activity的时候都需要提供Context,而这个Context到底是什么呢,这个问题好像很好回答又好像 ...

  2. Android源码分析--MediaServer源码分析(二)

    在上一篇博客中Android源码分析–MediaServer源码分析(一),我们知道了ProcessState和defaultServiceManager,在分析源码的过程中,我们被Android的B ...

  3. Android源码分析(十一)-----Android源码中如何引用aar文件

    一:aar文件如何引用 系统Settings中引用bidehelper-1.1.12.aar 文件为例 源码地址:packages/apps/Settings/Android.mk LOCAL_PAT ...

  4. Android源码分析(三)-----系统框架设计思想

    一 : 术在内而道在外 Android系统的精髓在源码之外,而不在源码之内,代码只是一种实现人类思想的工具,仅此而已...... 近来发现很多关于Android文章都是以源码的方向入手分析Androi ...

  5. Android源码分析-PackageManagerService(PMS)源码分析(三)- queryIntentActivities函数来查找activity

    queryIntentActivities函数的作用: 在Android应用程序开发中,用startActivity可以开启另外一个Activity或应用.startActivity函数必须包含Int ...

  6. Android源码分析工具及方法

    转载自:http://bbs.pediy.com/showthread.php?t=183278 标 题: [原创]Android源码分析工具及方法 作 者: MindMac 时 间: 2014-01 ...

  7. Android 源码分析工具

    2019独角兽企业重金招聘Python工程师标准>>> 标 题: [原创]Android源码分析工具及方法 作 者: MindMac 时 间: 2014-01-02,09:32:35 ...

  8. Android 源码分析

    查看源码版本号: build\core\version_defaults.mk //搜索该文件中的 PLATFORM_VERSION值 frameworks 目录 (核心框架--java及C++语言) ...

  9. Android源码分析 - Framework层的Binder(客户端篇)

    开篇 本篇以aosp分支android-11.0.0_r25作为基础解析 我们在之前的文章中,从驱动层面分析了Binder是怎样工作的,但Binder驱动只涉及传输部分,待传输对象是怎么产生的呢,这就 ...

  10. Android源码分析—属性动画的工作原理

    转载请注明出处: http://blog.csdn.net/singwhatiwanna/article/details/17853275 前言 本文为Android动画系列的最后一篇文章,通过对源码 ...

最新文章

  1. nuget打包文件丢失如何使用powershell脚本解决
  2. vscode 全项目替换_利用vscode插件提升前端国际化开发效率
  3. h5红包雨代码_html5移动端手机微信抢红包雨代码
  4. 生命html文档,Web前端第一季(HTML)
  5. Idea实现WebService实例 转
  6. Java 基础——类的加载
  7. java scriptengine e-_Java使用ScriptEngine(javax.script)
  8. myeclipse 10激活,本人已测试过可行
  9. 计算机网络—局域网的基本概念和体系结构
  10. 陕西师范大学远程教育学院计算机应用基础,陕西师范大学远程教育学院计算机应用基础机考备考试题.doc...
  11. 中小型企业无线网络设计
  12. cnvd与cnnvd区别_漏洞编码CVE/CAN/BUGTRAQ/CNCVE/CNVD/CNNVD都指什么?
  13. R费希尔精确检验(Fisher‘s exact test)
  14. python数据分析水果_用python解决简单的水果分类问题
  15. 纯ALOHA协议和时隙ALOHA协议简单总结
  16. AIX 6:新特性概述
  17. 程序员VS产品经理的世纪之争
  18. Js基础引导(二)——语法
  19. ERROR 1366 (HY000): Incorrect string value: ‘\xE8\xB5\xB5\xE9\x9B\xB7‘ for column ‘s_name‘ at row 1
  20. 深度学习还没入门?看看深度学习三巨头的Deep Learning综述(4)

热门文章

  1. vue中请求拦截器梧桐刷新Token
  2. 大一上c语言基础知识题
  3. 多源复制中单个channal复制异常处理
  4. 预测模型如何改进自动化决策
  5. 群晖Docker容器“failed to initialize logging driver“解决办法
  6. 浅谈PHP如何实现网站文章或博客浏览量页面访问量+1
  7. 第三章总体均数的估计与假设检验(2)
  8. 第一水上软件 Hypack v10.05b 海洋调查和水道测量 HYPACK 2011
  9. PNP和NPN磁感应开关有什么区别
  10. RoughSets属性约简算法