本书是一本Android进阶书籍,主要针对Android 8.0系统源码并结合应用开发相关知识进行介绍。本书共分为17章,从3个方面来组织内容。
第一方面介绍Android应用开发所需要掌握的系统源码知识,第二方面介绍JNI、ClassLoader、Java虚拟机、DVM&ART虚拟机和Hook等技术,第三方面介绍热修复原理、插件化原理、绘制优化和内存优化等与应用开发相关的知识点。3个方面有所关联并形成一个知识体系,从而使Android开发者能通过阅读本书达到融会贯通的目的。
本书适合有一定基础的Android应用开发工程师、Android系统开发工程师和对Android系统源码感兴趣的读者阅读。
Android进阶系列第二部,畅销书《Android进阶之光》作者又一力作! 本书基于Android 8.0,将系统源码和应用开发结合讲解,帮助读者融会贯通,破解Android应用开发进阶秘密。
刘望舒,资深开发工程师,Android进阶二部曲《Android进阶之光》《Android进阶解密》的作者,公众号“刘望舒”的作者,CSDN人气博主。他在博客中构建了“Android相关原创知识体系”,该体系全面且深入并广获好评。他拥有近10年的开发经验和多年的技术管理经验,对Android框架层及应用层开发有着独到、深入的理解。
为什么写这本书
Android进阶二部曲包括《Android进阶之光》和本书,因此写这本书的原因和《Android进阶之光》有些关联,主要有以下几点:
(1)《Android进阶之光》适合初、中级工程师阅读,因此我需要写一本适合中、高级工程师阅读的进阶书。
(2)目前市场上的系统源码分析的书大部分不是专门为应用开发编写的,因此我要专门为Android应用开发编写一本系统源码分析的书,不仅如此,我还要将系统源码和应用开发相结合。
(3)目前Android应用综合类进阶书籍很少,在2017年出版的只有《Android进阶之光》,在2018年我仍要贡献出自己的力量。
(4)目前市面上的源码分析类书籍大部分是基于Android 6.0以前版本的,需要有一本书籍来对更新版本的系统源码进行分析。
(5)《Android进阶之光》覆盖的知识点还远远不够,我希望能覆盖更多的知识点,让更多的人受益。
本书内容
本书共分为17章,各章内容如下:
? 第1章介绍Android系统架构、系统源码目录和如何阅读源码,带领大家走进Android系统源码的世界。
? 第2章介绍Android系统启动过程,为下面的章节做好铺垫。
? 第3章介绍应用程序进程启动过程。
? 第4章介绍四大组件的工作过程,包括根Activity的启动过程,Service的启动和绑定过程,广播的注册、发送和接收过程,Content Provider的启动过程。
? 第5章从源码角度分析上下文Context。
? 第6章介绍ActivityManagerService,包括AMS家族、AMS的启动过程、AMS重要的数据结构和Activity栈管理等内容。
? 第7章介绍WindowManager,包括WindowManager的关联类、Window的属性和Window的操作等内容。
? 第8章介绍WindowManagerService,包括WMS的创建过程、WMS的重要成员和Window的添加过程等内容。
? 第9章结合MediaRecorder框架来介绍JNI的原理。
? 第10章介绍Android开发所需要了解的Java虚拟机知识。
? 第11章介绍Dalvik和ART虚拟机。
? 第12章介绍ClassLoader,它是理解热修复原理和插件化原理必备的知识点。
? 第13章介绍热修复原理,包括热修复框架的对比、资源修复、代码修复和动态链接库的修复。
? 第14章介绍Hook技术,为讲解插件化原理做铺垫。
? 第15章介绍插件化原理,包括插件化的产生、四大组件的插件化、资源的插件化和so的插件化。
? 第16章介绍绘制优化,包括绘制性能分析和布局优化。
? 第17章介绍内存优化,从避免内存泄漏开始讲起,然后介绍常用的内存分析工具Memory Monitor、Allocation Tracker和Heap Dump,最后介绍分析内存泄漏的利器MAT和LeakCanary。
本书特色
本书主要有以下特点:
? 本书的知识点自成体系并且环环相扣,每一个章节都或多或少地与其他章节有所关联。
? 本书是目前市面上少有的专门为Android应用开发者所编写的源码分析类书籍,并且将系统源码和应用开发相结合。
? 本书是目前市面上少有的讲解插件化和热修复原理的书。
? 本书为了更好地讲解知识点,会先介绍一些知识点做铺垫,比如要学习插件化原理,就需要先学习四大组件工作过程、AMS、ClassLoader和Hook技术等相关知识点。
读者对象
本书适合以下读者阅读:
? 有一定基础的Android应用开发工程师。
? Android系统开发工程师。
? 对Android系统源码感兴趣的读者。
致谢
感谢本书的策划编辑付睿,她在CSDN博客中发现了我,并积极推动本书的出版进度,才使得本书能够及时出版。感谢我的父母以及所有关注我的朋友们,你们的鼓励和认可为我写书以及写博客带来了源源不断的动力。
勘误与互动
本人虽已竭尽全力,但书中难免会有错误,欢迎大家向我反馈,我也会在独立博客和CSDN博客中定期发布本书的勘误信息。
刘望舒
2018年6月于北京
这本书错误地方好多啊。还有那本《进阶之光》也是。有时候都不知道自己理解错了,还是书错了。
最重要的是 这两本书的勘误表 作者也不再在他的独立博客上更新了。是要彻底放弃 三部曲了吗?
怎么说呢,这本书,我是不建议大家购买的,因为你买了也看不懂,我看到了第三章,所有的源码都是一句话带过,要么两句话,代码也跳的很厉害,没有连续性,作者的一句话就跑到另一个类了,也许作者可以认为我能力不够,我个人认为,作者这本书虽然没有忽悠人,但是不值得我们大家去买