Android 5之后全面切换到了新的虚拟机ART,这是一款既支持JIT编译也能AOT编译的java虚拟机。

之后我们将要学习的内容有如下:

ART工程结构

  • dex2oat: 字节码转机器码
  • compiler:字节码编译成机器码的编译器
  • runtime:执行机器码(oat文件)或者字节码(dex文件)的虚拟机,支持AOT编译与JIT编译
    • entrypoints:函数执行入口
    • native:java类jni方法的native代码,比如java类Object的所有jni方法在java_lang_Object.cc文件中
    • mirror:java类在cpp中的映射类,比如java Class类在mirror文件中对应是cpp Class
    • interpreter:解释器
    • gc:垃圾回收器
  • oatdump/dexdump:oat(elf格式)与dex文件的dump
  • libexfile/libelffile:操作dex文件与elf文件的库
  • tools
    • dexanalyze
    • dexfuzz
    • jfuzz
    • signal_dumper
如果您觉得写得还不错或者对您有所启发,那就赶紧动动您的小指头,点击下面的红色按钮,狠狠地打赏一番吧。