內容簡介
本書基於Android Studio集成開發工具,循序漸進地介紹了
Android應用程式開發的基本內容。本書共11章,第1章為Android入門概述;第2章~第10章以項目的形式,分別介紹了圖形界面、Activity與Intent、資料庫與ContentProvider、數據存儲、Service、BroadcastReceiver、多執行緒、網路編程和串口編程。其中,大部分項目通過需求分析、界面設計、實施等環節,逐步引導讀者完成項目操作,同時,在每章的後半部分,講解了對應項目所用到的基本概念與功能,並通過章末的實訓環節加深理解;第11章為綜合實訓,旨在通過一個完整的實訓項目鞏固前面所學的知識。
本書內容翔實、語言精練,既可以作為高等院校、高等職業院校計算機、物聯網等專業的教材,也可以作為移動互聯開發人員參考用書。
目錄
第1章 Android入門概述 1
1.1 Android基本知識 1
1.1.1 Android SDK與API Level對應關係 1
1.1.2 Android架構 2
1.2 搭建開發環境 6
1.3 HelloAndroid入門項目 7
1.3.1 需求分析 7
1.3.2 實施 8
1.4 Android項目結構分析 15
1.5 Android學習資料 16
1.6 練習題 17
1.7 作業 17
第2章 圖形界面——計算器項目 18
2.1 需求分析 18
2.2 界面設計 18
2.3 實施 19
2.3.1 創建項目 19
2.3.2 界面實現 19
2.3.3 Java代碼 23
2.3.4 運行測試 24
2.4 界面設計基礎 24
2.4.1 View和ViewGroup 24
2.4.2 基本概念 25
2.4.3 共有屬性 26
2.5 事件處理 29
2.5.1 設定控制項的onClick屬性 29
2.5.2 使用匿名類實現監聽器接口 30
2.5.3 使用螢幕類實現監聽器接口 30
2.6 布局 31
2.6.1 線性布局 31
2.6.2 相對布局 33
2.6.3 其他布局 34
2.7 常用控制項 37
2.7.1 文本類控制項 37
2.7.2 按鈕類控制項 41
2.7.3 選擇類控制項 42
2.7.4 提示類控制項 49
2.7.5 圖片類控制項 51
2.7.6 選單類控制項 52
2.8 調試技巧 55
2.8.1 Debug 55
2.8.2 LogCat 56
2.8.3 File Explorer 57
2.8.4 ADB工具 58
2.8.5 手機調試 59
2.9 實訓:完善計算器項目 60
2.10 實訓:實現日期多選功能 60
2.11 實訓:設計用戶註冊的Activity 61
2.12 練習題 62
2.13 作業 63
第3章 Activity與Intent——運動會報名項目 64
3.1 需求分析 64
3.2 界面設計 64
3.3 系統設計 65
3.3.1 功能設計 65
3.3.2 數據保存 66
3.3.3 給SD卡開啟訪問許可權 66
3.4 實施 66
3.4.1 創建項目 66
3.4.2 界面實現 67
3.4.3 Java代碼 73
3.4.4 運行測試 79
3.5 Activity的狀態與生命周期 80
3.5.1 Activity的狀態 80
3.5.2 Activity的生命周期 81
3.6 Intent 85
3.6.1 顯式Intent 86
3.6.2 隱式Intent 87
3.6.3 Intent的解析機制 89
3.7 Activity之間傳遞數據 89
3.7.1 直接傳遞 89
3.7.2 使用Bundle類 89
3.7.3 返回數據 90
3.8 實訓:完善運動會報名項目 90
3.9 練習題 91
3.10 作業 91
第4章 資料庫與ContentProvider——用戶管理項目 92
4.1 需求分析 92
4.2 界面設計 92
4.3 數據結構設計 94
4.4 實施 95
4.4.1 創建項目 95
4.4.2 資料庫相關代碼 95
4.4.3 界面實現 97
4.4.4 Java代碼 100
4.5 SQLite資料庫管理系統 107
4.5.1 SQLite概述 107
4.5.2 數據類型 107
4.5.3 基本操作方法 108
4.5.4 專用操作方法 110
4.5.5 SQLiteOpenHelper 111
4.5.6 SQLite資料庫的管理 112
4.6 ContentProvider和ContentResolver 113
4.6.1 概念與功能 113
4.6.2 實例代碼 113
4.7 使用內置的ContentProvider 118
4.8 實訓:完善用戶管理項目 119
4.9 實訓:商品選購界面 119
4.10 練習題 122
4.11 作業 122
第5章 數據存儲——簡易相冊項目 124
5.1 需求分析 124
5.2 界面設計 124
5.3 實施 125
5.3.1 創建項目 125
5.3.2 界面實現 125
5.3.3 Java代碼 126
5.3.4 運行測試 130
5.4 數據存儲概述 130
5.5 檔案存儲 130
5.5.1 資源檔案 131
5.5.2 資產檔案 131
5.5.3 項目檔案 132
5.5.4 外部存儲 132
5.6 共享偏好設定 133
5.7 通知 134
5.8 訪問遠程數據 134
5.9 實訓:完善簡易相冊項目 135
5.10 實訓:進一步完善用戶管理項目 135
5.11 練習題 139
5.12 作業 140
第6章 Service——MP3音樂播放器項目 141
6.1 需求分析 141
6.2 界面設計 142
6.3 實施 142
6.3.1 創建項目 142
6.3.2 界面實現 142
6.3.3 Java代碼 146
6.3.4 註冊 159
6.3.5 SD卡的訪問許可權 159
6.3.6 運行測試 159
6.4 Service 159
6.4.1 Service概述 159
6.4.2 Service的啟動方式 160
6.4.3 生命周期 160
6.5 多媒體 161
6.5.1 音頻 161
6.5.2 視頻 161
6.6 實訓:完善MP3音樂播放器項目 162
6.7 實訓:製作音樂盒項目 162
6.8 實訓:Service練習 164
6.9 練習題 166
6.10 作業 167
第7章 BroadcastReceiver——簡訊過濾器項目 168
7.1 需求分析 168
7.2 界面設計 168
7.3 數據結構設計 169
7.4 實施 169
7.4.1 創建項目 169
7.4.2 界面實現 169
7.4.3 Java代碼 172
7.4.4 註冊 177
7.4.5 開啟接收簡訊的許可權 177
7.4.6 運行測試 177
7.5 BroadcastReceiver 179
7.5.1 系統廣播事件 179
7.5.2 自定義廣播事件 180
7.5.3 廣播事件機制 181
7.6 手機通話 181
7.6.1 撥打電話 181
7.6.2 監視電話狀態 184
7.7 手機簡訊 185
7.7.1 傳送簡訊 185
7.7.2 接收簡訊 186
7.8 實訓:完善簡訊過濾器項目 187
7.9 練習題 187
7.10 作業 188
第8章 多執行緒——射擊遊戲項目 189
8.1 需求分析 189
8.2 界面設計 189
8.3 實施 190
8.3.1 創建項目 190
8.3.2 界面實現 190
8.3.3 Java代碼 191
8.3.4 運行測試 199
8.4.1 理解Android多執行緒 199
8.4.2 主執行緒和子執行緒 199
8.4.3 Thread類 200
8.5 繪圖技術 208
8.5.1 Paint類 209
8.5.2 Canvas類 209
8.5.3 SurfaceView類 211
8.6 實訓:改進射擊遊戲項目 213
8.8 練習題 214
8.9 作業 215
第9章 嵌入式開發:網路編程——天氣預報項目 216
9.1 需求分析 216
9.2 界面設計 217
9.3 實施 217
9.3.1 創建項目 217
9.3.2 編寫WebServiceCall類 217
9.3.3 Java代碼 219
9.3.4 運行測試 220
9.4 網路編程概述 221
9.5 網路編程綜合項目 221
9.5.1 客戶端界面 222
9.5.2 Socket編程 225
9.5.3 HTTP編程 228
9.5.4 WebService編程 231
9.6 實訓:完善天氣預報項目 235
9.7 實訓:詞典項目 236
9.8 作業 236
第10章 嵌入式開發:串口編程——讀卡器項目 237
10.1 需求分析 237
10.2 串口介紹 238
10.3 實驗設備 239
10.3.1 硬體設備 239
10.3.2 Friendly ARM Tiny 6410簡介 239
10.3.3 Friendly ARM Tiny 6410的串口編程 240
10.3.5 串口小助手 244
10.4 實施 245
10.4.1 連線設備 245
10.4.2 實例代碼 245
10.5 實訓:完善讀卡器項目 250
10.6 作業 250
第11章 綜合實訓——詩詞賞析項目 251
11.1 項目介紹 251
11.1.1 項目概述 251
11.1.2 開發工具 251
11.1.3 界面設計 251
11.2 需求分析與功能分析 252
11.2.1 需求分析 252
11.2.2 功能分析252
11.2.3 功能模組設計 254
11.3 實施 254
11.3.1 數據設計 254
11.3.2 界面實現 259
11.3.3 Java代碼 267
11.4 運行測試 277
參考文獻 278,
第1章 Android入門概述 1
1.1 Android基本知識 1
1.1.1 Android SDK與API Level對應關係 1
1.1.2 Android架構 2
1.1.3 Android應用程式組件 4
1.2 搭建開發環境 6
1.3 HelloAndroid入門項目 7
1.3.1 需求分析 7
1.3.2 實施 8
1.4 Android項目結構分析 15
1.5 Android學習資料 16
1.6 練習題 17
1.7 作業 17
第2章 圖形界面——計算器項目 18
2.1 需求分析 18
2.2 界面設計 18
2.3 實施 19
2.3.1 創建項目 19
2.3.2 界面實現 19
2.3.3 Java代碼 23
2.3.4 運行測試 24
2.4 界面設計基礎 24
2.4.1 View和ViewGroup 24
2.4.2 基本概念 25
2.4.3 共有屬性 26
2.5 事件處理 29
2.5.1 設定控制項的onClick屬性 29
2.5.2 使用匿名類實現監聽器接口 30
2.5.3 使用螢幕類實現監聽器接口 30
2.6 布局 31
2.6.1 線性布局 31
2.6.2 相對布局 33
2.6.3 其他布局 34
2.7 常用控制項 37
2.7.1 文本類控制項 37
2.7.2 按鈕類控制項 41
2.7.3 選擇類控制項 42
2.7.4 提示類控制項 49
2.7.5 圖片類控制項 51
2.7.6 選單類控制項 52
2.8 調試技巧 55
2.8.1 Debug 55
2.8.2 LogCat 56
2.8.3 File Explorer 57
2.8.4 ADB工具 58
2.8.5 手機調試 59
2.9 實訓:完善計算器項目 60
2.10 實訓:實現日期多選功能 60
2.11 實訓:設計用戶註冊的Activity 61
2.12 練習題 62
2.13 作業 63
第3章 Activity與Intent——運動會報名項目 64
3.1 需求分析 64
3.2 界面設計 64
3.3 系統設計 65
3.3.1 功能設計 65
3.3.2 數據保存 66
3.3.3 給SD卡開啟訪問許可權 66
3.4 實施 66
3.4.1 創建項目 66
3.4.2 界面實現 67
3.4.3 Java代碼 73
3.4.4 運行測試 79
3.5 Activity的狀態與生命周期 80
3.5.1 Activity的狀態 80
3.5.2 Activity的生命周期 81
3.6 Intent 85
3.6.1 顯式Intent 86
3.6.2 隱式Intent 87
3.6.3 Intent的解析機制 89
3.7 Activity之間傳遞數據 89
3.7.1 直接傳遞 89
3.7.2 使用Bundle類 89
3.7.3 返回數據 90
3.8 實訓:完善運動會報名項目 90
3.9 練習題 91
3.10 作業 91
第4章 資料庫與ContentProvider——用戶管理項目 92
4.1 需求分析 92
4.2 界面設計 92
4.3 數據結構設計 94
4.4 實施 95
4.4.1 創建項目 95
4.4.2 資料庫相關代碼 95
4.4.3 界面實現 97
4.4.4 Java代碼 100
4.5 SQLite資料庫管理系統 107
4.5.1 SQLite概述 107
4.5.2 數據類型 107
4.5.3 基本操作方法 108
4.5.4 專用操作方法 110
4.5.5 SQLiteOpenHelper 111
4.5.6 SQLite資料庫的管理 112
4.6 ContentProvider和ContentResolver 113
4.6.1 概念與功能 113
4.6.2 實例代碼 113
4.7 使用內置的ContentProvider 118
4.8 實訓:完善用戶管理項目 119
4.9 實訓:商品選購界面 119
4.10 練習題 122
4.11 作業 122
第5章 數據存儲——簡易相冊項目 124
5.1 需求分析 124
5.2 界面設計 124
5.3 實施 125
5.3.1 創建項目 125
5.3.2 界面實現 125
5.3.3 Java代碼 126
5.3.4 運行測試 130
5.4 數據存儲概述 130
5.5 檔案存儲 130
5.5.1 資源檔案 131
5.5.2 資產檔案 131
5.5.3 項目檔案 132
5.5.4 外部存儲 132
5.6 共享偏好設定 133
5.7 通知 134
5.8 訪問遠程數據 134
5.9 實訓:完善簡易相冊項目 135
5.10 實訓:進一步完善用戶管理項目 135
5.11 練習題 139
5.12 作業 140
第6章 Service——MP3音樂播放器項目 141
6.1 需求分析 141
6.2 界面設計 142
6.3 實施 142
6.3.1 創建項目 142
6.3.2 界面實現 142
6.3.3 Java代碼 146
6.3.4 註冊 159
6.3.5 SD卡的訪問許可權 159
6.3.6 運行測試 159
6.4 Service 159
6.4.1 Service概述 159
6.4.2 Service的啟動方式 160
6.4.3 生命周期 160
6.5 多媒體 161
6.5.1 音頻 161
6.5.2 視頻 161
6.6 實訓:完善MP3音樂播放器項目 162
6.7 實訓:製作音樂盒項目 162
6.8 實訓:Service練習 164
6.9 練習題 166
6.10 作業 167
第7章 BroadcastReceiver——簡訊過濾器項目 168
7.1 需求分析 168
7.2 界面設計 168
7.3 數據結構設計 169
7.4 實施 169
7.4.1 創建項目 169
7.4.2 界面實現 169
7.4.3 Java代碼 172
7.4.4 註冊 177
7.4.5 開啟接收簡訊的許可權 177
7.4.6 運行測試 177
7.5 BroadcastReceiver 179
7.5.1 系統廣播事件 179
7.5.2 自定義廣播事件 180
7.5.3 廣播事件機制 181
7.6 手機通話 181
7.6.1 撥打電話 181
7.6.2 監視電話狀態 184
7.7 手機簡訊 185
7.7.1 傳送簡訊 185
7.7.2 接收簡訊 186
7.8 實訓:完善簡訊過濾器項目 187
7.9 練習題 187
7.10 作業 188
第8章 多執行緒——射擊遊戲項目 189
8.1 需求分析 189
8.2 界面設計 189
8.3 實施 190
8.3.1 創建項目 190
8.3.2 界面實現 190
8.3.3 Java代碼 191
8.3.4 運行測試 199
8.4 多執行緒技術 199
8.4.1 理解Android多執行緒 199
8.4.2 主執行緒和子執行緒 199
8.4.3 Thread類 200
8.5 繪圖技術 208
8.5.1 Paint類 209
8.5.2 Canvas類 209
8.5.3 SurfaceView類 211
8.6 實訓:改進射擊遊戲項目 213
8.7 實訓:多執行緒技術的套用——秒表項目 214
8.8 練習題 214
8.9 作業 215
第9章 嵌入式開發:網路編程——天氣預報項目 216
9.1 需求分析 216
9.2 界面設計 217
9.3 實施 217
9.3.1 創建項目 217
9.3.2 編寫WebServiceCall類 217
9.3.3 Java代碼 219
9.3.4 運行測試 220
9.4 網路編程概述 221
9.5 網路編程綜合項目 221
9.5.1 客戶端界面 222
9.5.2 Socket編程 225
9.5.3 HTTP編程 228
9.5.4 WebService編程 231
9.6 實訓:完善天氣預報項目 235
9.7 實訓:詞典項目 236
9.8 作業 236
第10章 嵌入式開發:串口編程——讀卡器項目 237
10.1 需求分析 237
10.2 串口介紹 238
10.3 實驗設備 239
10.3.1 硬體設備 239
10.3.2 Friendly ARM Tiny 6410簡介 239
10.3.3 Friendly ARM Tiny 6410的串口編程 240
10.3.5 串口小助手 244
10.4 實施 245
10.4.1 連線設備 245
10.4.2 實例代碼 245
10.5 實訓:完善讀卡器項目 250
10.6 作業 250
第11章 綜合實訓——詩詞賞析項目 251
11.1 項目介紹 251
11.1.1 項目概述 251
11.1.2 開發工具 251
11.1.3 界面設計 251
11.2 需求分析與功能分析 252
11.2.1 需求分析 252
11.2.2 功能分析252
11.2.3 功能模組設計 254
11.3 實施 254
11.3.1 數據設計 254
11.3.2 界面實現 259
11.3.3 Java代碼 267
11.4 運行測試 277
參考文獻 278