深入淺出 Android Jetpack

深入淺出 Android Jetpack

作者: 蕭文翰
出版社: 清華大學
出版在: 2022-02-01
ISBN-13: 9787302596103
ISBN-10: 7302596107





內容描述


本書系統地講解Android Jetpack組件庫的使用和原理,具體涉及應用架構、生命周期管理、數據庫操作、UI數據綁定等。第1章概括地講述Android Jetpack的目標、內容等;第2~5章介紹Jetpack組件中的基礎內容,具體涉及用於不同Android版本間的UI兼容處理組件、用於Kotlin編程語言的KTX擴展組件、多Dex打包APK組件以及包含單元測試、UI測試、集成測試的測試組件;第6~13章介紹Jetpack組件庫中架構的內容,這也是本書的重點部分,具體涉及視圖綁定組件、生命周期組件、頁面導航組件等多種架構組件,以及用於本地數據庫存儲的Room組件和用於處理分頁加載的Paging組件。
通過使用Jetpack可以大大提升Android開發的效率,因此本書非常適合Android開發人員使用。


目錄大綱


目    錄

第1章  概述 1
1.1  Android Jetpack是什麽 1
1.1.1  基礎部分 2
1.1.2  架構部分 2
1.1.3  界面部分 3
1.1.4  行為部分 4
1.2  Android Jetpack的發展史與AndroidX 5
1.2.1  Android App開發簡史 5
1.2.2  Android Jetpack的誕生和使命 5
1.2.3  Android Jetpack與AndroidX的關系 5
1.3  如何使用本書 6
1.3.1  開發環境概覽 6
1.3.2  本書的結構 7
1.3.3  本書的用法 7
第2章  Appcompat UI兼容組件 8
2.1  Appcompat概覽 8
2.2  集成Appcompat庫 9
2.3  App Bar 9
2.3.1  什麽是App Bar 9
2.3.2  添加ToolBar控件 10
2.3.3  給ToolBar設置標題和子標題 11
2.3.4  在ToolBar上添加圖標 12
2.3.5  在ToolBar上增加返回按鈕 12
2.3.6  在ToolBar上添加菜單 14
2.3.7  為ToolBar添加搜索功能 16
2.3.8  自定義ToolBar樣式 17
2.3.9  ToolBar小結 18
2.4  AppCompatActivity與AppCompatDelegate 18
2.4.1  認識AppCompatActivity 19
2.4.2  實戰AppCompatDelegate 19
2.5  AppCompatDialogFragment 22
2.5.1  AppCompatDialogFragment和AppCompatDialog 22
2.5.2  實戰簡單對話框 23
2.5.3  實戰列表選擇對話框 25
2.5.4  自定義菜單佈局 30
2.5.5  AppCompatDialogFragment小結 32
2.6  AppCompatResources 32
2.6.1  點擊狀態選擇器 32
2.6.2  從resId獲取Drawable對象 33
2.7  AnimatedStateListDrawableCompat 33
2.7.1  定義動畫執行腳本 33
2.7.2  執行動畫 34
2.8  ActionMenuView 35
2.8.1  添加菜單項 35
2.8.2  添加ActionMenuView 35
2.8.3  綁定ActionMenuView和菜單項,並實現點擊響應 36
2.9  AppCompatAutoCompleteTextView與AppCompatMultiAutoCompleteTextView 37
2.9.1  認識ViewCompat類 37
2.9.2  理解PorterDuff混合模式 37
2.9.3  實戰更改背景色調 39
2.10  AppCompatButton和AppCompatToggleButton 40
2.10.1  設置按鈕文本風格 40
2.10.2  設置按鈕文本是否自動大寫 41
2.11  AppCompatCheckBox與AppCompatRadioButton 41
2.12  AppCompatCheckedTextView 42
2.13  AppCompatEditText 42
2.13.1  定義操作菜單 42
2.13.2  實現所選文本自定義操作功能 43
2.14  AppCompatImageButton和AppCompatImageView 45
2.14.1  圖片色調適用場景 45
2.14.2  添加矢量圖素材 46
2.14.3  定義矢量圖色調 47
2.14.4  設置矢量圖色調 47
2.15  AppCompatSpinner 48
2.16  AppCompatTextView 50
2.16.1  文本自適應顯示使用場景 50
2.16.2  開啟自適應顯示模式 50
2.16.3  配置自定義縮放方式 52
2.16.4  通過預設值方式縮放 53
2.17  TooltipCompat 53
2.18  其他控件及註意事項 54
第3章  Android KTX擴展組件 55
3.1  概述 55
3.2  Core KTX 56
3.2.1  Animation 56
3.2.2  Content 57
3.2.3  Database 58
3.2.4  Graphics 60
3.2.5  Util 64
3.2.6  View 66
3.3  Collection 67
3.3.1  集成Collection KTX 68
3.3.2  獲取集合中所有的Key和Value 68
3.3.3  集合的遍歷 68
3.3.4  集合元素的增加與替換 69
3.4  Fragment 70
3.4.1  集成Fragment KTX 70
3.4.2  Fragment事務操作 70
3.5  小結 71
第4章  MultiDex打包APK 72
4.1  APK解構 72
4.2  64KB方法數限制 72
4.3  避免64KB方法數限制 73
4.3.1  問題重現 73
4.3.2  使用MultiDex 74
4.3.3  MultiDex的局限性 75
4.3.4  縮減方法數 76
4.4  問題排查 77
第5章  Test構建測試 80
5.1  概述 80
5.2  構建App的最佳實踐 80
5.3  測試的最佳實踐 81
5.3.1  測試的分類 81
5.3.2  用於編寫測試代碼的目錄結構 81
5.3.3  選擇測試設備 82
5.3.4  添加測試依賴庫 82
5.4  單元測試 83
5.4.1  本地單元測試 83
5.4.2  設備單元測試 94
5.5  UI測試 96
5.5.1  Espresso 96
5.5.2  UI Automator 103
5.6  集成測試 109
5.6.1  運行針對Service的測試 109
5.6.2  運行針對Content Provider的測試 112
5.6.3  針對Broadcast的測試 116
第6章  ViewBinding和DataBinding 117
6.1  Android應用架構原則 117
6.1.1  分離關註點 117
6.1.2  通過模型驅動界面 118
6.1.3  官方建議的應用架構 118
6.1.4  Android Jetpack架構組件 119
6.2  視圖綁定 119
6.2.1  啟用視圖綁定支持 119
6.2.2  實戰視圖綁定 120
6.3  數據綁定 123
6.3.1  聲明式編程簡述 123
6.3.2  啟用數據綁定支持 124
6.3.3  可觀察的數據對象 124
6.3.4  實戰單向數據綁定 126
6.3.5  創建和自定義綁定類 133
6.3.6  綁定適配器 134
6.3.7  雙向數據綁定 136
第7章  生命周期 139
7.1  概述 139
7.2  實戰Lifecycle組件 139
7.2.1  添加依賴項 140
7.2.2  實現生命周期感知接口 140
7.2.3  使用生命周期感知類 141
7.3  Lifecycle KTX API 141
第8章  頁面導航 143
8.1  頁面導航原則 143
8.1.1  向上和返回按鈕的邏輯 144
8.1.2  設計導航堆棧 144
8.1.3  針對深層鏈接跳轉的返回處理 144
8.2  實戰Navigation組件 145
8.2.1  一個簡單的示例 145
8.2.2  添加導航目的地 151
8.2.3  構建導航圖 154
8.2.4  在目的地之間跳轉 159
8.3  Navigation KTX API 176
8.3.1  Navigation Runtime KTX 176
8.3.2  Navigation Fragment KTX 177
8.3.3  Navigation UI KTX 180
第9章  ViewModel視圖數據模型 182
9.1  概述 182
9.2  實戰ViewModel 182
9.2.1  處理屏幕旋轉 183
9.2.2  在Fragment之間共享數據 185
9.2.3  AndroidViewModel 187
9.3  與DataBinding組件配合使用 188
第10章  LiveData實時數據 192
10.1  概述 192
10.2  LiveData組件的簡單使用 193
10.3  跨組件數據共享 195
10.4  轉換、獲取、合並LiveData對象 197
10.4.1  轉換LiveData對象類型 197
10.4.2  獲取LiveData對象 198
10.4.3  合並多個LiveData對象 201
10.5  與其他架構組件配合使用 202
10.5.1  LiveData與LifeCycle 202
10.5.2  ViewModel、LiveData與DataBinding 203

