1 业内著名权威专家邓凡平、张鸿洋、徐宜生、陈国华、李文东联手力荐
2 《Android进阶之光》根据Android 7.0和Android Studio,对Android开发设计升阶关键点开展深层次解读,为技术工程师的升阶之途产生引导和光辉。
3 《Android进阶之光》是现阶段销售市场上详解相关Android新特点、Material Design、互联网架构、恶性事件系统总线、RxJava、依赖注入架构和运用架构模式的罕见的书籍。
这书是1本Android升阶的书籍,书中各知识结构图循序渐进、一环扣一环,*终这种知识结构图产生了1个系统架构。这书共分成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开发人员必需的和最前沿的专业知识,合适有必须开发设计基本的开发人员阅读文章,这有利于她们提升技术实力;另外,这书系统软件的专业知识系统架构也令高級开发人员从这当中获利甚多。
目录
- 第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
- 后记 479