百科创建
43.5K
9039

深入理解Android:Java虚拟机ART

作品简介

本书是笔者“深入理解Android”系列的第四本。本书将关注Android系统中至关重要的部分——Java虚拟机ART。随着Android设备的大规模普及,ART虚拟机已经成为当今使用最为广泛的JVM之一。所以,对ART虚拟机进行研究有着非同寻常的意义。本书的出现在一定程度上填补了这方面的空白。

本书核心内容:(1).class、.dex和ELF文件格式介绍、阅读源码所需的C++11基础知识。(2)以编译原理为基础,介绍ART虚拟机编译相关的知识。(3)以ARTRuntime对象的创建为主线,介绍主要的模块及一些关键类、数据结构等知识。(4)ART虚拟机中类的解析、加载、链接、初始化等。(5)dex字节码转机器码的核心进程dex2oat以及.oat和.art文件格式。(6)ART虚拟机的解释执行、JIT和JNI等知识。(7)Java线程执行相关的知识,包括线程暂停和恢复运行、synchronized、Objectwait/notify的实现、volatile变量的读写处理等。(8)内存分配和释放相关的知识。(9)和垃圾回收有关的基础知识,相关垃圾回收器的代码实现、JavaReference的处理等。

邓凡平著。

作品目录

  1. 前言
  2. 第1章 本书必读
  3. 1.1 概述
  4. 1.2 准备环境和工具
  5. 1.3 本书的内容
  6. 1.4 本书资源下载说明
  7. 第2章 深入理解Class文件格式
  8. 2.1 Class文件格式总览
  9. 2.2 常量池及相关内容
  10. 2.3 field_info和method_info
  11. 2.4 access_flags介绍
  12. 2.5 属性介绍
  13. 2.6 Java指令码介绍
  14. 2.7 学习路线推荐
  15. 2.8 参考资料
  16. 第3章 深入理解Dex文件格式
  17. 3.1 Dex文件格式总览
  18. 3.2 认识Dex文件
  19. 3.3 Dex指令码介绍
  20. 3.4 学习路线推荐
  21. 3.5 参考资料
  22. 第4章 深入理解ELF文件格式
  23. 4.1 概述
  24. 4.2 ELF文件格式介绍
  25. 4.3 学习路线推荐
  26. 4.4 参考资料
  27. 第5章 认识C++11
  28. 5.1 数据类型
  29. 5.2 C++源码构成及编译
  30. 5.3 Class介绍
  31. 5.4 操作符重载
  32. 5.5 函数模板与类模板
  33. 5.6 lambda表达式
  34. 5.7 STL介绍
  35. 5.8 其他常用知识
  36. 5.9 参考资料
  37. 第6章 编译dex字节码为机器码
  38. 6.1 编译器全貌介绍
  39. 6.2 编译器前端介绍
  40. 6.3 优化器介绍
  41. 6.4 ART中的IR—HInstruction
  42. 6.5 寄存器分配
  43. 6.6 机器码生成相关代码介绍
  44. 6.7 总结
  45. 6.8 参考资料
  46. 第7章 虚拟机的创建
  47. 7.1 概述
  48. 7.2 Runtime Create介绍
  49. 7.3 MemMap与OatFileManager
  50. 7.4 FaultManager介绍
  51. 7.5 Thread介绍
  52. 7.6 Heap学习之一
  53. 7.7 JavaVMExt和JNIEnvExt
  54. 7.8 ClassLinker
  55. 7.9 总结和阅读指导
  56. 第8章 虚拟机的启动
  57. 8.1 Runtime Start
  58. 8.2 初识JNI
  59. 8.3 Jit LoadCompilerLibrary
  60. 8.4 Runtime InitNativeMethods
  61. 8.5 Thread相关
  62. 8.6 Runtime CreateSystemClassLoader
  63. 8.7 类的加载、链接和初始化
  64. 8.8 虚拟机创建和启动关键内容梳理
  65. 第9章 深入理解dex2oat
  66. 9.1 概述
  67. 9.2 ParseArgs介绍
  68. 9.3 OpenFile介绍
  69. 9.4 Setup介绍
  70. 9.5 CompileImage
  71. 9.6 OAT和ART文件格式介绍
  72. 9.7 总结
  73. 第10章 解释执行和JIT
  74. 10.1 基础知识
  75. 10.2 解释执行
  76. 10.3 ART中的JIT
  77. 10.4 HDeoptimize的处理
  78. 10.5 Instrumentation介绍
  79. 10.6 异常投递和处理
  80. 10.7 总结
  81. 第11章 ART中的JNI
  82. 11.1 JavaVM和JNIEnv
  83. 11.2 Java native方法的调用
  84. 11.3 CallStaticVoidMethod
  85. 11.4 JNI中引用型对象的管理
  86. 11.5 总结
  87. 第12章 CheckPoints、线程同步及信号处理
  88. 12.1 CheckPoints介绍
  89. 12.2 ThreadList和ThreadState
  90. 12.3 线程同步相关知识
  91. 12.4 volatile成员的读写
  92. 12.5 信号处理
  93. 12.6 总结
  94. 第13章 内存分配与释放
  95. 13.1 Space等关键类介绍
  96. 13.2 ZygoteSpace
  97. 13.3 BumpPointerSpace和RegionSpace
  98. 13.4 DlMallocSpace和RosAllocSpace
  99. 13.5 LargeObjectMapSpace
  100. 13.6 new-instance/array指令的处理
  101. 13.7 细观Space
  102. 13.8 Heap学习之二
  103. 13.9 总结
  104. 第14章 ART中的GC
  105. 14.1 GC基础知识
  106. 14.2 Runtime VisitRoots
  107. 14.3 ART GC概览
  108. 14.4 MarkSweep
  109. 14.5 ConcurrentCopying
  110. 14.6 MarkCompact
  111. 14.7 SemiSpace
  112. 14.8 Java Reference对象的处理
  113. 14.9 Heap学习之三
  114. 14.10 总结
  115. 14.11 参考资料
9039

免责声明:本站词条系由网友创建、编辑和维护,内容仅供参考。

以上内容均为商业内容展示,仅供参考,不具备专业问题解决服务,

如果您需要解决具体问题(尤其在法律、医学等领域),建议您咨询相关领域的专业人士。

如您发现词条内容涉嫌侵权,请通过 948026894@qq.com 与我们联系进行删除处理!

参考资料

一秒推