本書介紹了Android開發(fā)的基礎(chǔ)知識與流行框架,內(nèi)容包括Android程序結(jié)構(gòu)與基礎(chǔ)入門、Android程序的界面設(shè)計與控件的使用、Android的事件處理、Activity組件、內(nèi)容提供者、廣播機制、服務(wù)、數(shù)據(jù)存儲技術(shù)、Android網(wǎng)絡(luò)編程技術(shù)、多媒體技術(shù)以及流行的Android開發(fā)框架,如OkHttp、GSON、EventBus、Glide等。書中重要的知識點都配有示例,所有示例均使用Android Studio3.5工具開發(fā)。本書內(nèi)容理論與實踐相結(jié)合,理實一體,任務(wù)驅(qū)動,示例選用的技術(shù)一般為較新的版本,通過需求分析與實現(xiàn)的參考代碼,逐步提高讀者的動手能力。
本書配套有教學(xué)視頻、教學(xué)課件、案例源代碼以及習(xí)題等教學(xué)資源,知識點對應(yīng)的示例都采用較新的技術(shù)實現(xiàn),盡量與企業(yè)崗位需求接軌。
本書可作為高等院校本、?朴嬎銠C相關(guān)專業(yè)的教材,也可作為Android開發(fā)者的培訓(xùn)教材與自學(xué)參考書,非常適合Android開發(fā)入門階段的讀者。
前言
第1章 初識Android開發(fā) 1
本章簡介 1
學(xué)習(xí)目標(biāo) 1
1.1 Android系統(tǒng)概述 1
1.1.1 Android的歷史和發(fā)展 2
1.1.2 Android的特點 3
1.1.3 Android的系統(tǒng)架構(gòu) 3
1.2 搭建Android開發(fā)環(huán)境 5
1.2.1 開發(fā)工具準(zhǔn)備 5
1.2.2 安裝開發(fā)環(huán)境 5
1.3 開發(fā)Android應(yīng)用程序 10
1.3.1 開發(fā)第一個Android應(yīng)用程序 10
1.3.2 Android項目結(jié)構(gòu)分析 14
1.3.3 程序文件分析 16
1.4 資源的管理與引用 18
1.4.1 字符串資源文件 18
1.4.2 顏色資源 19
1.4.3 可繪制對象資源 19
1.4.4 主題與樣式資源 20
1.4.5 布局資源 22
1.5 應(yīng)用程序主題制作 23
1.6 程序的日志 23
1.7 程序調(diào)試 24
1.8 開發(fā)一個歡迎界面 26
本章習(xí)題 27
第2章 Android控件與界面交互 28
本章簡介 28
學(xué)習(xí)目標(biāo) 28
2.1 界面布局概述 28
2.1.1 View和ViewGroup概述 28
2.1.2 布局聲明 29
2.1.3 布局的類型 30
2.1.4 界面中的尺寸 31
2.2 常見的UI控件 32
2.2.1 TextView及其子類 32
2.2.2 ImageView及其子類 35
2.2.3 RadioButton和CheckBox 39
2.2.4 ProgressBar及其子類 42
2.3 消息框與對話框 44
2.3.1 消息框 44
2.3.2 對話框 45
2.3.3 其他對話框 49
2.4 Android事件處理 51
2.4.1 事件處理概述 51
2.4.2 基于監(jiān)聽的事件處理 51
2.4.3 基于回調(diào)的事件處理 56
2.5 系統(tǒng)配置與屏幕方向監(jiān)聽 57
2.5.1 響應(yīng)系統(tǒng)設(shè)置的機制和方法 57
2.5.2 監(jiān)聽屏幕方向的改變 58
本章習(xí)題 60
第3章 Android界面布局 61
本章簡介 61
學(xué)習(xí)目標(biāo) 61
3.1 Android布局管理 61
3.1.1 LinearLayout(線性布局) 61
3.1.2 RelativeLayout(相對布局) 64
3.1.3 TableLayout(表格布局) 65
3.1.4 FrameLayout(幀布局) 67
3.1.5 ConstraintLayout(約束布局) 68
3.2 AdapterView及其子類 71
3.2.1 ListView 72
3.2.2 Adapter接口及其實現(xiàn)類 73
3.3 使用RecyclerView創(chuàng)建列表 82
3.3.1 RecyclerView介紹 82
3.3.2 使用RecyclerView重構(gòu)選課界面 83
3.4 菜單 86
3.4.1 選項菜單 86
3.4.2 上下文菜單 89
3.4.3 彈出式菜單 91
本章習(xí)題 92
第4章 Activity組件 93
本章簡介 93
學(xué)習(xí)目標(biāo) 93
4.1 Activity基礎(chǔ) 93
4.1.1 認(rèn)識Activity 93
4.1.2 創(chuàng)建和配置Activity 94
4.2 Activity的生命周期 99
4.2.1 Activity的生命周期簡介 99
4.2.2 生命周期的回調(diào)方法 106
4.3 Intent的使用 107
4.3.1 Intent 107
4.3.2 IntentFilter 108
4.4 Activity之間的數(shù)據(jù)傳遞 109
4.4.1 Activity之間交換數(shù)據(jù) 109
4.4.2 數(shù)據(jù)回傳 112
4.5 Activity的啟動模式概述 115
4.5.1 Android中的任務(wù)棧 115
4.5.2 Activity的4種啟動模式 116
4.6 Fragment 118
4.6.1 認(rèn)識Fragment 118
4.6.2 Fragment的生命周期 119
4.6.3 Fragment的加載 121
4.7 Fragment傳值 126
4.8 學(xué)生信息查詢 129
本章習(xí)題 131
第5章 Android數(shù)據(jù)存儲 133
本章簡介 133
學(xué)習(xí)目標(biāo) 133
5.1 數(shù)據(jù)存儲方式概述 133
5.2 文件存儲 134
5.2.1 外部存儲 134
5.2.2 內(nèi)部存儲 139
5.2.3 XML文件操作 141
5.3 SharedPreferences存儲 148
5.3.1 SharedPreferences存儲數(shù)據(jù) 148
5.3.2 SharedPreferences讀取數(shù)據(jù) 149
5.4 SQLite數(shù)據(jù)庫存儲 154
5.4.1 SQLiteDatabase簡介 155
5.4.2 創(chuàng)建數(shù)據(jù)庫和表 156
5.4.3 數(shù)據(jù)操作方法 158
5.5 使用Room操作數(shù)據(jù)庫 162
5.6 實現(xiàn)學(xué)生信息管理 164
本章習(xí)題 171
第6章 ContentProvider的使用 173
本章簡介 173
學(xué)習(xí)目標(biāo) 173
6.1 ContentProvider介紹 173
6.1.1 ContentProvider中的方法 174
6.1.2 URI簡介 175
6.1.3 使用ContentResolver操作數(shù)據(jù) 177
6.2 使用ContentProvider共享數(shù)據(jù) 182
6.2.1 創(chuàng)建ContentProvider子類 182
6.2.2 使用ContentResolver調(diào)用方法 185
6.3 ContentObserver 187
6.3.1 ContentObserver的工作原理 187
6.3.2 ContentObserver的使用 188
6.4 Application全局應(yīng)用 196
6.4.1 Application簡介 196
6.4.2 使用自定義Application類 197
6.5 讀取系統(tǒng)短信 198
6.6 添加聯(lián)系人 199
本章習(xí)題 200
第7章 Android網(wǎng)絡(luò)編程 202
本章簡介 202
學(xué)習(xí)目標(biāo) 202
7.1 網(wǎng)絡(luò)編程基礎(chǔ) 202
7.1.1 網(wǎng)絡(luò)通信協(xié)議 202
7.1.2 使用Socket進行通信 204
7.1.3 使用URL訪問網(wǎng)絡(luò)資源 208
7.2 使用HTTP訪問網(wǎng)絡(luò) 213
7.2.1 HTTP簡介 213
7.2.2 HttpURLConnection 214
7.2.3 WebView的用法 218
7.2.4 OkHttp 220
7.3 解析JSON格式數(shù)據(jù) 223
7.3.1 JSON簡介 223
7.3.2 使用JSONObject對象 225
7.3.3 使用GSON庫 227
7.4 Handler 228
7.4.1 Android中的多線程 228
7.4.2 Handler與界面線程的通信 230
7.5 異步任務(wù)(AsyncTask) 232
7.6 新聞列表客戶端 239
本章習(xí)題 243
第8章 圖像與多媒體應(yīng)用 245
本章簡介 245
學(xué)習(xí)目標(biāo) 245
8.1 圖像與繪圖 245
8.1.1 Android中圖像的處理 245
8.1.2 繪圖 247
8.1.3 Matrix類 249
8.2 動畫 250
8.2.1 逐幀動畫 250
8.2.2 補間動畫 251
8.2.3 屬性動畫 257
8.2.4 使用SurfaceView實現(xiàn)動畫 259
8.3 音頻播放控件 260
8.3.1 使用MediaPlayer播放音頻 260
8.3.2 使用SoundPool播放音效 266
8.3.3 使用MediaRecorder錄制音頻 269
8.4 視頻播放控件 274
8.4.1 VideoView播放視頻 274
8.4.2 SurfaceView播放視頻 276
本章習(xí)題 280
第9章 廣播機制與服務(wù)組件 282
本章簡介 282
學(xué)習(xí)目標(biāo) 282
9.1 廣播機制 282
9.1.1 廣播的使用 283
9.1.2 廣播的類型 284
9.1.3 廣播接收者 285
9.2 自定義廣播 287
9.2.1 全局廣播 287
9.2.2 本地廣播 291
9.3 Service概述 293
9.3.1 創(chuàng)建和使用Service 293
9.3.2 IntentService的使用 298
9.4 服務(wù)通信 300
9.5 Service的生命周期 304
本章習(xí)題 310
第10章 Android框架的應(yīng)用 312
本章簡介 312
學(xué)習(xí)目標(biāo) 312
10.1 EventBus框架 312
10.1.1 EventBus簡介 312
10.1.2 EventBus的使用 314
10.2 Glide框架 325
10.2.1 Glide框架簡介 325
10.2.2 Glide框架的使用 326
10.3 ORM框架 330
10.3.1 GreenDao簡介 330
10.3.2 GreenDao的使用 331
10.4 ViewBinding視圖綁定 333
本章習(xí)題 334
參考文獻 336