本書基于Android Studio集成開發(fā)工具,循序漸進(jìn)地介紹了Android應(yīng)用程序開發(fā)的基本內(nèi)容。本書共11章,第1章為Android入門概述;第2章~第10章以項目的形式,分別介紹了圖形界面、Activity與Intent、數(shù)據(jù)庫與ContentProvider、數(shù)據(jù)存儲、Service、BroadcastReceiver、多線程、網(wǎng)絡(luò)編程和串口編程。其中,大部分項目通過需求分析、界面設(shè)計、實施等環(huán)節(jié),逐步引導(dǎo)讀者完成項目操作,同時,在每章的后半部分,講解了對應(yīng)項目所用到的基本概念與功能,并通過章末的實訓(xùn)環(huán)節(jié)加深理解;第11章為綜合實訓(xùn),旨在通過一個完整的實訓(xùn)項目鞏固前面所學(xué)的知識。本書配有源代碼、電子課件等教學(xué)資源,讀者可以登錄華信教育資源網(wǎng)(www.hxedu.com.cn)注冊后免費下載。本書內(nèi)容翔實、語言精練,既可以作為高等院校、高等職業(yè)院校計算機(jī)、物聯(lián)網(wǎng)等專業(yè)的教材,也可以作為移動互聯(lián)開發(fā)人員參考用書。
周薇,女,講師,無錫職業(yè)技術(shù)學(xué)院物聯(lián)網(wǎng)技術(shù)學(xué)院骨干教師。畢業(yè)于陜西師范大學(xué)計算機(jī)科學(xué)教育專業(yè),2010年8月畢業(yè)于江南大學(xué)輕工信息技術(shù)與工程專業(yè),獲得工學(xué)碩士學(xué)位。2000年開始進(jìn)入無錫職業(yè)技術(shù)學(xué)院,主要承擔(dān)《數(shù)據(jù)庫原理與應(yīng)用》、《可視化程序設(shè)計》、《Winform數(shù)據(jù)庫應(yīng)用程序設(shè)計》、《Java程序設(shè)計》和《Android應(yīng)用軟件開發(fā)》等課程的教學(xué)工作。從2013年以來,一直從事Android應(yīng)用軟件開發(fā)及Java程序設(shè)計類課程的教學(xué),積累了一定的經(jīng)驗。2016年指導(dǎo)學(xué)生完成《基于傳感網(wǎng)的多葉植物手持遠(yuǎn)程監(jiān)控噴淋系統(tǒng)的研究》,獲得江蘇省優(yōu)秀畢業(yè)設(shè)計團(tuán)體一等獎。同年,主持并完成校級課題《移動互聯(lián)導(dǎo)師制課程》一項。
目 錄
第1章 Android入門概述 1
1.1 Android基本知識 1
1.1.1 Android SDK與API Level對應(yīng)關(guān)系 1
1.1.2 Android架構(gòu) 2
1.1.3 Android應(yīng)用程序組件 4
1.2 搭建開發(fā)環(huán)境 6
1.3 HelloAndroid入門項目 7
1.3.1 需求分析 7
1.3.2 實施 8
1.4 Android項目結(jié)構(gòu)分析 15
1.5 Android學(xué)習(xí)資料 16
1.6 練習(xí)題 17
1.7 作業(yè) 17
第2章 圖形界面——計算器項目 18
2.1 需求分析 18
2.2 界面設(shè)計 18
2.3 實施 19
2.3.1 創(chuàng)建項目 19
2.3.2 界面實現(xiàn) 19
2.3.3 Java代碼 23
2.3.4 運(yùn)行測試 24
2.4 界面設(shè)計基礎(chǔ) 24
2.4.1 View和ViewGroup 24
2.4.2 基本概念 25
2.4.3 共有屬性 26
2.5 事件處理 29
2.5.1 設(shè)置控件的onClick屬性 29
2.5.2 使用匿名類實現(xiàn)監(jiān)聽器接口 30
2.5.3 使用屏幕類實現(xiàn)監(jiān)聽器接口 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 調(diào)試技巧 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 手機(jī)調(diào)試 59
2.9 實訓(xùn):完善計算器項目 60
2.10 實訓(xùn):實現(xiàn)日期多選功能 60
2.11 實訓(xùn):設(shè)計用戶注冊的Activity 61
2.12 練習(xí)題 62
2.13 作業(yè) 63
第3章 Activity與Intent——運(yùn)動會報名項目 64
3.1 需求分析 64
3.2 界面設(shè)計 64
3.3 系統(tǒng)設(shè)計 65
3.3.1 功能設(shè)計 65
3.3.2 數(shù)據(jù)保存 66
3.3.3 給SD卡開啟訪問權(quán)限 66
3.4 實施 66
3.4.1 創(chuàng)建項目 66
3.4.2 界面實現(xiàn) 67
3.4.3 Java代碼 73
3.4.4 運(yùn)行測試 79
3.5 Activity的狀態(tài)與生命周期 80
3.5.1 Activity的狀態(tài) 80
3.5.2 Activity的生命周期 81
3.6 Intent 85
3.6.1 顯式Intent 86
3.6.2 隱式Intent 87
3.6.3 Intent的解析機(jī)制 89
3.7 Activity之間傳遞數(shù)據(jù) 89
3.7.1 直接傳遞 89
3.7.2 使用Bundle類 89
3.7.3 返回數(shù)據(jù) 90
3.8 實訓(xùn):完善運(yùn)動會報名項目 90
3.9 練習(xí)題 91
3.10 作業(yè) 91
第4章 數(shù)據(jù)庫與ContentProvider——用戶管理項目 92
4.1 需求分析 92
4.2 界面設(shè)計 92
4.3 數(shù)據(jù)結(jié)構(gòu)設(shè)計 94
4.4 實施 95
4.4.1 創(chuàng)建項目 95
4.4.2 數(shù)據(jù)庫相關(guān)代碼 95
4.4.3 界面實現(xiàn) 97
4.4.4 Java代碼 100
4.5 SQLite數(shù)據(jù)庫管理系統(tǒng) 107
4.5.1 SQLite概述 107
4.5.2 數(shù)據(jù)類型 107
4.5.3 基本操作方法 108
4.5.4 專用操作方法 110
4.5.5 SQLiteOpenHelper 111
4.5.6 SQLite數(shù)據(jù)庫的管理 112
4.6 ContentProvider和ContentResolver 113
4.6.1 概念與功能 113
4.6.2 實例代碼 113
4.7 使用內(nèi)置的ContentProvider 118
4.8 實訓(xùn):完善用戶管理項目 119
4.9 實訓(xùn):商品選購界面 119
4.10 練習(xí)題 122
4.11 作業(yè) 122
第5章 數(shù)據(jù)存儲——簡易相冊項目 124
5.1 需求分析 124
5.2 界面設(shè)計 124
5.3 實施 125
5.3.1 創(chuàng)建項目 125
5.3.2 界面實現(xiàn) 125
5.3.3 Java代碼 126
5.3.4 運(yùn)行測試 130
5.4 數(shù)據(jù)存儲概述 130
5.5 文件存儲 130
5.5.1 資源文件 131
5.5.2 資產(chǎn)文件 131
5.5.3 項目文件 132
5.5.4 外部存儲 132
5.6 共享偏好設(shè)置 133
5.7 通知 134
5.8 訪問遠(yuǎn)程數(shù)據(jù) 134
5.9 實訓(xùn):完善簡易相冊項目 135
5.10 實訓(xùn):進(jìn)一步完善用戶管理項目 135
5.11 練習(xí)題 139
5.12 作業(yè) 140
第6章 Service——MP3音樂播放器項目 141
6.1 需求分析 141
6.2 界面設(shè)計 142
6.3 實施 142
6.3.1 創(chuàng)建項目 142
6.3.2 界面實現(xiàn) 142
6.3.3 Java代碼 146
6.3.4 注冊 159
6.3.5 SD卡的訪問權(quán)限 159
6.3.6 運(yùn)行測試 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 實訓(xùn):完善MP3音樂播放器項目 162
6.7 實訓(xùn):制作音樂盒項目 162
6.8 實訓(xùn):Service練習(xí) 164
6.9 練習(xí)題 166
6.10 作業(yè) 167
第7章 BroadcastReceiver——短信過濾器項目 168
7.1 需求分析 168
7.2 界面設(shè)計 168
7.3 數(shù)據(jù)結(jié)構(gòu)設(shè)計 169
7.4 實施 169
7.4.1 創(chuàng)建項目 169
7.4.2 界面實現(xiàn) 169
7.4.3 Java代碼 172
7.4.4 注冊 177
7.4.5 開啟接收短信的權(quán)限 177
7.4.6 運(yùn)行測試 177
7.5 BroadcastReceiver 179
7.5.1 系統(tǒng)廣播事件 179
7.5.2 自定義廣播事件 180
7.5.3 廣播事件機(jī)制 181
7.6 手機(jī)通話 181
7.6.1 撥打電話 181
7.6.2 監(jiān)視電話狀態(tài) 184
7.7 手機(jī)短信 185
7.7.1 發(fā)送短信 185
7.7.2 接收短信 186
7.8 實訓(xùn):完善短信過濾器項目 187
7.9 練習(xí)題 187
7.10 作業(yè) 188
第8章 多線程——射擊游戲項目 189
8.1 需求分析 189
8.2 界面設(shè)計 189
8.3 實施 190
8.3.1 創(chuàng)建項目 190
8.3.2 界面實現(xiàn) 190
8.3.3 Java代碼 191
8.3.4 運(yùn)行測試 199
8.4 多線程技術(shù) 199
8.4.1 理解Android多線程 199
8.4.2 主線程和子線程 199
8.4.3 Thread類 200
8.4.4 Handler機(jī)制和AsyncTask異步任務(wù)類 203
8.5 繪圖技術(shù) 208
8.5.1 Paint類 209
8.5.2 Canvas類 209
8.5.3 SurfaceView類 211
8.6 實訓(xùn):改進(jìn)射擊游戲項目 213
8.7 實訓(xùn):多線程技術(shù)的應(yīng)用——秒表項目 214
8.8 練習(xí)題 214
8.9 作業(yè) 215
第9章 嵌入式開發(fā):網(wǎng)絡(luò)編程——天氣預(yù)報項目 216
9.1 需求分析 216
9.2 界面設(shè)計 217
9.3 實施 217
9.3.1 創(chuàng)建項目 217
9.3.2 編寫WebServiceCall類 217
9.3.3 Java代碼 219
9.3.4 運(yùn)行測試 220
9.4 網(wǎng)絡(luò)編程概述 221
9.5 網(wǎng)絡(luò)編程綜合項目 221
9.5.1 客戶端界面 222
9.5.2 Socket編程 225
9.5.3 HTTP編程 228
9.5.4 WebService編程 231
9.6 實訓(xùn):完善天氣預(yù)報項目 235
9.7 實訓(xùn):詞典項目 236
9.8 作業(yè) 236
第10章 嵌入式開發(fā):串口編程——讀卡器項目 237
10.1 需求分析 237
10.2 串口介紹 238
10.3 實驗設(shè)備 239
10.3.1 硬件設(shè)備 239
10.3.2 Friendly ARM Tiny 6410簡介 239
10.3.3 Friendly ARM Tiny 6410的串口編程 240
10.3.4 RFID讀卡器的串口通信協(xié)議 242
10.3.5 串口小助手 244
10.4 實施 245
10.4.1 連接設(shè)備 245
10.4.2 實例代碼 245
10.5 實訓(xùn):完善讀卡器項目 250
10.6 作業(yè) 250
第11章 綜合實訓(xùn)——詩詞賞析項目 251
11.1 項目介紹 251
11.1.1 項目概述 251
11.1.2 開發(fā)工具 251
11.1.3 界面設(shè)計 251
11.2 需求分析與功能分析 252
11.2.1 需求分析 252
11.2.2 功能分析 252
11.2.3 功能模塊設(shè)計 254
11.3 實施 254
11.3.1 數(shù)據(jù)設(shè)計 254
11.3.2 界面實現(xiàn) 259
11.3.3 Java代碼 267
11.4 運(yùn)行測試 277
參考文獻(xiàn) 278