本书是一本Android进阶类书籍,书中各知识点由浅入深、环环相扣,最终这些知识点形成了一个体系结构。本书共分为11章。第1章介绍Android 5.0到Android 7.0的新特性。第2章介绍Material Design。第3章介绍View体系,包括View的事件分发、工作流程、自定义View等知识点。第4章介绍多线程的知识。第5章介绍网络编程与网络框架的知识。第6章介绍常用的设计模式。第7章介绍事件总线。第8到第10章介绍架构设计所需要的知识点。第11章简单介绍Android系统框架与MediaPlayer框架。
本书详细并深入讲解Android开发者必备的和前沿的知识,适合有一定开发基础的开发者阅读,这有助于他们提高技术水平;同时,本书系统的知识体系结构也令高级开发者从中获益良多。
业界多名专家力荐。本书基于Android 7.0和Android Studio,对Android开发进阶要点进行深入讲解,为工程师的进阶之路带来指引和光明。
Android高级工程师,拥有多年开发和技术管理经验,对Android框架层及应用层开发有着深入的理解。热爱技术和分享,连续6年在CSDN发表技术文章,有多篇文章广受好评,并被授予CSDN博客专家称号。此外,他还活跃在简书和掘金。曾在多家知名公司从事Android开发。
前言
为什么写这本书
从2008年Android系统发布以来,Android已经发展了9年。在此期间,Android开发也相当火热。这时,大量人员涌入Android开发职场,并导致Android开发人才市场相对饱和。如此一来,很多Android开发者会发现工作越来越难找,企业对开发者的要求也越来越高,企业需求最多的不再是初中级别的Android工程师,而是Android高级工程师。但是,Android高级工程师有限。有些人在从事了几年开发工作后,对很多技术的理解却仍停留在会用的阶段。他们对于原理不求甚解,这导致他们进入技术瓶颈期并长期无法得到提高。很多开发者为了突破技术瓶颈,看了大量的网络视频和博客。尽管如此,他们仍旧无法突破自身的技术瓶颈。其主要原因是,他们没有将学到的知识点形成体系化。因此,这就需要有一本成体系的进阶书来帮助这些开发人员成为Android高级工程师并突破自身的技术瓶颈。纵观市面上Android开发相关的书籍,其中大部分书籍是入门级别类图书,还有一部分系统源码、逆向分析和系统移植类图书,而关于应用开发进阶的书籍则少得可怜。本书正是一本成体系的应用开发进阶图书,书中所要传达的不仅仅是知识,其同时还会告诉读者以下几点。
1. 要关注Android新技术;
2. Java基础和设计模式很重要;
3. 学习框架要深入其原理;
4. 要学习架构设计;
5. 要了解和学习系统源码。
本书内容
本书共分为11章,各章内容如下。
? 第1章介绍Android 5.0、Android 6.0、Android 7.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的第二本书,其阅读前提是要有一定的Android基础。
致谢
感谢本书的策划编辑付睿,她在CSDN博客中发现了我,并积极推动本书的出版进度,这才使得本书得以及时出版。感谢本书的责任编辑李云静,她审稿时很细致,这使得书中的一些错误能被提早发现并改正。感谢我的父母在写书过程中对我的不断鼓励,这样我才得以全力以赴地投入编写工作。感谢所有关注我的朋友们,你们的鼓励和认可为我写博客以及写书带来了不可或缺的动力。
勘误与互动
本人虽已竭尽全力,但书中难免会有错误,欢迎大家向我反馈,我也会在独立博客和CSDN博客中定期发布本书的勘误信息。
本书互动地址
独立博客:http://liuwangshu.cn
CSDN博客:http://blog.csdn.net/itachi85
GitHub:https://github.com/henrymorgen
微信公众号:刘望舒
QQ交流群:499174415
源码下载
https://github.com/henrymorgen/android-advanced-light
http://www.broadview.com.cn/31530
读者服务
轻松注册成为博文视点社区用户(www.broadview.com.cn),扫码直达本书页面。
? 下载资源:本书如提供示例代码及资源文件,均可在下载资源处下载。
? 提交勘误:您对书中内容的修改意见可在提交勘误处提交,若被采纳,将获赠博文视点社区积分(在您购买电子书时,积分可用来抵扣相应金额)。
? 交流互动:在页面下方读者评论处留下您的疑问或观点,与我们和其他读者一同学习交流。
页面入口:http://www.broadview.com.cn/31530
第五页第三四行,recyclerview没有这两个属性
在drawVertical方法中有一行代码:
这个RecyclerView没有使用,可以删掉。
getItemOffsets方法则用于设置item分隔线的size
菜单分享按钮点击事件无效
ImageView少了I