深入淺出Android Jetpack:原理解析與應用實戰(zhàn)
定 價:89 元
叢書名:移動應用開發(fā)技術(shù)叢書
- 作者:黃林晴 著
- 出版時間:2022/6/1
- ISBN:9787111706151
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TN929.53
- 頁碼:212
- 紙張:
- 版次:
- 開本:16
全書共12章,首先介紹Jetpack的基本知識,然后詳細介紹了架構(gòu)組件Lifecycle、ViewModel、LiveData、ViewBinding、DataBinding、Room、Hilt等,并通過切合實際的需求用例循序漸進地講解了每個組件的使用方法和使用場景。除此之外,還針對當下流行的Kotlin 協(xié)程和Flow進行了講解,讓讀者了解如何使用這些技術(shù)結(jié)合Jetpack組件寫出更加優(yōu)雅的代碼,并演示了實戰(zhàn)項目“出行防疫App”的實現(xiàn)方法。z后介紹了全新的聲明式UI編程——Jetpack Compose。
前言
第1章 認識Jetpack 1
1.1 Android開發(fā)架構(gòu)的發(fā)展歷程 1
1.2 什么是Jetpack 3
1.3 如何構(gòu)建支持Jetpack的項目 4
1.4 小結(jié) 6
第2章 使用Lifecycle,感知生命周期 7
2.1 從廣告引導頁的需求說起 7
2.2 Lifecycle的基本使用 10
2.2.1 使用Lifecycle優(yōu)化廣告引導頁的需求 10
2.2.2 自定義LifecycleOwner 14
2.3 使用Lifecycle解決實際項目中常見的問題 16
2.3.1 Dialog內(nèi)存泄漏問題分析 16
2.3.2 使用Lifecycle打造一個完美的Dialog 18
2.4 原理小課堂 19
2.5 小結(jié) 22
第3章 使用ViewModel管理頁面數(shù)據(jù) 23
3.1 什么是ViewModel 23
3.2 使用ViewModel解決廣告引導頁屏幕旋轉(zhuǎn)問題 26
3.3 ViewModel的生命周期 28
3.4 使用ViewModel實現(xiàn)數(shù)據(jù)共享 31
3.5 原理小課堂 33
3.6 小結(jié) 36
第4章 可觀察的數(shù)據(jù)持有者類LiveData 37
4.1 什么是LiveData 37
4.2 LiveData的基本使用 38
4.3 map與 switchMap 41
4.4 原理小課堂 46
4.5 小結(jié) 49
第5章 視圖綁定組件之ViewBinding 50
5.1 從findViewById說起 50
5.2 ViewBinding 的基本使用 53
5.3 ViewBinding的封裝優(yōu)化 55
5.4 原理小課堂 56
5.5 小結(jié) 58
第6章 數(shù)據(jù)綁定組件之DataBinding 59
6.1 DataBinding的基本使用 59
6.1.1 基礎(chǔ)布局綁定表達式 60
6.1.2 利用DataBinding綁定點擊事件 64
6.1.3 標簽布局使用DataBinding 66
6.2 自定義BindingAdapter 67
6.3 雙向數(shù)據(jù)綁定 70
6.4 DataBinding與 ViewBinding的區(qū)別 73
6.5 原理小課堂 73
6.6 小結(jié) 75
第7章 官方數(shù)據(jù)庫框架之Room 76
7.1 Android數(shù)據(jù)庫ORM框架 76
7.2 使用Room實現(xiàn)登錄賬號列表功能 77
7.2.1 賬號列表的需求設計和數(shù)據(jù)庫設計 77
7.2.2 準備工作 78
7.2.3 定義數(shù)據(jù)實體類 78
7.2.4 定義數(shù)據(jù)庫訪問對象 79
7.2.5 賬號列表的查詢與新增 80
7.2.6 賬號列表的更新與刪除 83
7.3 Room數(shù)據(jù)庫的升級 86
7.4 原理小課堂 88
7.5 小結(jié) 90
第8章 減少手動依賴,探究Hilt 91
8.1 什么是依賴注入 91
8.2 基于Dagger看Hilt 93
8.3 Hilt的基本使用 93
8.3.1 添加依賴 93
8.3.2 依賴注入普通對象 95
8.3.3 依賴注入第三方組件 97
8.3.4 依賴注入架構(gòu)組件 101
8.4 原理小課堂 102
8.5 小結(jié) 104
第9章 優(yōu)雅地實現(xiàn)異步任務:Kotlin協(xié)程與Flow 105
9.1 什么是協(xié)程 105
9.2 使用協(xié)程優(yōu)雅地實現(xiàn)異步任務 106
9.2.1 協(xié)程的基本用法 106
9.2.2 更多構(gòu)建協(xié)程的方式 107
9.2.3 在Retrofit和架構(gòu)組件中使用協(xié)程 113
9.3 Kotlin數(shù)據(jù)流 116
9.3.1 Flow的基本使用 116
9.3.2 探究StateFlow與SharedFlow 120
9.4 原理小課堂 122
9.5 小結(jié) 124
第10章 分頁庫Paging3的使用 125
10.1 Android中分頁功能常見的設計方法 125
10.2 網(wǎng)絡請求的封裝與使用 126
10.3 使用Paging3實現(xiàn)網(wǎng)絡數(shù)據(jù)的分頁加載 129
10.3.1 官方推薦的最佳架構(gòu) 129
10.3.2 PagingSource的定義與使用 131
10.3.3 PagingDataAdapter的定義與使用 133
10.3.4 將結(jié)果顯示在UI上 134
10.3.5 監(jiān)聽加載狀態(tài) 136
10.4 原理小課堂 140
10.5 小結(jié) 143
第11 章 打造一個MVVM架構(gòu)的健康出行App 144
11.1 項目需求設計與可行性分析 144
11.2 組件化結(jié)構(gòu)的設計與搭建 149
11.3 查詢城市數(shù)據(jù) 155
11.3.1 實現(xiàn)邏輯層代碼 156
11.3.2 實現(xiàn)UI層代碼 160
11.4 查詢城市核酸檢測機構(gòu) 165
11.4.1 實現(xiàn)邏輯層代碼 165
11.4.2 實現(xiàn)UI層代碼 167
11.5 查詢疫情風險等級地區(qū) 169
11.5.1 實現(xiàn)邏輯層代碼 169
11.5.2 實現(xiàn)UI層代碼 171
11.6 查詢健康出行政策 176
11.6.1 實現(xiàn)邏輯層代碼 176
11.6.2 實現(xiàn)UI層代碼 179
11.7 小結(jié) 182
第12章 體驗最新響應式編程技術(shù)Jetpack Compose 183
12.1 什么是Jetpack Compose 183
12.2 Compose的基礎(chǔ)知識 184
12.2.1 新建支持Compose的Android 項目 184
12.2.2 可組合函數(shù)與常用注解 187
12.3 Compose基礎(chǔ)組件的使用 188
12.3.1 Compose 文本組件和圖片組件 188
12.3.2 Compose 布局組件 190
12.4 Compose列表組件的使用 192
12.4.1 垂直列表組件Lazy-Column的使用 192
12.4.2 水平列表組件LazyRow的使用 196
12.4.3 網(wǎng)格列表組件Lazy-VerticalGrid的使用 197
12.5 小結(jié) 199