本書基于Android 10和Android Studio 4.1集成開發(fā)環(huán)境編寫,系統(tǒng)地介紹Android移動應用開發(fā)的基礎知識。
本書共14章,分別介紹了認識Android、創(chuàng)建Android項目、設計用戶界面、UI控件設計、Activity與Fragment、列表與適配器、菜單與對話框設計、線程間的通信與異步機制、Android本地存儲、Service與后臺服務設計、BroadcastReceiver與廣播通信、ContentProvider與應用間數據共享、網絡連接與管理、Android性能分析與測試。
本書以任務貫穿全程,結構清晰、語言簡潔,易于學習,非常適合初學Android的在校學生和希望系統(tǒng)掌握Android編程技能的開發(fā)人員閱讀。
以實際任務貫穿全書,校企“雙元”合作開發(fā)
配套拓展微課視頻,支持線上線下混合教學
配套電子活頁式、工作手冊式任務指導書
作者為名校名師,內容講解詳細,每個章節(jié)都有精心選擇任務案例,突出知識講解的完整性和實用性
李維勇
南京信息職業(yè)技術學院網絡與通信學院 副書記 副院長
副教授 系統(tǒng)分析師
研究方向:移動互聯(lián)應用技術、云服務應用技術
中國計算機學會職業(yè)教育發(fā)展委員會委員,江蘇省高!扒嗨{工程”云計算技術與應用優(yōu)秀教學團隊成員,中國軟件杯大學生軟件設計大賽一等獎指導教師,俄羅斯喀山未來技能大賽移動應用開發(fā)賽項專家。
目錄
第 1章 認識Android 1
1.1 Android簡介 1
1.1.1 Android的由來 1
1.1.2 Android的發(fā)展歷程 2
1.1.3 Android的應用領域 3
1.2 Android學習指導 4
1.2.1 為什么要學習Android 4
1.2.2 Android的學習路徑 4
1.2.3 Android的學習資源 5
任務1.1 搭建Android集成開發(fā)環(huán)境 7
1.3 Android Studio使用入門 7
1.3.1 Android Studio快速入門 7
1.3.2 配置Android Studio 9
1.3.3 Android SDK升級管理 12
本章小結 13
動手實踐 13
第 2章 創(chuàng)建Android項目 14
任務2.1 使用向導創(chuàng)建Android項目 14
2.1 Android項目架構解析 16
2.1.1 Android的項目組成 16
2.1.2 項目文件解析 19
2.1.3 清單文件解析 21
任務2.2 設計App閃屏界面 22
2.2 Android資源配置與管理 23
2.2.1 資源的種類 23
2.2.2 引用資源 24
2.2.3 管理資源 26
任務2.3 托管項目至GitHub 29
2.3 Android代碼調試 30
2.3.1 Logcat與系統(tǒng)日志 30
2.3.2 啟動調試 32
2.3.3 執(zhí)行調試 33
本章小結 34
動手實踐 34
第3章 設計用戶界面 35
3.1 認識布局 35
3.1.1 UI概覽 35
3.1.2 布局規(guī)范 37
3.2 創(chuàng)建布局 38
3.2.1 創(chuàng)建XML布局文件 38
3.2.2 可視化界面編輯器 39
3.2.3 視圖基本屬性與事件 41
任務3.1 設計App登錄界面 43
3.3 布局設計 43
3.3.1 線性布局 44
3.3.2 約束布局 45
任務3.2 設計App“我”界面 48
3.4 優(yōu)化布局 49
3.4.1 復用布局 49
3.4.2 Layout Inspector 51
本章小結 52
動手實踐 52
第4章 UI控件設計 53
4.1 文本控件設計 53
4.1.1 控件設計基本步驟 53
4.1.2 TextView 54
4.1.3 EditText 55
4.1.4 AutoCompleteTextView和MultiAuto
CompleteTextView 56
4.2 按鈕控件設計 58
4.2.1 Button 58
4.2.2 ToggleButton 61
4.3 圖像控件設計 62
4.3.1 ImageView 62
4.3.2 ImageSwitcher 64
任務4.1 設計相冊大圖輪播界面 65
4.4 選擇控件和開關控件設計 66
4.4.1 RadioButton與RadioGroup 66
4.4.2 CheckBox 67
4.4.3 Switch 68
4.5 進度條控件設計 69
4.5.1 ProgressBar 69
4.5.2 SeekBar 70
任務4.2 設計音樂播放器播放界面 71
本章小結 71
動手實踐 72
第5章 Activity與Fragment 73
5.1 初識Activity 73
5.1.1 Activity的創(chuàng)建與注冊 74
5.1.2 Activity的生命周期 76
5.1.3 用戶界面的跳轉及數據傳遞 79
任務5.1 設計App注冊界面并跳轉到登錄界面 84
5.2 Fragment布局 85
5.2.1 初識Fragment 85
5.2.2 Fragment的創(chuàng)建與引用 86
5.2.3 Fragment的管理 89
5.2.4 Fragment與Activity通信 93
任務5.2 設計App引導頁面 95
5.3 Intent與應用間的通信 96
5.3.1 初識Intent 96
5.3.2 Intent對象 97
5.3.3 Intent解析 100
本章小結 104
動手實踐 104
第6章 列表與適配器 106
6.1 適配器設計 106
6.1.1 初識適配器 106
6.1.2 常用適配器設計 107
6.1.3 適配器應用 114
任務6.1 設計音樂播放器歌曲列表界面 118
6.2 CardView與RecyclerView 119
6.2.1 CardView 119
6.2.2 RecyclerView 120
6.2.3 RecyclerView+SwipeRefreshLayout應用 126
任務6.2 設計App“通訊錄”界面 130
6.3 ViewPager與PagerAdapter 131
6.3.1 ViewPager 131
6.3.2 PagerAdapter 133
6.3.3 TabLayout+ViewPager+Fragment
應用 135
本章小結 139
動手實踐 139
第7章 菜單與對話框設計 140
7.1 菜單設計 140
7.1.1 初識菜單 140
7.1.2 創(chuàng)建菜單資源 141
7.1.3 設計選項菜單 144
7.1.4 設計側滑菜單 146
任務7.1 設計音樂播放器菜單 149
7.2 對話框設計 150
7.2.1 消息設計 150
7.2.2 對話框設計 151
7.2.3 通知設計 154
7.3 應用欄設計 159
7.3.1 初識應用欄 159
7.3.2 創(chuàng)建應用欄 159
7.3.3 設置應用欄 160
7.3.4 CoordinatorLayout+AppBarLayout應用 164
任務7.2 設計音樂播放器歌手詳情界面 166
本章小結 167
動手實踐 167
第8章 線程間的通信與異步機制 168
8.1 應用程序的消息處理機制 168
8.1.1 線程與單線程模型 168
8.1.2 Handler消息傳遞機制 170
8.1.3 Thread+Handler+Message應用 174
任務8.1 實現(xiàn)音樂播放器本地音樂的異步加載功能 177
8.2 異步任務封裝類 178
8.2.1 HandlerThread 178
8.2.2 AsyncTask 182
本章小結 186
動手實踐 186
第9章 Android本地存儲 187
9.1 SharedPreferences與PreferenceFragment 187
9.1.1 使用SharedPreferences存取數據 188
9.1.2 使用PreferenceFragment設計設置界面 189
任務9.1 設計App“通用”設置界面 196
9.2 Android文件存儲 197
9.2.1 內部文件存儲 197
9.2.2 外部文件存儲 200
9.3 SQLite數據庫存儲 204
9.3.1 SQLite與SQLiteDatabase 205
9.3.2 SQLiteOpenHelper 210
9.3.3 使用Loader異步加載數據 212
任務9.2 保存音樂播放器播放記錄 215
本章小結 216
動手實踐 216
第 10章 Service與后臺服務設計 217
10.1 創(chuàng)建Service 217
10.1.1 初識Service 217
10.1.2 Service的創(chuàng)建與注冊 218
10.1.3 Service的生命周期 219
10.2 IntentService 221
10.3 綁定型Service 222
10.3.1 綁定型Service的主要用途 222
10.3.2 綁定到Service 223
10.3.3 使用Messenger通信 225
任務10.1 實現(xiàn)音樂播放器后臺播放功能 228
10.4 Android接口定義語言 228
10.4.1 創(chuàng)建AIDL 228
10.4.2 實現(xiàn)接口 231
10.4.3 公開接口 231
10.4.4 通過IPC傳遞對象 232
10.4.5 調用IPC方法 234
本章小結 236
動手實踐 237
第 11章 BroadcastReceiver與廣播通信 238
11.1 發(fā)送與監(jiān)聽廣播 238
11.1.1 初識BroadcastReceiver 238
11.1.2 創(chuàng)建BroadcastReceiver 239
11.1.3 注冊廣播 240
11.1.4 發(fā)送廣播 241
11.2 EventBus事件管理 242
11.2.1 EventBus的架構 242
11.2.2 EventBus的使用 243
任務11.1 實現(xiàn)音樂播放器后臺播放的控制 245
11.3 使用App Widgets創(chuàng)建桌面應用 245
11.3.1 認識App Widgets 245
11.3.2 設計App Widgets布局 246
11.3.3 實現(xiàn)AppWidgetProviderInfo 247
11.3.4 擴展AppWidgetProvider 248
11.3.5 聲明App Widgets 251
11.3.6 實現(xiàn)Configuration Activity 251
任務11.2 實現(xiàn)音樂播放器桌面應用 252
本章小結 253
動手實踐 253
第 12章 ContentProvider與應用間數據共享 254
12.1 訪問系統(tǒng)ContentProvider 254
12.1.1 初識ContentProvider 254
12.1.2 查詢ContentProvider 255
12.1.3 修改ContentProvider中的數據 257
12.2 自定義ContentProvider 258
12.2.1 自定義ContentProvider的步驟 258
12.2.2 設計數據存儲 259
12.2.3 設計內容URI 260
12.2.4 實現(xiàn)ContentProvider 264
12.3 存儲訪問框架 267
12.3.1 初識SAF 267
12.3.2 SAF數據模型 268
12.3.3 編寫客戶端應用 269
任務12.1 實現(xiàn)微信朋友圈導入本地相冊 273
12.4 使用ContentObserver監(jiān)聽數據變化 274
12.4.1 初識ContentObserver 274
12.4.2 實現(xiàn)ContentObserver 274
12.4.3 觀察URI 274
本章小結 276
動手實踐 276
第 13章 網絡連接與管理 277
13.1 使用ConnectivityManager管理網絡 277
13.1.1 初識ConnectivityManager 277
13.1.2 網絡接入管理 278
13.1.3 監(jiān)聽網絡連接狀態(tài) 280
13.2 使用HttpURLConnection訪問網絡 281
13.2.1 HTTP 281
13.2.2 HttpURLConnection的特點 283
13.2.3 創(chuàng)建HttpURLConnection連接 284
13.2.4 HttpURLConnection數據交換 286
任務13.1 實現(xiàn)音樂播放器搜索網絡音樂 290
13.3 JSON數據解析 290
13.3.1 JSON與XML對比 290
13.3.2 JSON數據結構 292
13.3.3 解析JSON 294
任務13.2 實現(xiàn)音樂播放器加載歌詞 301
本章小結 301
動手實踐 302
第 14章 Android性能分析與測試 303
14.1 應用性能分析 303
14.1.1 啟動Android Profiler 303
14.1.2 檢查CPU活動 304
14.1.3 查看堆和內存分配 306
14.1.4 檢查網絡流量 307
14.2 測試應用 309
14.2.1 測試概述 309
14.2.2 單元測試 310
14.2.3 界面測試 313
任務14.1 對音樂播放器基于MTC測試 315
本章小結 316
動手實踐 316