独立博客版本请点击这里

由来

2016年我开始建立了自己的知识体系,所有的文章都是围绕着这个体系来写,随着这个体系的慢慢成长,开始有很多出版社联系我写书,因为比较看好电子工业出版社,就顺理成章的开始了《Android进阶之光》这本书的编写。写作过程中并没有遇到什么困难,就是书名一直确定不下来,后来受到了《运营之光》的启发,这本书的名字才最终确定下来,寓意就是为Android开发者的进阶之路带来指引和光明。

为什么写这本书

官方话这里我就不说了,其实就两点:

1.目前市场上的Android进阶书比较少,这本书的出现会帮助很多人。

2.对自己是一个挑战,也会带来不少提高,最主要的是养成了持续学习的习惯。

本书的内容

本书共分为11章,内容页数却有478页,而且和《Android群英传》一样是大开本,可见本书对知识点并不是泛泛而谈,而是深入的讲解。

第1章介绍Android5.0、6.0、7.0的新特性。包括5.0的RecyclerView、6.0的运行时权限机制和7.0的多窗口模式等知识点。

第2章介绍Material Design以及Design Support Library常用的控件,并给出实例将Design Support Library中常用控件结合在一起使用。

第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框架相关的Data Binding支持库。

第11章主要是指引读者进行Android系统源码阅读并带其入门,介绍Android系统框架、源码目录和阅读源码工具。并以分析MediaPlayer框架的源码作为示例。

本书的特色

1.本书整体的结构是由浅入深,从最简单的第1章到难一些的第11章,难度是逐步加深的。

2.本书为了分析一些框架的原理,会介绍一些知识点做铺垫,比如为了更好的介绍依赖注入框架那么需要首先了解注解相关的知识点。再比如要分析AsyncTask的源码则需要了解线程池和阻塞队列等知识点。

3.本书的知识点环环相扣,比如要介绍MVP框架的设计,就需要先学习Retrofit、RxJava和Dagger2的相关知识点。

4.本书对于很多知识点都有很深入的讲解,对于常用的框架比如OKHttp、Retrofit、EventBus和RxJava等等不只是讲解了如何使用,而是更加深入的介绍其原理。

5.本书是目前市场上少有的详细介绍网络框架、事件总线、RxJava、依赖注入框架以及应用架构设计的书籍。

面向的读者

本书章节设计是由浅入深的,定位是Android第二本书,阅读的前提是要有一定的Android基础。适合于Android初、中、高级的工程师阅读。对于初、中级工程师会帮助他们向高级工程师迈进,而高级工程师也会从本书系统的知识体系中获益良多。

目录











封面

封面是美女设计师设计的,是一个武侠风格的机器人(书中很多例子都涉及到了武侠)。

感谢为这本书写推荐语的朋友们,感谢你们的支持。

购买

京东

天猫

当当

亚马逊

勘误和互动

本人虽然已经竭尽全力,但始终难免会有错误,欢迎大家向我反馈,我也会在独立博客和CSDN博客上定期发布本书的勘误信息。

本书的互动地址:

独立博客:http://liuwangshu.cn

CSDN博客:http://blog.csdn.net/itachi85

github:https://github.com/henrymorgen

微博:http://weibo.com/itachi85

qq群:499174415

公众号:刘望舒

源码下载地址为:https://github.com/henrymorgen/android-advanced-light

后记

由于本书的篇幅有限,我还有很多想要讲的技术知识无法在书中写出,这些技术知识会继续在我的博客和微信公众号上分享出来。如果感兴趣,你可以在我的博客和微信公众号中继续学习。

最新文章

  1. socket编程学习step1
  2. 基于吉日嘎底层架构的Web端权限管理操作演示-菜单模块管理
  3. angularJS ng-grid 配置
  4. TOMOYO Linux(undone)
  5. 查看LINUX当前负载
  6. 连接sql server的语句
  7. UVa 1587 Box
  8. java.lang.SecurityException: Permission denied (missing INTERNET permission?) 解决
  9. 【转】为 XmlNode.SelectNodes 加上排序功能
  10. ExcelUtil
  11. linux(十三)之磁盘分区、创建文件系统、挂载
  12. [DeeplearningAI笔记]神经网络与深度学习2.1-2.4神经网络基础
  13. mysql学习第一天
  14. thinkPHP实现APP微信支付
  15. js获取世界不同时区的当前时间
  16. 释放锁标记只有在Synchronized代码结束或者调用wait()。
  17. Html页面雪花效果的实现
  18. 好消息,Manjaro Linux 18 已正式发布!
  19. 在vs2008工程中制作cab包
  20. 一个浏览器Fuzzing框架的学习

热门文章

  1. 解读:计数器Counter
  2. node实现rar格式压缩
  3. kali rolling 配置网络
  4. SpringCloud Feign报错:Method has too many Body parameters
  5. svn的分支
  6. scrapy之手机app抓包爬虫
  7. 使用GEOquery下载GEO数据--转载
  8. codeforces27D Ring Road 2
  9. 用Chrome查看微信访问需要OAuth2.0网页授权的页面
  10. 数据库原理及应用-数据库管理系统 DBMS