Android进阶之光(第2版)
本书是一本Android进阶类图书,书中各知识点由浅入深、环环相扣,*终这些知识点形成了一个体系结构。本书共分为11章。第壹章介绍从Android 5.0到Android 10.0各版本的新特性。第2章介绍Material Design。第3章介绍View体系,包括View的事件分发机制、工作流程、自定义View等知识点。第4章介绍多线程的知识。第5章介绍网络编程与网络框架的知识。第6章介绍常用的设计模式。第7章介绍事件总线。第8到第壹0章介绍架构设计所需要的知识点。第壹1章简单介绍Android系统框架与MediaPlayer框架。本书详细并深入讲解Android*发者bi备的和前沿的知识,适合有一定基础的*发者阅读,有助于他们提高技术水平;同时,本书系统化的知识体系也可以令高ji*发者获益良多。
目录Android进阶三部曲知识体系第壹章 Android新特性1.1 Android 5.0新特性1.1.1 Android 5.0主要新特性概述1.1.2 替换ListView和GridView的RecyclerView1.1.3 CardView1.1.4 三种Notification1.1.5 Toolbar与Palette1.2 Android 6.0新特性1.2.1 Android 6.0主要新特性概述1.2.2 运行时的权限机制1.3 Android 7.0新特性1.3.1 Android 7.0主要新特性概述1.3.2 多窗口模式1.4 Android 8.0新特性1.5 Android 9.0新特性1.6 Android 10.0新特性1.7 本章小结第2章 Material Design2.1 Material Design概述2.1.1 核心思想2.1.2 材质与空间2.1.3 动画2.1.4 样式2.1.5 图标2.1.6 图像2.1.7 组件2.2 Design Support Library常用控件详解2.2.1 Snackbar的使用2.2.2 用TextInputLayout实现登录界面2.2.3 FloatingActionButton的使用2.2.4 用TabLayout实现类似网易选项卡的动态滑动效果2.2.5 用NavigationView实现抽屉菜单界面2.2.6 用CoordinatorLayout实现Toolbar的隐藏和折叠2.3 本章小结第3章 View体系与自定义View3.1 View与ViewGroup3.2 坐标系3.2.1 Android坐标系3.2.2 View坐标系3.3 View的滑动3.3.1 layout方法3.3.2 offsetLeftAndRight()与offsetTopAndBottom()3.3.3 LayoutParams(改变布局参数)3.3.4 动画3.3.5 scrollTo与scrollBy3.3.6 Scroller3.4 属性动画3.5 源码解析Scroller3.6 View的事件分发机制3.6.1 源码解析Activity的构成3.6.2 源码解析View的事件分发机制3.7 View的工作流程3.7.1 View的工作流程入口3.7.2 理解MeasureSpec3.7.3 View的measure流程3.7.4 View的layout流程3.7.5 View的draw流程3.8 自定义View3.8.1 继承系统控件的自定义View3.8.2 继承View的自定义View3.8.3 自定义组合控件3.8.4 自定义ViewGroup3.9 本章小结第4章 多线程编程4.1 线程基础4.1.1 进程与线程4.1.2 线程的状态4.1.3 创建线程4.1.4 理解中断4.1.5 安全地终止线程4.2 线程同步4.2.1 重入锁与条件对象4.2.2 同步方法4.2.3 同步代码块4.2.4 volatile4.3 阻塞队列4.3.1 阻塞队列简介4.3.2 Java中的阻塞队列4.3.3 阻塞队列的实现原理4.3.4 阻塞队列的使用场景4.4 线程池4.4.1 ThreadPoolExecutor4.4.2 线程池的处理流程和原理4.4.3 线程池的种类4.5 AsyncTask的原理4.6 本章小结第5章 网络编程与网络框架5.1 网络分层5.2 TCP的三次握手与四次挥手5.3 HTTP原理5.3.1 HTTP简介5.3.2 HTTP请求报文5.3.3 HTTP响应报文5.3.4 HTTP的消息报头5.3.5 抓包应用举例5.4 HttpClient与HttpURLConnection5.4.1 HttpClient5.4.2 HttpURLConnection5.5 解析Volley5.5.1 Volley的基本用法5.5.2 源码解析Volley5.6 解析OkHttp5.6.1 OkHttp的基本用法5.6.2 源码解析OkHttp 45.7 解析Retrofit5.7.1 Retrofit的基本用法5.7.2 源码解析Retrofit5.8 本章小结第6章 设计模式6.1 设计模式的六大原则6.2 设计模式的分类6.3 创建型设计模式6.3.1 单例模式6.3.2 简单工厂模式6.3.3 工厂方法模式6.3.4 建造者模式6.4 结构型设计模式6.4.1 代理模式6.4.2 装饰模式6.4.3 外观模式6.4.4 享元模式6.5 行为型设计模式6.5.1 策略模式6.5.2 模板方法模式6.5.3 观察者模式6.6 本章小结第7章 事件总线7.1 解析EventBus7.1.1 使用EventBus7.1.2 源码解析EventBus7.2 解析otto7.2.1 使用otto7.2.2 源码解析otto第8章 函数式编程8.1 RxJava 3.x的基本用法8.1.1 RxJava 3.x概述8.1.2 RxJava 3.x的基本实现8.2 RxJava 3.x的Subject和Processor8.2.1 Subject的分类8.2.2 Processor8.3 RxJava 3.x操作符入门8.3.1 创建操作符8.3.2 变换操作符8.3.3 过滤操作符8.3.4 组合操作符8.3.5 辅助操作符8.3.6 错误处理操作符8.3.7 条件操作符和布尔操作符8.3.8 转换操作符8.4 RxJava 3.x的线程控制8.5 RxJava 3.x的使用场景8.5.1 RxJava 3.x结合OkHttp访问网络8.5.2 RxJava 3.x结合Retrofit访问网络8.5.3 用RxJava 3.x实现RxBus8.6 本章小结第9章 注解与依赖注入框架9.1 注解9.1.1 注解分类9.1.2 定义注解9.1.3 注解处理器9.2 依赖注入的原理9.2.1 控制反转与依赖注入9.2.2 依赖注入的实现方式9.3 依赖注入框架9.3.1 为何使用依赖注入框架9.3.2 解析ButterKnife9.3.3 解析Dagger29.4 本章小结第壹0章 应用架构设计10.1 MVC模式10.2 MVP模式10.2.1 应用MVP模式10.2.2 MVP结合RxJava和Dagger210.3 MVVM模式10.3.1 解析Data Binding10.3.2 应用Data Binding10.4 本章小结第壹1章 系统架构与MediaPlayer框架11.1 Android系统架构11.2 Android系统源码目录11.2.1 整体结构11.2.2 应用层部分11.2.3 应用框架层部分11.2.4 C/C++程序库部分11.3 Source Insight的使用11.4 MediaPlayer框架11.4.1 Java Framework层的MediaPlayer分析11.4.2 JNI层的MediaPlayer分析11.4.3 Native层的MediaPlayer分析11.5 本章小结后记