为什么写这本书
从2008年Android系统发布以来,Android已经发展了9年。在此期间,Android开发也相当火热。这时,大量人员涌入Android开发职场,并导致Android开发人才市场相对饱和。如此一来,很多Android开发者会发现工作越来越难找,企业对开发者的要求也越来越高,企业需求最多的不再是初中级别的Android工程师,而是Android高级工程师。但是,Android高级工程师有限。有些人在从事了几年开发工作后,对很多技术的理解却仍停留在会用的阶段。他们对于原理不求甚解,这导致他们进入技术瓶颈期并长期无法得到提高。很多开发者为了突破技术瓶颈,看了大量的网络视频和博客。尽管如此,他们仍旧无法突破自身的技术瓶颈。其主要原因是,他们没有将学到的知识点形成体系化。因此,这就需要有一本成体系的进阶书来帮助这些开发人员成为Android高级工程师并突破自身的技术瓶颈。纵观市面上Android开发相关的书籍,其中大部分书籍是入门级别类图书,还有一部分系统源码、逆向分析和系统移植类图书,而关于应用开发进阶的书籍则少得可怜。本书正是一本成体系的应用开发进阶图书,书中所要传达的不仅仅是知识,其同时还会告诉读者以下几点。
1.要关注Android新技术;
2.Java基础和设计模式很重要;
3.学习框架要深入其原理;
4.要学习架构设计;
5.要了解和学习系统源码。
本书内容
本书共分为11章,各章内容如下。
√ 第1章介绍Android5.0、Android6.0、Android7.0的新特性,包括Android5.0的RecyclerView、Android6.0的运行时权限机制和Android7.0的多窗口模式等知识点。
√ 第2章介绍MaterialDesign以及DesignSupportLibrary常用的控件,并给出实例将DesignSupportLibrary中的常用控件结合在一起使用。
√ 第3章介绍View相关的进阶知识,包括View的滑动、View的事件分发和View的工作流程。最后结合以上知识点来介绍自定义View。
√ 第4章介绍多线程编程,本章不仅包括基础的线程知识,还会介绍线程同步和线程池等进阶知识点,最后结合这些知识点来分析Android7.0的AsyncTask的源码。
√ 第5章介绍网络编程的基础知识以及常用的网络框架:Volley、OkHttp和Retrofit的使用方法和原理分析。
√ 第6章将设计模式进行分类,并介绍每个分类中常用的设计模式。
√ 第7章介绍事件总线EventBus和otto的使用方法和原理。
√ 第8章介绍函数响应式编程RxJava的使用方法,包括RxJava的基本使用、操作符、使用场景和源码分析等知识点。
√ 第9章介绍注解的知识点和依赖注入框架ButterKnife和Dagger2的使用方法以及原理。
√ 第10章介绍Android应用架构设计,包括MVP框架以及MVP结合RxJava和Dagger2,还有MVVM框架相关的DataBinding支持库。
√ 第11章主要是指引读者进行Android系统源码阅读并带其入门,介绍Android系统框架、源码目录和阅读源码工具,并以分析MediaPlayer框架的源码作为示例。
本书特色
本书主要有以下特点。
√ 本书整体结构由浅入深,从最简单的第1章到难一些的第11章,其难度是逐步加深的。
√ 本书为了分析一些框架的原理,会介绍一些知识点做铺垫,比如为了更好地介绍依赖注入框架,需要首先了解注解相关的知识点。再比如要分析AsyncTask的源码,则需要了解线程池和阻塞队列等知识点。
√ 本书的知识点环环相扣,比如要介绍MVP框架的设计,就需要先学习Retrofit、RxJava和Dagger2的相关知识点。
√ 本书对于很多知识点都有很深入的讲解。其中,对于常用的框架,比如OkHttp、Retrofit、EventBus和RxJava等不只是讲解了如何使用,而且更加深入地介绍了其原理。
√ 本书是目前市场上详细介绍有关Android新特性、MaterialDesign、网络框架、事件总线、RxJava、依赖注入框架和应用架构设计的难得一见的图书。
读者对象
本书的章节设计是由浅入深的,适合Android初、中、高级工程师阅读。本书的定位是学习Android的第二本书,其阅读前提是要有一定的Android基础。
致谢
感谢本书的策划编辑付睿,她在CSDN博客中发现了我,并积极推动本书的出版进度,这才使得本书得以及时出版。感谢本书的责任编辑李云静,她审稿时很细致,这使得书中的一些错误能被提早发现并改正。感谢我的父母在写书过程中对我的不断鼓励,这样我才得以全力以赴地投入编写工作。感谢所有关注我的朋友们,你们的鼓励和认可为我写博客以及写书带来了不可或缺的动力。
勘误与互动
本人虽已竭尽全力,但书中难免会有错误,欢迎大家向我反馈,我也会在独立博客和CSDN博客中定期发布本书的勘误信息。
读者服务
轻松注册成为博文视点社区用户,扫码直达本书页面。
√ 下载资源:本书如提供示例代码及资源文件,均可在下载资源处下载。
√ 提交勘误:您对书中内容的修改意见可在提交勘误处提交,若被采纳,将获赠博文视点社区积分(在您购买电子书时,积分可用来抵扣相应金额)。
√ 交流互动:在页面下方读者评论处留下您的疑问或观点,与我们和其他读者一同学习交流。