独立博客版本请点击这里

由来

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

后记

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

[置顶] 曙光到来,我的新书《Android进阶之光》已出版的更多相关文章

  1. 《Android进阶之光》--注解与依赖注入框架

    No1: 标准注解: 1)@Override:覆写 2)@Deprecated:过时 3)@SuppressWarnings:取消警告 4)@SafeVarargs:申明使用了可变长度参数的方法 No ...

  2. 《Android进阶之光》--Material Design

    接上篇<Android进阶之光>--Android新特性 No1: 组件: 1)底部工作条-Bottom Sheets 2)卡片-Cards 3)提示框-Dialogs 4)菜单-Menu ...

  3. [置顶] 新修改ADB,支持Android 4.2 系统 ,全部中文命令,手机屏幕截图等等

    发过好几个ADB的工具,有很多朋友用了之后给我反馈了不少的意见和bug,这里非常感谢他们,所以今天花了一天的时间重新整理了一下ADB,并且修改了这些BUG.也有朋友建议我给一个修改列表,今天发这个帖子 ...

  4. [置顶] High Performance Canvas Game for Android

    Rule #0 为移动平台进行优化 为移动平台进行优化是十分重要的,因为移动平台的性能大概只有桌面平台的1/10左右(*1),它通常意味着: 更慢的CPU速度,这意味着不经过优化的JavaScript ...

  5. [置顶] 一步一步学android之事件篇——下拉列表事件

    上一篇RadioGroup比较简单,所以再学习个spinner的OnItemSelectedListener事件,前面说过spinner的主要功能就是提供列表显示的选择,比如我们在选择城市的时候就会用 ...

  6. Android进阶之光-第1章-Android新特性-读书笔记

    第 1 章 Android 新特性 1.1 Android 5.0 新特性 1.1.1 Android 5.0 主要新特性 1. 全新的 Material Design 新风格 Material De ...

  7. 《Android进阶之光》--Android新特性

    Android 5.0新特性 1)全新的Material Design设计风格 2)支持多种设备 3)全新的通知中心设计--按照优先级显示 4)支持64位ART虚拟机 5)多任务视窗Overview ...

  8. 《Android进阶之光》--Dagger2

    No1: Project的build.gradle文件添加 buildscript{ dependencies{ ...classpath 'com.neenbedankt.gradle.plugin ...

  9. 《Android进阶之光》--事件总线

    No1: EventBus三要素: 1)Event:事件 2)Subscriber:事件订阅者 3)Publisher:事件发布者 No2: EventBus的4种ThreadMode(线程模型): ...

随机推荐

  1. rocketMQ基本理解

    消息中间件需要解决哪些问题? Publish/Subscribe 发布订阅是消息中间件的最基本功能,也是相对于传统RPC通信而言. Message Priority 规范中描述的优先级是指在一个消息队 ...

  2. Hive的执行生命周期

    1.入口$HIVE_HOME/bin/ext/cli.sh 调用org.apache.hadoop.hive.cli.CliDriver类进行初始化过程 处理-e,-f,-h等信息,如果是-h,打印提 ...

  3. spark(二)优化思路

    优化思路 内存优化 内存优化大概分为三个方向 1.所有对象的总内存(包括数据和java对象) 2.访问这些对象的开销 3.垃圾回收的开销 其中Java的原生对象往往都能被很快的访问,但是会多占据2-5 ...

  4. Adobe HTTP Dynamic Streaming (HDS) manifest 文件 f4m bootstrap属性解析

    首先介绍一下应用背景,我们使用的很多浏览器都依赖Adobe Flash Player 播放视频文件.Flash Player是一个播放的客户端,客户端和服务端之间的流通信有几套实现的标准.包括这里介绍 ...

  5. 把 b中的字段整合到a上

    a = [{"id": 1, "data": 1}, {"id": 2, "data": 1}, {"id&q ...

  6. 关于Eclipse SVN 分支 与主干 小结

    SVN建立分支和合并代码 https://blog.csdn.net/luofeixiongsix/article/details/52052631 SVN创建指定版本号的分支 https://blo ...

  7. 嵌入式 Web workers

    前言 虽然worker可以将复杂的运算放入单独线程去运算,不阻塞UI线程,但是,由于worker()的构造函数的参数不能读取本地的文件,只能来自网络,所以当在一个项目里想使用本地的模块函数,是一个很麻 ...

  8. ElasticSearch + Canal 开发千万级的实时搜索系统【转】

    公司是做社交相关产品的,社交类产品对搜索功能需求要求就比较高,需要根据用户城市.用户ID昵称等进行搜索. 项目原先的搜索接口采用SQL查询的方式实现,数据库表采用了按城市分表的方式.但随着业务的发展, ...

  9. 使用Mysql Workbench 导入数据库提示 ERROR 1227 (42000) at line 18: Access denied; you need (at least one of) the SUPER privilege(s) for

    今天再复制服务器上数据库的时候(使用Mysql Workbench )提示1227错误, 数据库版本5.7.18,复制到的数据库也是5.7.18. 总结一下网上的几种方法: 方法一: 最直观的翻译是说 ...

  10. jmeter-03 JMeter + Jenkins 集成

    一.准备JMeter 测试计划 mock_api.jmx 接口准备:http://10.1.102.75:8000/mock/api/jmeter 二.jenkins 插件准备  Performanc ...