文章目录

  • 第1章 Android新特性 1
  • 第2章 Material Design 48
  • 第3章 View体系与自定义View 87
  • 第4章 多线程编程 165
  • 第5章 网络编程与网络框架 204
  • 第6章 设计模式 271
  • 第7章 事件总线 308
  • 第8章 函数响应式编程 333
  • 第9章 注解与依赖注入框架 382
  • 第10章 应用架构设计 422
  • 第11章 系统架构与MediaPlayer框架 460

出版年: 2017-7

简介:
《Android进阶之光》是一本Android进阶类书籍,书中各知识点由浅入深、环环相扣,最终这些知识点形成了一个体系结构。《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开发者必备的和前沿的知识,适合有一定开发基础的开发者阅读,这有助于他们提高技术水平;同时,《Android进阶之光》系统的知识体系结构也令高级开发者从中获益良多。

豆瓣

第1章 Android新特性 1

1.1 Android 5.0新特性 1
1.1.1 Android 5.0主要新特性概述 1
1.1.2 替换ListView和GridView的RecyclerView 3
1.1.3 卡片CardView 13
1.1.4 3种Notification 18
1.1.5 Toolbar与Palette 23
1.2 Android 6.0新特性 29
1.2.1 Android 6.0主要新特性概述 29
1.2.2 运行时权限机制 30
1.3 Android 7.0新特性 43
1.3.1 Android 7.0主要新特性概述 43
1.3.2 多窗口模式 44
1.4 本章小结 47

第2章 Material Design 48

2.1 Material Design概述 48
2.1.1 核心思想 48
2.1.2 材质与空间 49
2.1.3 动画 49
2.1.4 样式 50
2.1.5 图标 51
2.1.6 图像 51
2.1.7 组件 51
2.2 Design Support Library常用控件详解 54
2.2.1 Snackbar的使用 54
2.2.2 用TextInputLayout实现登录界面 55
2.2.3 FloatingActionButton的使用 60
2.2.4 用TabLayout实现类似网易选项卡的动态滑动效果 61
2.2.5 用NavigationView实现抽屉菜单界面 68
2.2.6 用CoordinatorLayout实现Toolbar隐藏和折叠 74
2.3 本章小结 86

第3章 View体系与自定义View 87

3.1 View与ViewGroup 87
3.2 坐标系 89
3.2.1 Android坐标系 89
3.2.2 View坐标系 90
3.3 View的滑动 91
3.3.1 layout()方法 92
3.3.2 offsetLeftAndRight()与offsetTopAndBottom() 94
3.3.3 LayoutParams(改变布局参数) 95
3.3.4 动画 95
3.3.5 scrollTo与scollBy 96
3.3.6 Scroller 98
3.4 属性动画 99
3.5 解析Scroller 105
3.6 View的事件分发机制 108
3.6.1 源码解析Activity的构成 108
3.6.2 源码解析View的事件分发机制 112
3.7 View的工作流程 119
3.7.1 View的工作流程入口 119
3.7.2 理解MeasureSpec 122
3.7.3 View的measure流程 126
3.7.4 View的layout流程 132
3.7.5 View的draw流程 135
3.8 自定义View 139
3.8.1 继承系统控件的自定义View 140
3.8.2 继承View的自定义View 141
3.8.3 自定义组合控件 147
3.8.4 自定义ViewGroup 152
3.9 本章小结 164

第4章 多线程编程 165

4.1 线程基础 165
4.1.1 进程与线程 165
4.1.2 线程的状态 167
4.1.3 创建线程 168
4.1.4 理解中断 170
4.1.5 安全地终止线程 171
4.2 同步 173
4.2.1 重入锁与条件对象 173
4.2.2 同步方法 175
4.2.3 同步代码块 176
4.2.4 volatile 177
4.3 阻塞队列 183
4.3.1 阻塞队列简介 183
4.3.2 Java中的阻塞队列 184
4.3.3 阻塞队列的实现原理 186
4.3.4 阻塞队列的使用场景 188
4.4 线程池 190
4.4.1 ThreadPoolExecutor 190
4.4.2 线程池的处理流程和原理 192
4.4.3 线程池的种类 193
4.5 AsyncTask的原理 197
4.6 本章小结 203

第5章 网络编程与网络框架 204

