Android Jetpack 開發:原理解析與應用實戰

Android Jetpack 開發:原理解析與應用實戰

作者: 黃林晴
出版社: 機械工業
出版在: 2022-06-01
ISBN-13: 9787111706151
ISBN-10: 7111706153
裝訂格式: 平裝
總頁數: 212 頁





內容描述


全書共12章,首先介紹Jetpack的基本知識,然後詳細介紹了架構組件Lifecycle、LiveData、ViewBinding、
DataBinding、Room、Hilt等,並通過切合實際的需求用例循序漸進地講解了每個組件的使用方法和使用場景。
除此之外,還針對當下流行的Kotlin 協程和Flow進行了講解,
讓讀者了解如何使用這些技術結合Jetpack組件寫出更加優雅的代碼,
並演示了實戰項目“出行防疫App”的實現方法。
z後介紹了全新的聲明式UI編程——Jetpack Compose。


目錄大綱


前言
第1章認識Jetpack 1
1.1 Android開發架構的發展歷程 1
1.2 什麼是Jetpack 3
1.3 如何構建支持Jetpack的項目 4
1.4 小結 6
第2章使用Lifecycle,感知生命週期 7
2.1 從廣告引導頁的需求說起 7
2.2 Lifecycle的基本使用10
2.2.1 使用Lifecycle優化廣告引導頁的需求10
2.2.2 自定義LifecycleOwner 14
2.3 使用Lifecycle解決實際項目中常見的問題16
2.3.1 Dialog內存洩漏問題分析16
2.3.2 使用Lifecycle打造一個完美的Dialog 18
2.4 原理小課堂19
2.5 小結22
第3章使用ViewModel管理頁面數據23
3.1 什麼是ViewModel 23
3.2 使用ViewModel解決廣告引導頁屏幕旋轉問題26
3.3 ViewModel的生命週期28
3.4 使用ViewModel實現數據共享31
3.5 原理小課堂33
3.6 小結36
第4章可觀察的數據持有者類LiveData 37
4.1 什麼是LiveData 37
4.2 LiveData的基本使用38
4.3 map與switchMap 41
4.4 原理小課堂46
4.5 小結49
第5章視圖綁定組件之ViewBinding 50
5.1 從findViewById說起50
5.2 ViewBinding 的基本使用53
5.3 ViewBinding的封裝優化55
5.4 原理小課堂56
5.5 小結58
第6章數據綁定組件之DataBinding 59
6.1 DataBinding的基本使用59
6.1.1 基礎佈局綁定表達式60
6.1.2 利用DataBinding綁定點擊事件64
6.1.3 標籤佈局使用DataBinding 66
6.2 自定義BindingAdapter 67
6.3 雙向數據綁定70
6.4 DataBinding與ViewBinding的區別73
6.5 原理小課堂73
6.6 小結75
第7章官方數據庫框架之Room 76
7.1 Android數據庫ORM框架76
7.2 使用Room實現登錄賬號列表功能77
7.2.1 賬號列表的需求設計和數據庫設計77
7.2.2 準備工作78
7.2.3 定義數據實體類78
7.2.4 定義數據庫訪問對象79
7.2.5 賬號列表的查詢與新增80
7.2.6 賬號列表的更新與刪除83
7.3 Room數據庫的升級86
7.4 原理小課堂88
7.5 小結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 依賴注入架構組件101
8.4 原理小課堂102
8.5 小結104
第9章優雅地實現異步任務:Kotlin協程與Flow 105
9.1 什麼是協程105
9.2 使用協程優雅地實現異步任務106
9.2.1 協程的基本用法106
9.2.2 更多構建協程的方式107
9.2.3 在Retrofit和架構組件中使用協程113
9.3 Kotlin數據流116
9.3.1 Flow的基本使用116
9.3.2 探究StateFlow與SharedFlow 120
9.4 原理小課堂122
9.5 小結124
第10章分頁庫Paging3的使用125
10.1 Android中分頁功能常見的設計方法125
10.2 網絡請求的封裝與使用126
10.3 使用Paging3實現網絡數據的分頁加載129
10.3.1 官方推薦的最佳架構129
10.3.2 PagingSource的定義與使用131
10.3.3 PagingDataAdapter的定義與使用133
10.3.4 將結果顯示在UI上134
10.3.5 監聽加載狀態136
10.4 原理小課堂140
10.5 小結143
第11 章打造一個MVVM架構的健康出行App 144
11.1 項目需求設計與可行性分析144
11.2 組件化結構的設計與搭建149
11.3 查詢城市數據155
11.3.1 實現邏輯層代碼156
11.3.2 實現UI層代碼160
11.4 查詢城市核酸檢測機構165
11.4.1 實現邏輯層代碼165
11.4.2 實現UI層代碼167
11.5 查詢疫情風險等級地區169
11.5.1 實現邏輯層代碼169
11.5.2 實現UI層代碼171
11.6 查詢健康出行政策176
11.6.1 實現邏輯層代碼176
11.6.2 實現UI層代碼179
11.7 小結182
第12章體驗最新響應式編程技術Jetpack Compose 183
12.1 什麼是Jetpack Compose 183
12.2 Compose的基礎知識184
12.2.1 新建支持Compose的Android 項目184
12.2.2 可組合函數與常用註解187
12.3 Compose基礎組件的使用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 網格列表組件Lazy-VerticalGrid的使用197
12.5 小結199


作者介紹


黃林晴
資深Android技術專家,Android領域的技術佈道者,目前是某軟件研發公司移動端組負責人。
從事移動開發多年,開發過多款移動應用程序,擁有豐富的項目經驗。
華為云云享專家,騰訊雲社區特邀評審,曾受Google GDG(Google開發者社區)邀請參加技術分享。
CSDN博客專家,博客文章閱讀量超過120萬,在行業裡有較高的知名度。
微信公眾號“Android技術圈”的創始人,長期堅持發表Android相關的技術文章,深受讀者歡迎。




相關書籍

Android Wireless Application Development Volume II: Advanced Topics, 3/e (Paperback)

作者 Lauren Darcey Shane Conder

2022-06-01

Beginning Swift Programming (Paperback)

作者 Wei-Meng Lee

2022-06-01

Android 7應用程序開發教程

作者 李波

2022-06-01