內容簡介
Android移動應用開發是移動應用開發領域的熱點。本書介紹Android移動應用開發的核心技術,具體包括Android的開發環境、Kotlin基礎、Activity組件、界面開發、併發處理、廣播機制、Service組件、網絡應用、數據的持久化處理、ContentProvider組件,以及Android JetPack的應用開發。
為了使讀者更好地理解和掌握Android移動開發技術,本書通過翔實、豐富的項目應用實例將相應的知識點串聯起來,從簡單到複雜,從基礎應用到綜合項目開發層層推進。為了符合Android移動開發的發展趨勢,採用Kotlin貫穿全書。
本書可作為普通高校本科”移動應用開發”課程的教材,也可供移動應用開發人員學習和參考。
目錄
第1章 Android的開發環境1
1 1Android移動開發概述1
1 1 1Android的發展1
1 1 2Android平臺的架構2
1 2開發環境和開發工具4
1 3創建第一個Android項目5
1 3 1創建新的項目5
1 3 2啟動模擬器6
1 3 3運行第一個項目9
習題112第2章 Kotlin基礎14
2 1Kotlin概述14
2 2第一個Kotlin程序16
2 3函數18
2 4變量和數據類型19
2 4 1變量19
2 4 2數據類型的種類19
2 4 3數據類型的轉換20
2 4 4可空類型的處理21
2 4 5數組和集合類型22
2 5操作符和表達式24
2 6控制結構26
2 7Lambda表達式30
2 7 1Lambda表達式的應用30
2 7 2常見的標準函數和Lambda表達式31
2 8面向對象編程33
2 8 1包和
目錄33
2 8 2類和對象33
2 8 3繼承性35
2 8 4接口36
2 9異常處理37
習題238第3章 Android的Activity組件41
3 1Activity的創建41
3 2Activity和Intent42
3 2 1顯式Intent43
3 2 2隱式Intent46
3 3Activity之間的數據傳遞50
3 3 1傳遞常見數據50
3 3 2Serializable對象的傳遞54
3 3 3Parcelable對象的傳遞56
3 3 4數據的返回60
3 4Activity的生命週期64
3 4 1Activity的返回棧64
3 4 2Activity的啟動方式64
3 4 3Activity的生命週期70
3 5擲骰子遊戲76
習題382第4章 Android的界面開發86
4 1JetPack Compose組件86
4 1 1可組合函數和預覽函數86
4 1 2Modifier修飾符88
4 1 3Compose常見的UI組件92
4 1 4ConstraintLayout109
4 2搭建Scaffold111
4 3Compose組件的狀態管理和重組124
4 3 1可組合項的狀態124
4 3 2無狀態的可組合函數和有狀態的可組合函數126
4 3 3狀態提升127
4 3 4狀態丟失和狀態保留129
4 3 5狀態容器132
4 4ViewModel組件133
4 4 1MVVM模式135
4 4 2MVI模式138
4 5Navigation組件143
4 5 1頁面導航的實現144
4 5 2在目的地之間安全傳遞數據147
4 6心理測試移動應用實例150
4 6 1項目說明150
4 6 2心理測試移動應用的功能實現150
習題4168第5章 Android的併發處理169
5 1多線程169
5 2Handler機制171
5 3協程174
5 4Compose的附帶效應180
5 4 1附帶效應概述180
5 4 2LaunchedEffect和rememberUpdatedState182
5 4 3DisposableEffect和Lifecycle185
5 4 4SideEffect190
5 4 5produceState和derivedStateOf193
5 5RxJava庫實現異步操作198
5 5 1Observer模式198
5 5 2RxJava的相關概念200
5 6歌詞同步播放204
習題5209第6章 Android的廣播機制212
6 1BroadcastReceiver組件212
6 2發送廣播215
6 2 1標準廣播215
6 2 2有序廣播216
習題6222第7章 執行後台任務224
7 1Service組件224
7 2Service的生命週期229
7 3Activity和Service的通信230
7 4Notification通知和前臺服務234
7 4 1Notification234
7 4 2前臺服務237
7 5WorkManager組件244
7 5 1WorkManager的基本使用方法245
7 5 2任務鏈251
習題7257第8章 Android的網絡應用259
8 1網絡訪問相關配置259
8 2WebView組件260
8 3使用HttpURLConnection訪問網絡資源263
8 4JSON數據的解析269
8 4 1JSON格式269
8 4 2JSONObject解析JSON數據270
8 4 3GSON解析JSON數據274
8 5使用Retrofit庫訪問網絡資源277
8 6智能聊天移動應用實例289
8 6 1功能需求分析和設計289
8 6 2系統的實現291
習題8302第9章 數據的持久化處理和ContentProvider組件305
9 1DataStore存儲處理305
9 2文件處理320
9 3Room組件332
9 3 1用Room實現數據庫的基本操作333
9 3 2用Room實現遷移數據庫341
9 4ContentProvider組件347
9 4 1創建ContentProvider組件348
9 4 2使用ContentProvider組件354
9 5調用相機和媒體庫359
9 5 1運行時權限359
9 5 2拍照和顯示媒體庫的圖片365
9 5 3訪問媒體庫中的視頻369
習題9374第10章 Paging組件376
10 1分頁組件概述376
10 2分頁處理378
習題10391參考文獻392
前言/序言
近年來,移動互聯網的發展非常迅猛,影響著人們生活的方方面面。作為兩大主流移動操作系統平臺之一的Android也在不斷發展,新技術、新特色層出不窮,市場份額已在2014年超越iOS平臺。Kotlin具有簡潔、易學、安全、快捷、開源等特點,是Android移動應用開發的利器;此外,Android移動應用的架構設計為移動應用的開發奠定了基礎,MVVM(ModelViewViewModel)和MVI(ModelViewIntent)成為移動開發的兩大主流架構,2018年,由谷歌(Google)公司推出的Android JetPack具有架構組件,能協助開發者快速搭建基於MVVM和MVI的Android移動應用。5G技術的不斷發展,為基於Android平臺的移動終端提供了更快的網絡服務,Retrofit 2 0 HTTP 網絡請求框架等一系列產品讓開發移動互聯網應用更加方便簡單,特別是RxJava 3 0框架在異步流的處理方面有著絕對的優勢,可以更快捷地處理網絡併發數據。
本書作者在Android移動應用開發的教學和科研實踐過程中發現了一些更方便、更快捷,讓開發流程更加清晰的方法,於是萌生了編寫本書的想法。本書基於Android 14 0版本,採用了官方推薦的Android Studio開發工具,並採用Kotlin進行案例介紹。
本書分為10章,循序漸進地闡述了Android的相關知識,結合案例將相關知識點進行實踐應用,通過每章 的習題強化對概念的理解和掌握。作者的個人CSDN博客也提供了額外移動應用案例的詳細介紹。
本書涉及的知識點包括Android概述、Kotlin基礎和面向對象編程、Android的四大組件(活動、消息接收器、服務、內容提供者)、MVVM和MVI開發模式在移動應用開發中的應用、基於Compose組件的Android的界面開發、Android的併發處理、Android的持久化處理,並將Android JetPack開發套件與移動應用的各個環節 銜接起來。上述知識點並沒有按照傳統方式獨立介紹,而是從實際應用出發,將知識點進行整合,採用多種方式進行介紹,突出重點知識和核心知識,避免大而全的介紹。由於Kotlin的知識點非常豐富,不可能用很少的篇幅介紹完整,因此本書第2章 在介紹Kotlin基礎時,側重Kotlin在移動應用開發時常見的知識點,例如對Kotlin基本語法和Kotlin面向對象技術開展介紹,特別對移動應用開發時大量使用的函數式編程進行深入介紹。本書根據功能關聯性,將相關的知識點進行融合。例如,第4章 介紹Android的界面開發時,不僅介紹了Compose組件,還介紹了承擔業務邏輯的ViewModel組件,並介紹了MVVM和MVI模式在移動應用開發中的應用。第8章 介紹Android的網絡應用時,不但介紹傳統的網絡應用方式(WebView組件加載網頁和HttpURLConnection實現基於HTTP進行網絡處理),還引入Retrofit 2 0框架實現網絡處理。由於網絡處理經常涉及JSON數據解析和網絡訪問的異步處理,作者將GSON庫和RxJava 3 0庫在網絡訪問的異步流處理的知識點在該章 進行介紹。根據功能類似性,本書將相關知識點對比介紹。例如,在介紹Android的併發處理時,介紹線程、Handler消息處理機制、異步任務、Kotlin協程和RxJava3處理異步流的實現。在介紹Android持久化處理時,介紹DataStore、文件處理和Room組件處理SQLite數據庫,使讀者充分瞭解3種進行持久化處理的技術特點。本書將所講知識點融入同一個應用實例中,採用層層推進的方式展開。例如,在同一個移動應用案例中結合ViewModel組件、Navigation組件、持久化處理的Room組件、後台任務處理的WorkManager組件、分頁的Paging組件等Android JetPack開發套件的組件,使讀者對所學知識有更深入的理解。
本書提供了具有實際意義的移動應用案例,如擲骰子遊戲、心理測試、歌詞同步播放、智能聊天、調用相機和相冊、播放媒體庫視頻、在線圖片添加水印、在線視頻播放等具有實踐意義的移動應用案例。
本書課後練習配套答案、課件等學習資源可以在清華大學出版社的官方網站或掃描下方的二維碼下載使用。
本書由南昌大學陳軼編著。另外,南昌大學的武友新、江順亮、黃偉、徐子晨教授,及劉捷、劉萍、王煒立、文喜老師在本書的編寫過程中給予了支持和幫助,在此表示深深的感謝。此外,還要衷心感謝清華大學出版社的相關編校人員,非常佩服他們的專業和敬業精神。
由於時間和編者學識有限,書中不足之處在所難免,敬請大家批評指正。
陳軼2025年3月
詳細資料或其他書籍請至台灣高等教育出版社查詢,查後請於客服中心或Line或本社留言板留言,我們即儘速上架。