Android 進階之光, 2/e
內容描述
本書是一本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開發者必備的和前沿的知識,適合有一定基礎的開發者閱讀,有助於他們提高技術水平;同時,本書系統化的知識體系也可以令高級開發者獲益良多。
目錄大綱
目錄
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本章小結
後記
作者介紹
劉望舒騰訊雲**價值專家(TVP),國內知名Android技術專家,著有暢銷書《Android進階之光》《Android進階解密》 《Android進階指北》,電子工業出版社博文視點2017、 2018、2019、2020年度優秀作者。
谷歌開發者社區、Droidcon等技術大會特邀講師。CSDN知名博主,榮獲CSDN 2018年度博客之星稱號。
11年Android開發經驗,曾在華為、開心網等知名公司任職,目前就職於某大型互聯網公司,擔任技術負責人,負責架構和管理工作。