本書是一本Android進(jìn)階類圖書,書中各知識(shí)點(diǎn)由淺入深、環(huán)環(huán)相扣,最終這些知識(shí)點(diǎn)形成了一個(gè)體系結(jié)構(gòu)。本書共分為11章。第1章介紹從Android 5.0到Android 10.0各版本的新特性。第2章介紹Material Design。第3章介紹View體系,包括View的事件分發(fā)機(jī)制、工作流程、自定義View等知識(shí)點(diǎn)。第4章介紹多線程的知識(shí)。第5章介紹網(wǎng)絡(luò)編程與網(wǎng)絡(luò)框架的知識(shí)。第6章介紹常用的設(shè)計(jì)模式。第7章介紹事件總線。第8到第10章介紹架構(gòu)設(shè)計(jì)所需要的知識(shí)點(diǎn)。第11章簡單介紹Android系統(tǒng)框架與MediaPlayer框架。本書詳細(xì)并深入講解Android開發(fā)者必備的和前沿的知識(shí),適合有一定基礎(chǔ)的開發(fā)者閱讀,有助于他們提高技術(shù)水平;同時(shí),本書系統(tǒng)化的知識(shí)體系也可以令高級(jí)開發(fā)者獲益良多。
劉望舒 騰訊云最具價(jià)值專家(TVP),國內(nèi)知名Android技術(shù)專家,著有暢銷書《Android進(jìn)階之光》《Android進(jìn)階解密》 《Android進(jìn)階指北》,電子工業(yè)出版社博文視點(diǎn)2017、2018、2019、2020年度優(yōu)秀作者。谷歌開發(fā)者社區(qū)、Droidcon等技術(shù)大會(huì)特邀講師。CSDN知名博主,榮獲CSDN 2018年度博客之星稱號(hào)。11年Android開發(fā)經(jīng)驗(yàn),曾在華為、開心網(wǎng)等知名公司任職,目前就職于某大型互聯(lián)網(wǎng)公司,擔(dān)任技術(shù)負(fù)責(zé)人,負(fù)責(zé)架構(gòu)和管理工作。
目錄
Android進(jìn)階三部曲知識(shí)體系
第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 運(yùn)行時(shí)的權(quán)限機(jī)制
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 本章小結(jié)
第2章 Material Design
2.1 Material Design概述
2.1.1 核心思想
2.1.2 材質(zhì)與空間
2.1.3 動(dòng)畫
2.1.4 樣式
2.1.5 圖標(biāo)
2.1.6 圖像
2.1.7 組件
2.2 Design Support Library常用控件詳解
2.2.1 Snackbar的使用
2.2.2 用TextInputLayout實(shí)現(xiàn)登錄界面
2.2.3 FloatingActionButton的使用
2.2.4 用TabLayout實(shí)現(xiàn)類似網(wǎng)易選項(xiàng)卡的動(dòng)態(tài)滑動(dòng)效果
2.2.5 用NavigationView實(shí)現(xiàn)抽屜菜單界面
2.2.6 用CoordinatorLayout實(shí)現(xiàn)Toolbar的隱藏和折疊
2.3 本章小結(jié)
第3章 View體系與自定義View
3.1 View與ViewGroup
3.2 坐標(biāo)系
3.2.1 Android坐標(biāo)系
3.2.2 View坐標(biāo)系
3.3 View的滑動(dòng)
3.3.1 layout方法
3.3.2 offsetLeftAndRight()與offsetTopAndBottom()
3.3.3 LayoutParams(改變布局參數(shù))
3.3.4 動(dòng)畫
3.3.5 scrollTo與scrollBy
3.3.6 Scroller
3.4 屬性動(dòng)畫
3.5 源碼解析Scroller
3.6 View的事件分發(fā)機(jī)制
3.6.1 源碼解析Activity的構(gòu)成
3.6.2 源碼解析View的事件分發(fā)機(jī)制
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 繼承系統(tǒng)控件的自定義View
3.8.2 繼承View的自定義View
3.8.3 自定義組合控件
3.8.4 自定義ViewGroup
3.9 本章小結(jié)
第4章 多線程編程
4.1 線程基礎(chǔ)
4.1.1 進(jìn)程與線程
4.1.2 線程的狀態(tài)
4.1.3 創(chuàng)建線程
4.1.4 理解中斷
4.1.5 安全地終止線程
4.2 線程同步
4.2.1 重入鎖與條件對(duì)象
4.2.2 同步方法
4.2.3 同步代碼塊
4.2.4 volatile
4.3 阻塞隊(duì)列
4.3.1 阻塞隊(duì)列簡介
4.3.2 Java中的阻塞隊(duì)列
4.3.3 阻塞隊(duì)列的實(shí)現(xiàn)原理
4.3.4 阻塞隊(duì)列的使用場(chǎng)景
4.4 線程池
4.4.1 ThreadPoolExecutor
4.4.2 線程池的處理流程和原理
4.4.3 線程池的種類
4.5 AsyncTask的原理
4.6 本章小結(jié)
第5章 網(wǎng)絡(luò)編程與網(wǎng)絡(luò)框架
5.1 網(wǎng)絡(luò)分層
5.2 TCP的三次握手與四次揮手
5.3 HTTP原理
5.3.1 HTTP簡介
5.3.2 HTTP請(qǐng)求報(bào)文
5.3.3 HTTP響應(yīng)報(bào)文
5.3.4 HTTP的消息報(bào)頭
5.3.5 抓包應(yīng)用舉例
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 本章小結(jié)
第6章 設(shè)計(jì)模式
6.1 設(shè)計(jì)模式的六大原則
6.2 設(shè)計(jì)模式的分類
6.3 創(chuàng)建型設(shè)計(jì)模式
6.3.1 單例模式
6.3.2 簡單工廠模式
6.3.3 工廠方法模式
6.3.4 建造者模式
6.4 結(jié)構(gòu)型設(shè)計(jì)模式
6.4.1 代理模式
6.4.2 裝飾模式
6.4.3 外觀模式
6.4.4 享元模式
6.5 行為型設(shè)計(jì)模式
6.5.1 策略模式
6.5.2 模板方法模式
6.5.3 觀察者模式
6.6 本章小結(jié)
第7章 事件總線
7.1 解析EventBus
7.1.1 使用EventBus
7.1.2 源碼解析EventBus
7.2 解析otto
7.2.1 使用otto
7.2.2 源碼解析otto
第8章 函數(shù)式編程
8.1 RxJava 3.x的基本用法
8.1.1 RxJava 3.x概述
8.1.2 RxJava 3.x的基本實(shí)現(xiàn)
8.2 RxJava 3.x的Subject和Processor
8.2.1 Subject的分類
8.2.2 Processor
8.3 RxJava 3.x操作符入門
8.3.1 創(chuàng)建操作符
8.3.2 變換操作符
8.3.3 過濾操作符
8.3.4 組合操作符
8.3.5 輔助操作符
8.3.6 錯(cuò)誤處理操作符
8.3.7 條件操作符和布爾操作符
8.3.8 轉(zhuǎn)換操作符
8.4 RxJava 3.x的線程控制
8.5 RxJava 3.x的使用場(chǎng)景
8.5.1 RxJava 3.x結(jié)合OkHttp訪問網(wǎng)絡(luò)
8.5.2 RxJava 3.x結(jié)合Retrofit訪問網(wǎng)絡(luò)
8.5.3 用RxJava 3.x實(shí)現(xiàn)RxBus
8.6 本章小結(jié)
第9章 注解與依賴注入框架
9.1 注解
9.1.1 注解分類
9.1.2 定義注解
9.1.3 注解處理器
9.2 依賴注入的原理
9.2.1 控制反轉(zhuǎn)與依賴注入
9.2.2 依賴注入的實(shí)現(xiàn)方式
9.3 依賴注入框架
9.3.1 為何使用依賴注入框架
9.3.2 解析ButterKnife
9.3.3 解析Dagger2
9.4 本章小結(jié)
第10章 應(yīng)用架構(gòu)設(shè)計(jì)
10.1 MVC模式
10.2 MVP模式
10.2.1 應(yīng)用MVP模式
10.2.2 MVP結(jié)合RxJava和Dagger2
10.3 MVVM模式
10.3.1 解析Data Binding
10.3.2 應(yīng)用Data Binding
10.4 本章小結(jié)
第11章 系統(tǒng)架構(gòu)與MediaPlayer框架
11.1 Android系統(tǒng)架構(gòu)
11.2 Android系統(tǒng)源碼目錄
11.2.1 整體結(jié)構(gòu)
11.2.2 應(yīng)用層部分
11.2.3 應(yīng)用框架層部分
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 本章小結(jié)
后記