前言
为什么写这本书
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博客中定期发布本书的勘误信息。
本书互动地址
独立博客:http://liuwangshu.cn
CSDN博客:http://blog.csdn.net/itachi85
Github:https://github.com/henrymorgen
微信公众号:刘望舒
QQ交流群:499174415
刘望舒
2018年6月于北京