书籍详情
Android进阶之光(第2版)
作者:刘望舒 著
出版社:电子工业出版社
出版时间:2021-02-01
ISBN:9787121405495
定价:¥119.00
购买这本书可以去
内容简介
本书是一本Android进阶类图书,书中各知识点由浅入深、环环相扣,最终这些知识点形成了一个体系结构。本书共分为11章。第1章介绍从Android 5.0到Android 10.0各版本的新特性。第2章介绍Material Design。第3章介绍View体系,包括View的事件分发机制、工作流程、自定义View等知识点。第4章介绍多线程的知识。第5章介绍网络编程与网络框架的知识。第6章介绍常用的设计模式。第7章介绍事件总线。第8到第10章介绍架构设计所需要的知识点。第11章简单介绍Android系统框架与MediaPlayer框架。本书详细并深入讲解Android开发者必备的和前沿的知识,适合有一定基础的开发者阅读,有助于他们提高技术水平;同时,本书系统化的知识体系也可以令高级开发者获益良多。
作者简介
刘望舒 腾讯云**价值专家(TVP),国内知名Android技术专家,著有畅销书《Android进阶之光》《Android进阶解密》 《Android进阶指北》,电子工业出版社博文视点2017、2018、2019、2020年度优秀作者。谷歌开发者社区、Droidcon等技术大会特邀讲师。CSDN知名博主,荣获CSDN 2018年度博客之星称号。11年Android开发经验,曾在华为、开心网等知名公司任职,目前就职于某大型互联网公司,担任技术负责人,负责架构和管理工作。
目录
目录
Android进阶三部曲知识体系
第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 三种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 Android 8.0新特性
1.5 Android 9.0新特性
1.6 Android 10.0新特性
1.7 本章小结
第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 用TextInputLayout实现登录界面
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与scrollBy
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 4
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 3.x的基本用法
8.1.1 RxJava 3.x概述
8.1.2 RxJava 3.x的基本实现
8.2 RxJava 3.x的Subject和Processor
8.2.1 Subject的分类
8.2.2 Processor
8.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实现RxBus
8.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 解析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 Insight的使用
11.4 MediaPlayer框架
11.4.1 Java Framework层的MediaPlayer分析
11.4.2 JNI层的MediaPlayer分析
11.4.3 Native层的MediaPlayer分析
11.5 本章小结
后记
Android进阶三部曲知识体系
第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 三种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 Android 8.0新特性
1.5 Android 9.0新特性
1.6 Android 10.0新特性
1.7 本章小结
第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 用TextInputLayout实现登录界面
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与scrollBy
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 4
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 3.x的基本用法
8.1.1 RxJava 3.x概述
8.1.2 RxJava 3.x的基本实现
8.2 RxJava 3.x的Subject和Processor
8.2.1 Subject的分类
8.2.2 Processor
8.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实现RxBus
8.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 解析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 Insight的使用
11.4 MediaPlayer框架
11.4.1 Java Framework层的MediaPlayer分析
11.4.2 JNI层的MediaPlayer分析
11.4.3 Native层的MediaPlayer分析
11.5 本章小结
后记
猜您喜欢