为你推荐
前言
第1章 Android新特性
1.1 Android 5.0新特性
1.1.1 Android 5.0主要新特性概述
1.1.2 替换ListView和GridView的RecyclerView
1.1.3 卡片CardView
1.1.4 3种Notification
1.1.5 Toolbar与Palette
1.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 本章小结
第2章 Material Design
2.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 用TextlnputLayout实现登录界面
2.2.3 FloatingActionButton的使用
2.2.4 用TabLayout实现类似网易选项卡的动态滑动效果
2.2.5 用NavigationView实现抽屉菜单界面
2.2.6 用CoordinatorLayout实现Toolbar隐藏和折叠
2.3 本章小结
第3章 View体系与自定义View
3.1 View与ViewGroup
3.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与scollBy
3.3.6 Scroller
3.4 属性动画
3.5 解析Scroller
3.6 View的事件分发机制
3.6.1 源码解析Activity的构成
3.6.2 源码解析View的事件分发机制
3.7 View的工作流程
3.7.1 View的工作流程入口
3.7.2 理解MeasureSpec
3.7.3 View的measure流程
3.7.4 View的layout流程
3.7.5 View的draw流程
3.8 自定义View
3.8.1 继承系统控件的自定义View
3.8.2 继承View的自定义View
3.8.3 自定义组合控件
3.8.4 自定义ViewGroup
3.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 volatile
4.3 阻塞队列
4.3.1 阻塞队列简介
4.3.2 Java中的阻塞队列
4.3.3 阻塞队列的实现原理
4.3.4 阻塞队列的使用场景
4.4 线程池
4.4.1 ThreadPoolExecutor
4.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与HttpURLConnection
5.4.1 HttpClient
5.4.2 HttpURLConnection
5.5 解析Volley
5.5.1 Volley基本用法
5.5.2 源码解析Volley
5.6 解析OkHttp
5.6.1 OkHttp基本用法
5.6.2 源码解析OkHttp
5.7 解析Retrofit
5.7.1 Retrofit基本用法
5.7.2 源码解析Retrofit
5.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 解析EventBus
7.1.1 使用EventBus
7.1.2 源码解析EventBus
7.2 解析otto
7.2.1 使用otto
7.2.2 源码解析otto
第8章 函数响应式编程
8.1 RxJava基本用法
8.1.1 RxJava概述
8.1.2 RxJava基本实现
8.1.3 RxJava的不完整定义回调
8.2 RxJava的Subject
8.3 RxJava操作符入门
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的线程控制
8.5 RxJava的使用场景
8.5.1 RxJava结合OkHttp访问网络
8.5.2 RxJava结合Retrofit访问网络
8.5.3 用RxJava实现RxBus
8.6 RxJava源码解析
8.6.1 RxJava的订阅过程
8.6.2 RxJava的变换过程
8.6.3 RxJava的线程切换过程
8.7 本章小结
第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 解析ButterKnife
9.3.3 解析Dagger2
9.4 本章小结
第10章 应用架构设计
10.1 MVC模式
10.2 MVP模式
10.2.1 应用MVP模式
10.2.2 MVP结合RxJava和Dagger2
10.3 MVVM模式
10.3.1 解析Data Binding
10.3.2 应用Data Binding
10.4 本章小结
第11章 系统架构与MediaPlayer框架
11.1 Android系统架构
11.2 Android系统源码目录
11.2.1 整体结构
11.2.2 应用层部分
11.2.3 应用框架层部分
11.2.4 C/C++程序库部分
11.3 Source lnsights使用
11.4 MediaPlayer框架
11.4.1 Java Framework层的MediaPlayer分析
11.4.2 JNl层的MediaPlayer分析
11.4.3 Native层的MediaPlayer分析
11.5 本章小结
后记
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