5.1 网络分层 204
5.2 TCP的三次握手与四次挥手 205
5.3 HTTP协议原理 207
5.3.1 HTTP简介 207
5.3.2 HTTP请求报文 208
5.3.3 HTTP响应报文 209
5.3.4 HTTP的消息报头 210
5.3.5 抓包应用举例 211
5.4 HttpClient与HttpURLConnection 212
5.4.1 HttpClient 212
5.4.2 HttpURLConnection 216
5.5 解析Volley 218
5.5.1 Volley基本用法 218
5.5.2 源码解析Volley 223
5.6 解析OkHttp 231
5.6.1 OkHttp基本用法 232
5.6.2 源码解析OkHttp 240
5.7 解析Retrofit 255
5.7.1 Retrofit基本用法 255
5.7.2 源码解析Retrofit 261
5.8 本章小结 270

第6章 设计模式 271

6.1 设计模式六大原则 271
6.2 设计模式分类 273
6.3 创建型设计模式 273
6.3.1 单例模式 274
6.3.2 简单工厂模式 277
6.3.3 工厂方法模式 279
6.3.4 建造者模式 281
6.4 结构型设计模式 284
6.4.1 代理模式 285
6.4.2 装饰模式 288
6.4.3 外观模式 291
6.4.4 享元模式 295
6.5 行为型设计模式 298
6.5.1 策略模式 298
6.5.2 模板方法模式 301
6.5.3 观察者模式 304
6.6 本章小结 307

第7章 事件总线 308

7.1 解析EventBus 308
7.1.1 使用EventBus 308
7.1.2 源码解析EventBus 314
7.2 解析otto 324
7.2.1 使用otto 324
7.2.2 源码解析otto 327

第8章 函数响应式编程 333

8.1 RxJava基本用法 333
8.1.1 RxJava概述 333
8.1.2 RxJava基本实现 334
8.1.3 RxJava的不完整定义回调 336
8.2 RxJava的Subject 338
8.3 RxJava操作符入门 339
8.3.1 创建操作符 339
8.3.2 变换操作符 340
8.3.3 过滤操作符 344
8.3.4 组合操作符 349
8.3.5 辅助操作符 352
8.3.6 错误处理操作符 355
8.3.7 条件操作符和布尔操作符 357
8.3.8 转换操作符 360
8.4 RxJava的线程控制 362
8.5 RxJava的使用场景 362
8.5.1 RxJava结合OkHttp访问网络 362
8.5.2 RxJava结合Retrofit访问网络 364
8.5.3 用RxJava实现RxBus 368
8.6 RxJava源码解析 370
8.6.1 RxJava的订阅过程 371
8.6.2 RxJava的变换过程 372
8.6.3 RxJava的线程切换过程 376
8.7 本章小结 381

第9章 注解与依赖注入框架 382

9.1 注解 382
9.1.1 注解分类 382
9.1.2 定义注解 384
9.1.3 注解处理器 385
9.2 依赖注入的原理 392
9.2.1 控制反转与依赖注入 392
9.2.2 依赖注入的实现方式 393
9.3 依赖注入框架 395
9.3.1 为何使用依赖注入框架 395
9.3.2 解析ButterKnife 395
9.3.3 解析Dagger2 405
9.4 本章小结 421

第10章 应用架构设计 422

10.1 MVC模式 422
10.2 MVP模式 423
10.2.1 应用MVP模式 424
10.2.2 MVP结合RxJava和Dagger2 431
10.3 MVVM模式 438
10.3.1 解析Data Binding 439
10.3.2 应用Data Binding 457
10.4 本章小结 459

第11章 系统架构与MediaPlayer框架 460

11.1 Android系统架构 460
11.2 Android系统源码目录 463
11.2.1 整体结构 463
11.2.2 应用层部分 464
11.2.3 应用框架层部分 465
11.2.4 C/C++程序库部分 465
11.3 Source Insights使用 466
11.4 MediaPlayer框架 467
11.4.1 Java Framework层的MediaPlayer分析 467
11.4.2 JNI层的MediaPlayer分析 469
11.4.3 Native层的MediaPlayer分析 471
11.5 本章小结 478

