• 深入理解ANDRO:JA虚拟机ART
  • 深入理解ANDRO:JA虚拟机ART
  • 深入理解ANDRO:JA虚拟机ART
21年品牌 40万+商家 超1.5亿件商品

深入理解ANDRO:JA虚拟机ART

126.75 7.5折 169 全新

库存5件

北京房山
认证卖家担保交易快速发货售后保障

作者邓凡平

出版社机械工业出版社

ISBN9787111621225

出版时间2019-04

装帧平装

开本16开

定价169元

货号1201854750

上书时间2024-11-07

鸿运图书专营店

十年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介
邓凡平,资深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

内容摘要
本书核心内容:(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系统中至关重要的部分—Java虚拟机ART。市面上介绍Java虚拟机的书籍非常多,但鲜少有书籍能从虚拟机源代码出发对其进行详细分析。随着Android设备的大规模普及,ART虚拟机已经成为当今使用最为广泛的JVM之一。所以,对ART虚拟机进行研究有着非同寻常的意义。本书的出现在一定程度上填补了这方面的空白。本书的主要内容概述如下:章介绍ART虚拟机学习前需要准备好的工具、环境等。第2章介绍Class文件的格式及内容。第3章介绍Android中Dex文件的格式。第4章介绍ELF文件格式。第5章介绍C++11相关的、能帮助读者阅读ART源码的必备知识。第6章以编译原理为基础,介绍ART虚拟机编译相关的知识。第7章以ART Runtime对象的创建为主线,介绍主要的模块及一些关键类、数据结构等知识。第8章以ART Runtime的Start为主线进行分析,覆盖的内容包括相关模块的启动、类的解析、加载、链接、初始化等。第9章介绍dex字节码转机器码的核心进程dex2oat以及.oat和.art文件格式。0章介绍虚拟机的解释执行和JIT部分以及异常的投递和处理的过程。1章介绍JNI在ART虚拟机的实现。2章介绍虚拟机Java线程执行相关的知识,包括线程暂停和恢复运行、synchronized、Object wait/notify的实现、volatile变量的读写处理等。3章介绍内存分配和释放相关的知识。包括ART虚拟机中的各种Space类型、new指令的实现以及ART虚拟机中Heap模块的部分内容。4章介绍和垃圾回收有关的基础知识以及相关垃圾回收器,还有Java Reference的处理以及Heap模块的部分内容。本书通过理论和代码相结合的方式进行讲解,旨在引领读者一步步了解Android系统中JVM的工作原理。读者对象Android系统开发工程师系统开发工程师常常需要深入理解Android平台上各个系统的运转过程。本书所涉及的Java虚拟机是从事相关工作的读者在工作和学习中最想了解的。Android应用开发工程师Android应用开发工程师所开发的程序是运行在JVM中的。如果能更深入地了解JVM的实现将极大帮助开发工程师写出更高质量的程序。对JVM感兴趣的在校高年级本科生、研究生等研究人员JVM的理论书籍非常多,但很少有从分析源代码的角度来介绍其工作原理的。这本理论与代码实现深度结合的书籍一定可在该领域助相关研究人员一臂之力。如何阅读本书本书是一本有一定深度的书籍,所以读者在阅读时:请务必首先阅读章。后续如果碰到阅读上的困难,可能还需时常回顾章。本书的内容是经过笔者精心编排的,如果读者不是很有把握的话,建议严格按照顺序阅读。本书的某些章节涉及了笔者在撰写它们时所参考的资料。这些资料较多,读者可根据它们开展进一步的研究工作。另外,和笔者之前出版的《深入理解Android》卷Ⅰ以及卷Ⅱ类似的是:本书在每章开头都把本章涉及的源码路径全部列出,而在具体分析源码时,则只列出该源码的文件名及所分析的函数或相关数据结构名。例如:[AndroidRuntime.cpp->AndroidRuntime::start]//这里是源码分析和一些注释最后,本书在描述类之间的关系及函数调用流程上,使用了UML的静态类图及序列图。UML是一个强大的工具,但它的建模规范过于繁琐,为更简单清晰地描述事情的本质,本书并未完全遵循UML的建模规范。这里仅举两例,如图1和图2所示。在图1中:外部类内部的方框用于表示内部类。另外,外部类A、内部类B也用于表示内部类。接口和普通类用同一种框图表示。图2所示为本书描述数据结构时使用的UML图。图1  UML示例图之一图2  UML示例图之二图2为本书描述数据结构及成员时使用的UML图例。特别注意  本书使用的UML图都比较简单,读者不必花费大量时间专门学习UML。另外,出于方便考虑,本书所绘制的UML图没有严格遵守UML规范。这一点敬请读者谅解。本书涉及的Android源码及一些开发工具的下载可通过笔者的博客blog.csdn.net/innost首页置顶文章“深入理解Android系列书籍资源分享更新”查看。关于它们的使用详情,请读者阅读本书章了解。勘误和支持由于作者的水平有限,加之编写时间仓促,书中难免会出现一些错误或不准确的地方,恳请读者不吝赐教。若有问题,可通过邮件或在博客上留言与笔者共同商讨。笔者的联系方式如下:邮箱fanping.deng@gmail.com博客blog.csdn.net/innost致谢本书的顺利出版首先要感谢杨福川编辑的大力支持。另外,要感谢张锡鹏编辑在审稿期间严谨负责的工作。另外,笔者需要特别感谢现就职的民生银行总行信息科技部。这是笔者次供职于一家金融企业。在此工作的这段时间里,我深刻体会到了民生科技人勇于开拓、锐意创新的精神气质,同时也感受到“金融科技为银行创造价值”的深远意义和重大责任。在此,笔者借助本书对相关领导和同事表示衷心的感谢。他们是牛新庄、毛斌、李建兵、林冠峰、李彧、娄丽明、侯佳腾、常薇、王连诚、张梦涵、侯超、金西银、孙升芸、孟凡娇、文静、赖穆彬等。正是你们的鼓励、支持和信任才使我的业余研究成

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP