深入理解ANDROID:JAVA虚拟机ART
¥
60.17
3.6折
¥
169
九品
仅1件
作者邓凡平
出版社机械工业出版社
出版时间2019-04
版次1
装帧平装
货号A6
上书时间2024-11-28
商品详情
- 品相描述:九品
图书标准信息
-
作者
邓凡平
-
出版社
机械工业出版社
-
出版时间
2019-04
-
版次
1
-
ISBN
9787111621225
-
定价
169.00元
-
装帧
平装
-
开本
其他
-
页数
928页
-
字数
100千字
- 【内容简介】
-
本书核心内容:(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的处理等。
- 【作者简介】
-
邓凡平,资深Android技术专家,靠前早期从事Android技术研究和开发的工程师之一。从底层的虚拟机,到中间的系统层和框架层,再到上层的各种应用,他对整个Android系统的源代码有很好深入的研究和理解。他策划并撰写了“深入理解Android”系列图书(目前已出版8本),累计销量超过10万册,是广大Android工程师系统、深入了解Android系统源代码的优选。
目前就职于民生银行总行信息科技部创新技术研究院,钻研和探索物联网等新技术在金融领域中的应用。曾就职于索尼移动,担任资深软件架构师。
已出版著作:
《深入理解Android:卷Ⅰ》(2011年)
《深入理解Android:卷Ⅱ》(2012年)
《深入理解Android:Wi-Fi、NFC和GPS卷》(2014年)
- 【目录】
-
推荐序前言章 本书必读11.1 概述11.2 准备环境和工具21.2.1 准备源代码21.2.2 准备Source Insight21.2.3 准备模拟器和自制系统镜像51.2.4 小结81.3 本书的内容91.4 本书资源下载说明12第2章 深入理解Class文件格式132.1 Class文件格式总览132.2 常量池及相关内容142.2.1 常量项的类型和关系142.2.2 信息描述规则182.2.3 常量池实例剖析192.3 field_info和method_info192.4 access_flags介绍212.5 属性介绍222.5.1 属性概貌222.5.2 Code属性232.5.3 LineNumberTable属性252.5.4 LocalVariableTable属性262.6 Java指令码介绍272.6.1 指令码和助记符272.6.2 如何阅读规范282.7 学习路线推荐302.8 参考资料30第3章 深入理解Dex文件格式313.1 Dex文件格式总览313.1.1 Dex和Class文件格式的区别313.1.2 Dex文件格式的概貌353.2 认识Dex文件363.2.1 header_item363.2.2 string_id_item等373.2.3 class_def383.2.4 code_item403.3 Dex指令码介绍413.3.1 insns的组织形式413.3.2 指令码描述规则423.4 学习路线推荐443.5 参考资料45第4章 深入理解ELF文件格式464.1 概述464.2 ELF文件格式介绍464.2.1 ELF文件头结构介绍474.2.2 Linking View下的ELF524.2.3 Execution View下的ELF614.2.4 实例分析:调用动态库中的函数654.2.5 ELF总结724.3 学习路线推荐734.4 参考资料73第5章 认识C++11745.1 数据类型765.1.1 基本内置数据类型介绍765.1.2 指针、引用和void类型775.1.3 字符和字符串815.1.4 数组825.2 C++源码构成及编译835.2.1 头文件示例835.2.2 源文件示例855.2.3 编译865.3 Class介绍885.3.1 构造、赋值和析构函数895.3.2 类的派生和继承975.3.3 友元和类的前向声明1035.3.4 explicit构造函数1055.3.5 C++中的struct1065.4 操作符重载1065.4.1 操作符重载的实现方式1075.4.2 输出和输入操作符重载1085.4.3 ->和*操作符重载1105.4.4 new和delete操作符重载1115.4.5 函数调用运算符重载1175.5 函数模板与类模板1185.5.1 函数模板1195.5.2 类模板1225.6 lambda表达式1255.7 STL介绍1275.7.1 string类1285.7.2 容器类1295.7.3 算法和函数对象介绍1345.7.4 智能指针类1385.7.5 探讨STL的学习1405.8 其他常用知识1415.8.1 initializer_list1415.8.2 带作用域的enum1415.8.3 constexpr1425.8.4 static_assert1435.9 参考资料143第6章 编译dex字节码为机器码1456.1 编译器全貌介绍1476.2 编译器前端介绍1506.2.1 词法分析和lex1516.2.2 语法分析和yacc1606.2.3 语义分析和IR生成介绍1716.3 优化器介绍1756.3.1 构造CFG1766.3.2 分析和处理CFG1816.3.3 数据流分析与SSA1916.3.4 IR优化2046.4 ART中的IR—HInstruction2226.4.1 ART中的IR2226.4.2 IR之间的关系2256.4.3 ART IR对象的初始化2316.5 寄存器分配2336.5.1 LSRA介绍2356.5.2 LSRA相关代码介绍2476.6 机器码生成相关代码介绍2716.6.1 GenerateFrameEntry2726.6.2 VisitAdd和VisitInstance-FieldGet2736.6.3 GenerateSlowPaths2756.7 总结2776.8 参考资料280第7章 虚拟机的创建2837.1 概述2847.1.1 JniInvocation Init函数介绍2867.1.2 AndroidRuntime startVm函数介绍2877.2 Runtime Create介绍2887.2.1 Create函数介绍2887.2.2 Init函数介绍2907.3 MemMap与OatFileManager2937.3.1 MemMap介绍2937.3.2 OatFileManager介绍2987.4 FaultManager介绍3027.4.1 信号处理和SignalAction介绍3027.4.2 FaultManager介绍3077.5 Thread介绍3117.5.1 Startup函数介绍3117.5.2 Attach函数介绍3127.6 Heap学习之一3257.6.1 初识Heap中的关键类3267.6.2 Heap构造函数部分3377.7 JavaVMExt和JNIEnvExt3407.7.1 JavaVMExt3417.7.2 JNIEnvExt3437.7.3 总结3447.8 ClassLinker3457.8.1 关键类介绍3457.8.2 ClassLinker构造函数3527.8.3 InitFromBootImage3537.8.4 ClassLinker总结3607.9 总结和阅读指导362第8章 虚拟机的启动3638.1 Runtime Start3648.2 初识JNI3658.2.1 JNI中的数据类型3658.2.2 ScopedObjectAccess等辅助类3678.2.3 常用JNI函数介绍3698.3 Jit LoadCompilerLibrary3738.4 Runtime InitNativeMethods3748.4.1 JniConstants Init3748.4.2 RegisterRuntimeNative Methods3758.4.3 WellKnownClasses Init和LastInit3768.5 Thread相关3768.5.1 Runtime InitThreadGroups3778.5.2 Thread FinishSetup3778.5.3 Runtime StartDaemonThreads3808.6 Runtime CreateSystemClassLoader3818.7 类的加载、链接和初始化3838.7.1 关键类介绍3838.7.2
点击展开
点击收起
— 没有更多了 —
以下为对购买帮助不大的评价