第11章  WorkManager任務管理器 207
11.1  概述 207
11.2  添加WorkManager依賴 208
11.3  實戰WorkManager 208
11.3.1  定義任務 209
11.3.2  單次任務的調度 210
11.3.3  周期性任務的調度 210
11.3.4  預約執行的任務 211
11.3.5  為任務添加執行策略 211
11.3.6  為失敗的任務設置重試策略 212
11.3.7  任務的管理 213
11.3.8  鏈式任務流 217
11.3.9  向任務傳遞數據 218
11.3.10  在任務中執行異步操作 220
11.3.11  針對需要長時間執行的任務的處理 221
第12章  Room數據庫組件 224
12.1  概述 224
12.2  Room的簡單使用 225
12.2.1  添加Room依賴 225
12.2.2  設計數據表並實現實體類 226
12.2.3  實現數據庫操作 226
12.3  實體類 228
12.3.1  構建復合主鍵 228
12.3.2  自定義字段/數據表名 228
12.3.3  忽略特定的成員變量 229
12.3.4  定義實體之間的關系 229
12.4  數據訪問對象類 235
12.5  DAO類的實現規範 235
12.6  數據的查詢操作 235
12.6.1  基本數據查詢操作 235
12.6.2  多條件查詢 236
12.6.3  過濾查詢結果 237
12.6.4  數據的插入操作 237
12.6.5  數據的更新操作 238
12.6.6  數據的刪除操作 238
12.7  數據庫的升級 238
12.8  設置預置數據 239
12.9  類型轉換器 240
12.10  與LiveData組件配合使用 241
第13章  Paging分頁加載組件 243
13.1  概述 243
13.2  實戰Paging組件 243
13.2.1  添加依賴項 244
13.2.2  Paging組件的結構 244
13.2.3  構建數據源 245
13.2.4  構建視圖模型 248
13.2.5  構建用戶界面 248
13.2.6  監聽和顯示加載狀態 250




相關書籍

Android Phones For Dummies( 4/e)

作者 Dan Gookin

2022-02-01

iOS Auto Layout 開發秘籍, 2/e

作者 撒敦 (Erica Sadun)

2022-02-01

TQC+ 行動裝置應用程式設計認證指南 Android 6

作者 財團法人中華民國電腦技能基金會

2022-02-01