深入淺出 Android Jetpack

蕭文翰

  • 出版商: 清華大學
  • 出版日期: 2022-02-01
  • 定價: $474
  • 售價: 8.5$403
  • 語言: 簡體中文
  • ISBN: 7302596107
  • ISBN-13: 9787302596103
  • 相關分類: Android
  • 立即出貨

  • 深入淺出 Android Jetpack-preview-1
  • 深入淺出 Android Jetpack-preview-2
  • 深入淺出 Android Jetpack-preview-3
深入淺出 Android Jetpack-preview-1

買這商品的人也買了...

商品描述

本書系統地講解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