猜你喜欢

Android进阶之光(第2版)

书籍作者:刘望舒 ISBN:9787121405495
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:9863
创建日期:2021-10-07 发布日期:2021-10-07
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书是一本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进阶之光》升级版,Android进阶三部曲之一,专门为应用开发进阶和面试打造的系列图书。

2升级版图书修正了第1版图书中存在的部分问题,将内容扩展到Android 1.0,补充了相关特性和功能的介绍。

3《Android进阶之光》是目前市场上详细介绍有关Android新特性、Material Design、网络框架、事件总线、RxJava、依赖注入框架和应用架构设计的难得一见的图书。


前言

前言


为什么写这本书

从2008年Android系统发布以来,Android已经发展了十余年。在此期间,Android开发相当火热。这时,大量人员涌入Android开发职场,并导致Android开发人才市场相对饱和。如此一来,很多Android开发者发现工作越来越难找,企业对开发者的要求也越来越高,企业需求最多的不再是初、中级别的Android工程师,而是Android高级工程师。但是,Android高级工程师的数量有限。有些人在从事了几年开发工作后,对很多技术的掌握仍停留在会用的阶段。他们对于原理不求甚解,这导致他们进入技术瓶颈期并长期无法得到提高。很多开发者为了突破技术瓶颈,查阅了大量的网络视频和博客。尽管如此,他们仍旧无法突破自身的技术瓶颈。其主要原因是,没有将学到的知识点形成体系化。因此,需要有一套成体系的进阶图书来帮助这些开发人员突破自身的技术瓶颈并成为Android高级工程师,这就是Android进阶三部曲,包括《Android进阶之光》、《Android进阶解密》和《Android进阶指北》。

本书作为Android进阶三部曲的第一部,所要传达的不仅仅是知识,同时还会告诉读者以下几点:


√ 要关注Android新技术。

√ Java基础和设计模式很重要。

√ 学习框架要深入其原理。

√ 要学习架构设计。

√ 要了解和学习系统源码。

本书内容

本书共分为11章,各章内容如下。


√ 第1章介绍从Android 5.0到Android 10.0各版本的新特性,包括Android 5.0的RecyclerView、Android 6.0的运行时权限机制和Android 7.0的多窗口模式等知识点。

√ 第2章介绍Material Design及Design Support Library的常用控件,并给出将Design Support Library中的常用控件结合在一起使用的实例。

√ 第3章介绍与View相关的进阶知识,包括View的滑动、View的事件分发机制和View的工作流程。最后结合以上知识点介绍自定义View。

√ 第4章介绍多线程编程,本章不仅包括基础的线程知识,还包括线程同步和线程池等进阶知识点,最后结合这些知识点分析Android 7.0的AsyncTask的源码。

√ 第5章介绍网络编程的基础知识,以及常用的网络框架Volley、OkHttp、Retrofit的使用方法和原理分析。

√ 第6章对设计模式进行分类,并介绍其中的常用设计模式。

√ 第7章介绍事件总线EventBus和otto的使用方法和原理。

√ 第8章介绍函数式编程RxJava的使用方法,包括RxJava的基本用法、操作符、使用场景和源码分析等知识点。

√ 第9章介绍注解的知识点,以及依赖注入框架ButterKnife和Dagger2的使用方法与原理。

√ 第10章介绍Android应用架构设计,包括MVP框架,以及MVP结合RxJava和Dagger2、与MVVM框架相关的Data Binding支持库等知识点。

√ 第11章主要指引读者进行Android系统源码阅读并带其入门,介绍Android系统框架、系统源码目录和阅读源码的工具,并以分析MediaPlayer框架的源码作为示例。

本书特色

本书主要有以下特色。


√ 本书整体结构由浅入深,从最简单的第1章到难一些的第11章,其难度是逐步加深的。

√ 本书为了分析一些框架的原理,会介绍一些相关知识点做铺垫。比如为了更好地学习依赖注入框架,需要了解注解的相关知识点;再比如要分析AsyncTask的源码,则需要了解线程池和阻塞队列等知识点。

√ 本书的知识点环环相扣,比如要介绍MVP框架的设计,就需要首先讲解Retrofit、RxJava和Dagger2的相关知识点。

√ 本书对于很多知识点都有很深入的讲解。其中,对于常用的框架,比如OkHttp、Retrofit、EventBus和RxJava等,不仅讲解了如何使用,而且更加深入地介绍了其原理。

√ 本书是目前市场上详细介绍有关Android新特性、Material Design、网络框架、事件总线、RxJava、依赖注入框架和应用架构设计的难得一见的图书。

读者对象

本书的章节顺序是由浅入深的,内容适合Android初、中、高级工程师阅读,阅读前提是要有一定的Android基础。

致谢

感谢本书的责任编辑付睿,她在CSDN博客中发现了我,并积极推动本书的出版进度,这才使得本书得以及时出版。感谢本书的文字编辑李云静,她审稿时很细致,这使得书中的一些错误能被提早发现并改正。感谢我的父母在写书过程中对我的不断鼓励,这样我才得以全力以赴地投入编写工作。感谢所有关注我的朋友,你们的鼓励和认可为我写博客及写书带来了不可或缺的动力。

勘误与互动[ 请访问http://www.broadview.com.cn/40549下载本书提供的附加参考资料。正文中提及参见链接[1]、链接[2]等时,可在下载的“参考资料.pdf”文件中进行查询。]

本人虽已竭尽全力,但书中难免会有错误,欢迎大家向我反馈,我也会在独立博客和CSDN博客中定期发布本书的勘误信息。

本书互动地址

独立博客:http://liuwangshu.cn

GitHub:https://github.com/henrymorgen

微信公众号:刘望舒

刘望舒

2021年1月于北京


目录

目录

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