《Android进阶之光》— Android 书籍相关推荐

  1. Android高级进阶书籍推荐

    中级进阶推荐看一下以下这几本书: <Android从入门到精通(附光盘)> 明日科技 编 <第一行代码2 Android(第二版)> 郭霖 著 <Android开发进阶 ...

  2. 【提升技能必备】这基本Android高级进阶的好书值得一看

    Android开发的书籍有很多,下面简单的就我看过的感觉写的很全面,很深入,很有启示意义的几本书推荐给大家,希望大家在闲暇之时也能买来看看.(只是介绍书籍,想买的自己百度书名.别误会.)当然如果你觉得 ...

  3. 【提升技能必备】这几本Android高级进阶的好书值得一看

    点击上方蓝字关注公众号 码个蛋第271次推文 备点年货 作者:AWeiLoveAndroid 博客:https://www.jianshu.com/u/f408bdadacce Android开发的书 ...

  4. [总]Android高级进阶之路

    个人Android高级进阶之路,目前按照这个目录执行,执行完毕再做扩展!!!!! 一.View的绘制 1)setContentView()的源码分析 2)SnackBar的源码分析 3)利用decor ...

  5. 11 | Android 高级进阶(源码剖析篇) Square 高效易用的 IO 框架 okio(四)

    作者简介:ASCE1885, <Android 高级进阶>作者. 本文由于潜在的商业目的,未经授权不开放全文转载许可,谢谢! 本文分析的源码版本已经 fork 到我的 Github. 超时 ...

  6. 《Android高级进阶》读书笔记

    <Android高级进阶>是据我所知的市面上唯一一本技术工具书,比较的高大全,作者的目的是为了对全领域有个初步的概念 No1: 在Android系统中,拥有事件传递处理能力的类有以下三种 ...

  7. 《Android高级进阶》小密圈开通啦

    @author ASCE1885的 Github 简书 微博 CSDN 知乎 <Android高级进阶>一书的读者可免费加入,后续会专注于原创或者分享 Android,iOS,React ...

  8. Android高级进阶——绘图篇(五)setXfermode 设置混合模式

    一.GPU硬件加速 1.概述 GPU英文全称Graphic Processing Unit,中文翻译为"图形处理器".与CPU不同,GPU是专门为处理图形任务而产生的芯片. 在GP ...

  9. (转)Android高级进阶--插曲-从Android5.0到Android9.0各版本变化

    原文:https://blog.csdn.net/gaoxiaoweiandy/article/details/83216001 从Android5.0到Android9.0 自从公司提出了一些出其不 ...

  10. Android高级进阶--插曲-从Android5.0到Android10各版本变化

    从Android5.0到Android10 一.Android5 1.ANDROID 5.0 行为变更: 声音和振动 (1)如果您当前使用 Ringtone.MediaPlayer 或 Vibrato ...

最新文章

  1. ASP.NET 内置对象
  2. 第四周项目三-随机数函数应用于游戏(小学生算术能力测试系统)
  3. 大厂竟然都是这么做系统监控的,我们的方式太原始了~
  4. 两种通过代码访问SalesOrder header text内容的办法
  5. [Java][JavaScript]字符串数组与字符串之间的互转(join/split)(转)
  6. 2021牛客暑期多校训练营5 G-Greater Integer, Better LCM(暴力+子集dp)
  7. 大数据集群搭建之节点的网络配置过程(二)
  8. 口语技巧-Part2答题逻辑
  9. sql server 监视_使用动态管理对象监视SQL Server –请求
  10. 根据导出的查询结果拼接字符串,生成sql语句并保存到txt文件中
  11. 《Java从入门到放弃》框架入门篇:hibernate中的多表对应关系(二)
  12. CSDN排名更新又出问题了?
  13. SU战队专访:破而后立,晓喻新生
  14. Python——伪随机数生成器
  15. 电脑使用代理连接,关掉代理之后连接不了网络的解决方法
  16. Unity3D开发之----将预设体Prefab压缩成AssetBundle文件
  17. php根据当前日期判断法定节假日_PHP 判断当前日期是否是法定节假日或者休息日 (原)...
  18. Linux下 Python通过ctypes调用cAPI (一)
  19. GO学习笔记1.5:第一个GO项目常见问题
  20. Java数据结构与算法_线性表_顺序表与链表

热门文章

  1. 如何优雅的使用iBatis
  2. windows上怎么用libnfc的库函数编程
  3. scoped_ref
  4. OTcl与C++,NS2是如何识别并调用执行协议的 转自百思论坛
  5. 数独的优化回朔算法(二)
  6. 正则表达式学习(一)
  7. 071120 sunny
  8. Python代码Linux
  9. 第十届全国社会媒体处理大会 (SMP 2021) 征文通知
  10. 半监督学习在金融文本分类上的探索和实践