前言
为什么写这本书
从2008年Android系统发布以来,Android已经发展了十余年。在此期间,Android开发相当火热。这时,大量人员涌入Android开发职场,并导致Android开发人才市场相对饱和。如此一来,很多Android开发者发现工作越来越难找,企业对开发者的要求也越来越高,企业需求多的不再是初、中级别的Android工程师,而是Android高级工程师。但是,Android高级工程师的数量有限。有些人在从事了几年开发工作后,对很多技术的掌握仍停留在会用的阶段。他们对于原理不求甚解,这导致他们进入技术瓶颈期并长期无法得到提高。很多开发者为了突破技术瓶颈,查阅了大量的网络视频和博客。尽管如此,他们仍旧无法突破自身的技术瓶颈。其主要原因是,没有将学到的知识点形成体系化。因此,需要有一套成体系的进阶图书来帮助这些开发人员突破自身的技术瓶颈并成为Android高级工程师,这就是Android进阶三部曲,包括《Android进阶之光》、《Android进阶解密》和《Android进阶指北》。
本书作为Android进阶三部曲的部,所要传达的不仅仅是知识,同时还会告诉读者以下几点:
要关注Android新技术。
Java基础和设计模式很重要。
学习框架要深入其原理。
要学习架构设计。
要了解和学习系统源码。
本书内容
本书共分为11章,各章内容如下。
第1章介绍从Android 5.0到Android 10.0各版本的新特性,包括Android 5.0的RecyclerView、Android 6.0的运行时权限机制和Android 7.0的多窗口模式等知识点。
第2章介绍Material Design及Design Support Library的常用控件,并给出将Design Support Library中的常用控件结合在一起使用的实例。
第3章介绍与View相关的进阶知识,包括View的滑动、View的事件分发机制和View的工作流程。结合以上知识点介绍自定义View。
第4章介绍多线程编程,本章不仅包括基础的线程知识,还包括线程同步和线程池等进阶知识点,结合这些知识点分析Android 7.0的AsyncTask的源码。
第5章介绍网络编程的基础知识,以及常用的网络框架Volley、OkHttp、Retrofit的使用方法和原理分析。
第6章对设计模式进行分类,并介绍其中的常用设计模式。
第7章介绍事件总线EventBus和otto的使用方法和原理。
第8章介绍函数式编程RxJava的使用方法,包括RxJava的基本用法、操作符、使用场景和源码分析等知识点。
第9章介绍注解的知识点,以及依赖注入框架ButterKnife和Dagger2的使用方法与原理。
第10章介绍Android应用架构设计,包括MVP框架,以及MVP结合RxJava和Dagger2、与MVVM框架相关的Data Binding支持库等知识点。
第11章主要指引读者进行Android系统源码阅读并带其入门,介绍Android系统框架、系统源码目录和阅读源码的工具,并以分析MediaPlayer框架的源码作为示例。
本书特色
本书主要有以下特色。
本书整体结构由浅入深,从简单的第1章到难一些的第11章,其难度是逐步加深的。
本书为了分析一些框架的原理,会介绍一些相关知识点做铺垫。比如为了更好地学习依赖注入框架,需要了解注解的相关知识点;再比如要分析AsyncTask的源码,则需要了解线程池和阻塞队列等知识点。
本书的知识点环环相扣,比如要介绍MVP框架的设计,就需要首先讲解Retrofit、RxJava和Dagger2的相关知识点。
本书对于很多知识点都有很深入的讲解。其中,对于常用的框架,比如OkHttp、Retrofit、EventBus和RxJava等,不仅讲解了如何使用,而且更加深入地介绍了其原理。
本书是目前市场上详细介绍有关Android新特性、Material Design、网络框架、事件总线、RxJava、依赖注入框架和应用架构设计的难得一见的图书。
读者对象
本书的章节顺序是由浅入深的,内容适合Android初、中、高级工程师阅读,阅读前提是要有一定的Android基础。
致谢
感谢本书的责任编辑付睿,她在CSDN博客中发现了我,并积极推动本书的出版进度,这才使得本书得以及时出版。感谢本书的文字编辑李云静,她审稿时很细致,这使得书中的一些错误能被提早发现并改正。感谢我的父母在写书过程中对我的不断鼓励,这样我才得以全力以赴地投入编写工作。感谢所有关注我的朋友,你们的鼓励和认可为我写博客及写书带来了不可或缺的动力。
勘误与互动[请访问http://www.broadview.com.cn/40549下载本书提供的附加参考资料。正文中提及参见链接[1]、链接[2]等时,可在下载的“参考资料.pdf”文件中进行查询。]
本人虽已竭尽全力,但书中难免会有错误,欢迎大家向我反馈,我也会在独立博客和CSDN博客中定期发布本书的勘误信息。
本书互动地址
独立博客:http://liuwangshu.cn
GitHub:https://github.com/henrymorgen
微信公众号:刘望舒
刘望舒
2021年1月于北京