本書主要介紹物聯(lián)網(wǎng)系統(tǒng)中的Android應(yīng)用開發(fā)。全書先進(jìn)行理論知識(shí)學(xué)習(xí),深入淺出地介紹Java開發(fā)基礎(chǔ)、Android開發(fā)基礎(chǔ)和Android開發(fā)進(jìn)階等理論知識(shí),然后進(jìn)行實(shí)際案例的開發(fā),最后進(jìn)行開發(fā)驗(yàn)證和總結(jié)拓展,將理論學(xué)習(xí)和開發(fā)實(shí)踐緊密結(jié)合起來。每個(gè)實(shí)際案例均給出了完整的開發(fā)代碼和配套PPT,讀者可以在此基礎(chǔ)快速地進(jìn)行二次開發(fā)。
近年來,物聯(lián)網(wǎng)、移動(dòng)互聯(lián)網(wǎng)、大數(shù)據(jù)和云計(jì)算的迅猛發(fā)展,逐步改變了社會(huì)的生產(chǎn)方式,大大提高了生產(chǎn)效率和社會(huì)生產(chǎn)力。工業(yè)和信息化部發(fā)布的《信息通信行業(yè)發(fā)展規(guī)劃物聯(lián)網(wǎng)分冊(2016—2020年)》總結(jié)了“十二五”規(guī)劃中物聯(lián)網(wǎng)發(fā)展所獲得的成就,并分析了“十三五”期間面臨的形勢,明確了物聯(lián)網(wǎng)的發(fā)展思路和目標(biāo),提出了物聯(lián)網(wǎng)發(fā)展的6大任務(wù),分別是強(qiáng)化產(chǎn)業(yè)生態(tài)布局、完善技術(shù)創(chuàng)新體系、推動(dòng)物聯(lián)網(wǎng)規(guī)模應(yīng)用、構(gòu)建完善標(biāo)準(zhǔn)體系、完善公共服務(wù)體系、提升安全保障能力;提出了4大關(guān)鍵技術(shù),分別是傳感器技術(shù),體系架構(gòu)共性技術(shù),操作系統(tǒng),以及物聯(lián)網(wǎng)與移動(dòng)互聯(lián)網(wǎng)、大數(shù)據(jù)融合關(guān)鍵技術(shù);提出了6大重點(diǎn)領(lǐng)域應(yīng)用示范工程,分別是智能制造,智慧農(nóng)業(yè),智能家居,智能交通和車聯(lián)網(wǎng),智慧醫(yī)療和健康養(yǎng)老,以及智慧節(jié)能環(huán)保;指出要健全多層次、多類型的物聯(lián)網(wǎng)人才培養(yǎng)和服務(wù)體系,支持高校、科研院所加強(qiáng)跨學(xué)科交叉整合,加強(qiáng)物聯(lián)網(wǎng)學(xué)科建設(shè),培養(yǎng)物聯(lián)網(wǎng)復(fù)合型專業(yè)人才。該發(fā)展規(guī)劃為物聯(lián)網(wǎng)發(fā)展指出了一條鮮明的道路,同時(shí)也表明了我國在推動(dòng)物聯(lián)網(wǎng)應(yīng)用方面的堅(jiān)定決心,相信物聯(lián)網(wǎng)的規(guī)模會(huì)越來越大。
本書采用任務(wù)式開發(fā)的學(xué)習(xí)方法,利用實(shí)際的開發(fā)案例,由淺入深地介紹Android應(yīng)用開發(fā)技術(shù),每個(gè)案例均有完整的開發(fā)過程,即生動(dòng)的開發(fā)場景、明確的開發(fā)目標(biāo)、深入淺出的原理學(xué)習(xí)、詳細(xì)的開發(fā)實(shí)踐、任務(wù)驗(yàn)證、開發(fā)小結(jié)、思考與拓展。每個(gè)案例均附有完整的開發(fā)代碼,讀者在此基礎(chǔ)上可以快速地進(jìn)行二次開發(fā),從而將其轉(zhuǎn)化為各種比賽和創(chuàng)新創(chuàng)業(yè)的案例。
本書分為4篇。
第1篇為Java開發(fā)基礎(chǔ)。本篇主要介紹Java的基本知識(shí)和語法,主要內(nèi)容包括Android應(yīng)用開發(fā)環(huán)境、Java開發(fā)基礎(chǔ)、海拔高度數(shù)據(jù)的定義與轉(zhuǎn)換、溫度和濕度數(shù)據(jù)的記錄、智能背包系統(tǒng)的設(shè)計(jì)。
第2篇為Android開發(fā)基礎(chǔ)。本篇主要介紹Android的基本知識(shí)和語法,主要內(nèi)容包括Android項(xiàng)目框架與調(diào)試、空氣質(zhì)量顯示界面的設(shè)計(jì)、城市氣象監(jiān)控設(shè)備管理系統(tǒng)應(yīng)用界面的設(shè)計(jì)、城市環(huán)境系統(tǒng)功能菜單的設(shè)計(jì)、城市燈光控制系統(tǒng)界面事件的處理。
第3篇為Android開發(fā)進(jìn)階。本篇主要介紹Android的高級(jí)知識(shí)和語法,主要內(nèi)容包括工廠通風(fēng)系統(tǒng)界面的切換、工廠火警監(jiān)測系統(tǒng)界面的設(shè)計(jì)、設(shè)備列表管理界面的設(shè)計(jì)、智能電表日志的記錄、光照度記錄的查詢、智能醫(yī)療儀表圖形的動(dòng)態(tài)顯示、遠(yuǎn)程控制服務(wù)端的通信。
第4篇為物聯(lián)網(wǎng)Android應(yīng)用開發(fā)。本篇主要以實(shí)例的形式講述面向物聯(lián)網(wǎng)系統(tǒng)的Android應(yīng)用程序開發(fā),主要內(nèi)容包括物聯(lián)網(wǎng)系統(tǒng)框架及Android開發(fā)接口、倉庫環(huán)境管理系統(tǒng)的設(shè)計(jì)。
本書既可作為高等學(xué)校相關(guān)專業(yè)的教材或教學(xué)參考書,也可供相關(guān)領(lǐng)域的工程技術(shù)人員參考。對(duì)于物聯(lián)網(wǎng)開發(fā)和Android開發(fā)的愛好者來說,本書也是一本深入淺出的技術(shù)讀物。
本書在編寫過程中借鑒和參考了國內(nèi)外專家、學(xué)者和技術(shù)人員的相關(guān)研究成果,作者盡可能按學(xué)術(shù)規(guī)范予以說明,但難免會(huì)有疏漏,在此向相關(guān)作者表示深深的敬意和謝意。如有疏漏,請(qǐng)及時(shí)通過出版社與作者聯(lián)系。
本書的出版得到了廣東省自然科學(xué)基金項(xiàng)目(2018A030313195)和廣州市科技計(jì)劃項(xiàng)目(201804010262)的資助。感謝中智訊(武漢)科技有限公司在本書編寫過程中提供的幫助,特別感謝電子工業(yè)出版社在本書出版過程中給予的大力支持。
由于本書涉及的知識(shí)面廣,限于作者的水平和經(jīng)驗(yàn),疏漏之處在所難免,懇請(qǐng)廣大專家和讀者批評(píng)指正。
作 者
2020年6月
第1篇 Java開發(fā)基礎(chǔ)
任務(wù)1 Android應(yīng)用開發(fā)環(huán)境 3
1.1 開發(fā)場景:如何搭建Android應(yīng)用開發(fā)環(huán)境 3
1.2 開發(fā)目標(biāo) 3
1.3 原理學(xué)習(xí):Android系統(tǒng)架構(gòu)和開發(fā)框架 4
1.3.1 Android系統(tǒng)架構(gòu) 4
1.3.2 Android應(yīng)用開發(fā)框架 5
1.4 開發(fā)實(shí)踐:創(chuàng)建第一個(gè)Android應(yīng)用程序 6
1.4.1 JDK的安裝與配置 7
1.4.2 Android Studio的安裝與配置 10
1.4.3 創(chuàng)建第一個(gè)Android應(yīng)用程序 12
1.4.4 導(dǎo)入Android項(xiàng)目 16
1.5 任務(wù)驗(yàn)證 17
1.6 開發(fā)小結(jié) 17
1.7 思考與拓展 17
任務(wù)2 Java開發(fā)基礎(chǔ) 19
2.1 開發(fā)場景:開發(fā)Android應(yīng)用程序需要的程序設(shè)計(jì)語言 19
2.2 開發(fā)目標(biāo) 19
2.3 原理學(xué)習(xí):Java開發(fā)基礎(chǔ) 20
2.3.1 Java簡介 20
2.3.2 Java的基本語法 20
2.3.3 Java的對(duì)象與類 21
2.4 開發(fā)實(shí)踐:Java開發(fā)環(huán)境及程序的運(yùn)行調(diào)試 21
2.4.1 Java程序的運(yùn)行機(jī)制 21
2.4.2 基于Android Studio開發(fā)環(huán)境開發(fā)Java程序 22
2.5 任務(wù)驗(yàn)證 24
2.6 開發(fā)小結(jié) 24
2.7 思考與拓展 24
任務(wù)3 海拔高度數(shù)據(jù)的定義與轉(zhuǎn)換 25
3.1 開發(fā)場景:如何用Java定義海拔高度數(shù)據(jù) 25
3.2 開發(fā)目標(biāo) 25
3.3 原理學(xué)習(xí):Java的數(shù)據(jù)類型、運(yùn)算符、關(guān)鍵字、程序結(jié)構(gòu) 25
3.3.1 Java的數(shù)據(jù)類型 25
3.3.2 Java的運(yùn)算符及關(guān)鍵字 26
3.3.3 Java的程序結(jié)構(gòu) 28
3.4 開發(fā)實(shí)踐:海拔高度數(shù)據(jù)的定義與轉(zhuǎn)換 33
3.4.1 開發(fā)設(shè)計(jì) 33
3.4.2 功能實(shí)現(xiàn) 34
3.5 任務(wù)驗(yàn)證 35
3.6 開發(fā)小結(jié) 36
3.7 思考與拓展 36
任務(wù)4 溫度和濕度數(shù)據(jù)的記錄 37
4.1 開發(fā)場景:如何記錄溫度和濕度數(shù)據(jù) 37
4.2 開發(fā)目標(biāo) 37
4.3 原理學(xué)習(xí):熟悉Java類、數(shù)組、方法、IO流 37
4.3.1 常用的Java類 37
4.3.2 Java數(shù)組 41
4.3.3 Java 方法 43
4.3.4 Java IO流 45
4.4 開發(fā)實(shí)踐:溫度和濕度數(shù)據(jù)的記錄 48
4.4.1 開發(fā)設(shè)計(jì) 48
4.4.2 功能實(shí)現(xiàn) 48
4.5 任務(wù)驗(yàn)證 49
4.6 開發(fā)小結(jié) 50
4.7 思考與拓展 50
任務(wù)5 智能背包系統(tǒng)的設(shè)計(jì) 51
5.1 開發(fā)場景:如何使用Java封裝一個(gè)智能背包系統(tǒng) 51
5.2 開發(fā)目標(biāo) 51
5.3 原理學(xué)習(xí):Java的對(duì)象與類、接口實(shí)現(xiàn)與包機(jī)制 51
5.3.1 Java的對(duì)象與類 51
5.3.2 Java的接口 56
5.4 開發(fā)實(shí)踐:智能背包設(shè)備系統(tǒng)對(duì)象的設(shè)計(jì) 59
5.4.1 開發(fā)設(shè)計(jì) 59
5.4.2 功能實(shí)現(xiàn) 59
5.5 任務(wù)驗(yàn)證 61
5.6 開發(fā)小結(jié) 61
5.7 思考與拓展 62
第2篇 Android開發(fā)基礎(chǔ)
任務(wù)6 Android項(xiàng)目框架與調(diào)試 65
6.1 開發(fā)場景:如何創(chuàng)建和調(diào)試Android項(xiàng)目 65
6.2 開發(fā)目標(biāo) 65
6.3 原理學(xué)習(xí):Android項(xiàng)目框架及項(xiàng)目創(chuàng)建調(diào)試 66
6.3.1 Android項(xiàng)目框架 66
6.3.2 Android項(xiàng)目的調(diào)試 68
6.3.3 模擬器的安裝與使用 69
6.4 開發(fā)實(shí)踐:Android項(xiàng)目的創(chuàng)建與調(diào)試 71
6.4.1 Android項(xiàng)目的創(chuàng)建 71
6.4.2 Android項(xiàng)目的調(diào)試 73
6.5 任務(wù)驗(yàn)證 74
6.6 開發(fā)小結(jié) 74
6.7 思考與拓展 74
任務(wù)7 空氣質(zhì)量顯示界面的設(shè)計(jì) 75
7.1 開發(fā)場景:如何實(shí)現(xiàn)空氣質(zhì)量顯示界面的設(shè)計(jì) 75
7.2 開發(fā)目標(biāo) 75
7.3 原理學(xué)習(xí):Android用戶界面布局 76
7.3.1 Android的用戶界面框架 76
7.3.2 Android的視圖樹 76
7.3.3 Android的線性布局 77
7.3.4 Android的幀布局 81
7.3.5 Android的表格布局 82
7.3.6 Android的相對(duì)布局 86
7.3.7 Android的絕對(duì)布局 90
7.4 開發(fā)實(shí)踐:空氣質(zhì)量顯示界面 92
7.4.1 開發(fā)設(shè)計(jì) 92
7.4.2 功能實(shí)現(xiàn) 92
7.5 任務(wù)驗(yàn)證 96
7.6 開發(fā)小結(jié) 96
7.7 思考與拓展 96
任務(wù)8 城市氣象監(jiān)控設(shè)備管理系統(tǒng)應(yīng)用界面的設(shè)計(jì) 97
8.1 開發(fā)場景:如何設(shè)計(jì)城市氣象監(jiān)控設(shè)備管理系統(tǒng)應(yīng)用界面 97
8.2 開發(fā)目標(biāo) 97
8.3 原理學(xué)習(xí):Android界面控件基礎(chǔ) 97
8.3.1 TextView控件 97
8.3.2 EditText控件 99
8.3.3 Button控件 101
8.3.4 ImageButton控件 105
8.3.5 CheckBox控件 106
8.3.6 RadioButton控件 109
8.3.7 Spinner控件 111
8.3.8 ListView控件 114
8.4 開發(fā)實(shí)踐:城市氣象監(jiān)控設(shè)備管理系統(tǒng)應(yīng)用界面的設(shè)計(jì) 115
8.4.1 開發(fā)設(shè)計(jì) 115
8.4.2 功能實(shí)現(xiàn) 116
8.5 任務(wù)驗(yàn)證 121
8.6 開發(fā)小結(jié) 122
8.7 思考與拓展 122
任務(wù)9 城市環(huán)境系統(tǒng)功能菜單的設(shè)計(jì) 123
9.1 開發(fā)場景:如何為城市環(huán)境系統(tǒng)增加功能菜單 123
9.2 開發(fā)目標(biāo) 123
9.3 原理學(xué)習(xí):熟悉Android菜單 123
9.3.1 Android的選項(xiàng)菜單 124
9.3.2 Android的子菜單 126
9.3.3 Android的上下文菜單 126
9.4 開發(fā)實(shí)踐:城市環(huán)境系統(tǒng)功能菜單 129
9.4.1 開發(fā)設(shè)計(jì) 129
9.4.2 功能實(shí)現(xiàn) 130
9.5 任務(wù)驗(yàn)證 131
9.6 開發(fā)小結(jié) 132
9.7 思考與拓展 132
任務(wù)10 城市燈光控制系統(tǒng)界面事件的處理 133
10.1 開發(fā)場景:如何用Android開發(fā)一個(gè)城市燈光控制系統(tǒng)界面 133
10.2 開發(fā)目標(biāo) 133
10.3 原理學(xué)習(xí):Android系統(tǒng)界面事件實(shí)現(xiàn) 133
10.3.1 監(jiān)聽器 133
10.3.2 Android的界面事件和監(jiān)聽器 134
10.3.3 Android按鍵事件的處理 135
10.3.4 Android屏幕觸摸事件的處理 136
10.4 開發(fā)實(shí)踐:城市燈光控制系統(tǒng)界面事件的處理 137
10.4.1 開發(fā)設(shè)計(jì) 137
10.4.2 功能實(shí)現(xiàn) 138
10.5 任務(wù)驗(yàn)證 142
10.6 開發(fā)小結(jié) 143
10.7 思考與拓展 143
第3篇 Android開發(fā)進(jìn)階
任務(wù)11 工廠通風(fēng)系統(tǒng)界面的切換 147
11.1 開發(fā)場景:如何實(shí)現(xiàn)工廠通風(fēng)系統(tǒng)界面的切換 147
11.2 開發(fā)目標(biāo) 147
11.3 原理學(xué)習(xí):Android中的Activity和Service 147
11.3.1 Android中的Activity 147
11.3.2 Android中的Service 153
11.4 開發(fā)實(shí)踐:工廠通風(fēng)系統(tǒng)界面切換 156
11.4.1 開發(fā)設(shè)計(jì) 156
11.4.2 功能實(shí)現(xiàn) 157
11.5 任務(wù)驗(yàn)證 161
11.6 開發(fā)小結(jié) 162
11.7 思考與拓展 162
任務(wù)12 工廠火警監(jiān)測系統(tǒng)界面的設(shè)計(jì) 163
12.1 開發(fā)場景:如何設(shè)計(jì)工廠火警監(jiān)測系統(tǒng)的界面 163
12.2 開發(fā)目標(biāo) 163
12.3 原理學(xué)習(xí):Intent、BroadcastReceiver、ContentProvider組件 163
12.3.1 Intent組件 163
12.3.2 BroadcastReceiver組件 167
12.3.3 ContentProvider組件 170
12.4 開發(fā)實(shí)踐:工廠火警監(jiān)測系統(tǒng)界面的設(shè)計(jì) 171
12.4.1 開發(fā)設(shè)計(jì) 171
12.4.2 功能實(shí)現(xiàn) 172
12.5 任務(wù)驗(yàn)證 176
12.6 開發(fā)小結(jié) 176
12.7 思考與拓展 177
任務(wù)13 設(shè)備列表管理界面的設(shè)計(jì) 179
13.1 開發(fā)場景:如何使用Fragment設(shè)計(jì)界面 179
13.2 開發(fā)目標(biāo) 179
13.3 原理學(xué)習(xí):基于Fragment的界面設(shè)計(jì) 179
13.3.1 Fragment的基本概念 179
13.3.2 Fragment的生命周期 180
13.3.3 Fragment的使用方式 181
13.3.4 Fragment通信 186
13.4 開發(fā)實(shí)踐:設(shè)備列表管理界面設(shè)計(jì) 187
13.4.1 開發(fā)設(shè)計(jì) 187
13.4.2 功能實(shí)現(xiàn) 189
13.5 任務(wù)驗(yàn)證 194
13.6 開發(fā)小結(jié) 195
13.7 思考與拓展 195
任務(wù)14 智能電表日志的記錄 197
14.1 開發(fā)場景:如何實(shí)現(xiàn)智能電表日志的記錄 197
14.2 開發(fā)目標(biāo) 197
14.3 原理學(xué)習(xí):SharedPreferences及文件存儲(chǔ)的使用 197
14.3.1 SharedPreferences 197
14.3.2 文件存儲(chǔ) 201
14.4 開發(fā)實(shí)踐:智能電表日志記錄 203
14.4.1 開發(fā)設(shè)計(jì) 203
14.4.2 功能實(shí)現(xiàn) 204
14.5 任務(wù)驗(yàn)證 206
14.6 開發(fā)小結(jié) 206
14.7 思考與拓展 206
任務(wù)15 光照度記錄的查詢 207
15.1 開發(fā)場景:如何顯示SQLite數(shù)據(jù)庫中的光照度記錄 207
15.2 開發(fā)目標(biāo) 207
15.3 原理學(xué)習(xí):SQLite數(shù)據(jù)庫的創(chuàng)建及其基本的數(shù)據(jù)操作方法 207
15.3.1 SQLite數(shù)據(jù)庫 207
15.3.2 SQLite數(shù)據(jù)庫的操作 210
15.3.3 SQLite簡單示例 214
15.4 開發(fā)實(shí)踐:光照度記錄的查詢 217
15.4.1 開發(fā)設(shè)計(jì) 217
15.4.2 功能實(shí)現(xiàn) 219
15.5 任務(wù)驗(yàn)證 227
15.6 開發(fā)小結(jié) 228
15.7 思考與拓展 228
任務(wù)16 智能醫(yī)療儀表圖形的動(dòng)態(tài)顯示 229
16.1 開發(fā)場景:智能醫(yī)療儀表圖形動(dòng)態(tài)顯示的重要性及實(shí)用性 229
16.2 開發(fā)目標(biāo) 229
16.3 原理學(xué)習(xí):動(dòng)態(tài)圖形的繪制及圖形特效的實(shí)現(xiàn) 229
16.3.1 動(dòng)態(tài)圖形的繪制 229
16.3.2 圖形特效的實(shí)現(xiàn) 234
16.3.3 Android的自繪控件 237
16.4 開發(fā)實(shí)踐:智能醫(yī)療儀表圖形動(dòng)態(tài)顯示 238
16.4.1 開發(fā)設(shè)計(jì) 238
16.4.2 功能實(shí)現(xiàn) 240
16.5 任務(wù)驗(yàn)證 243
16.6 開發(fā)小結(jié) 244
16.7 思考與拓展 244
任務(wù)17 遠(yuǎn)程控制服務(wù)端的通信 245
17.1 開發(fā)場景:如何實(shí)現(xiàn)遠(yuǎn)程控制服務(wù)端的通信 245
17.2 開發(fā)目標(biāo) 245
17.3 原理學(xué)習(xí):Socket通信 245
17.3.1 Socket傳輸模式 245
17.3.2 Socket編程原理 246
17.3.3 Socket編程實(shí)例 247
17.4 開發(fā)實(shí)踐:遠(yuǎn)程控制服務(wù)端通信的實(shí)現(xiàn) 250
17.4.1 開發(fā)設(shè)計(jì) 250
17.4.2 功能實(shí)現(xiàn) 252
17.5 任務(wù)驗(yàn)證 257
17.6 開發(fā)小結(jié) 258
17.7 思考與拓展 258
第4篇 物聯(lián)網(wǎng)Android應(yīng)用開發(fā)
任務(wù)18 物聯(lián)網(wǎng)系統(tǒng)框架及Android開發(fā)接口 261
18.1 開發(fā)場景:物聯(lián)網(wǎng)系統(tǒng)框架 261
18.2 開發(fā)目標(biāo) 262
18.3 原理學(xué)習(xí):Android開發(fā)接口 262
18.3.1 Android開發(fā)接口 262
18.3.2 Android開發(fā)接口應(yīng)用實(shí)例 265
18.4 開發(fā)實(shí)踐:建立服務(wù)連接 266
18.4.1 開發(fā)設(shè)計(jì) 266
18.4.2 功能實(shí)現(xiàn) 268
18.5 任務(wù)驗(yàn)證 273
18.6 開發(fā)小結(jié) 275
18.7 思考與拓展 276
任務(wù)19 倉庫環(huán)境管理系統(tǒng)的設(shè)計(jì) 277
19.1 開發(fā)場景:如何設(shè)計(jì)倉庫環(huán)境管理系統(tǒng) 277
19.2 開發(fā)目標(biāo) 277
19.3 原理學(xué)習(xí):倉庫環(huán)境管理系統(tǒng)分析和Android應(yīng)用程序設(shè)計(jì) 278
19.3.1 倉庫環(huán)境管理系統(tǒng)分析 278
19.3.2 Android應(yīng)用程序設(shè)計(jì) 281
19.4 開發(fā)實(shí)踐:倉庫環(huán)境管理系統(tǒng)的設(shè)計(jì) 285
19.4.1 開發(fā)設(shè)計(jì) 285
19.4.2 功能實(shí)現(xiàn) 286
19.5 任務(wù)驗(yàn)證 296
19.6 開發(fā)小結(jié) 298
19.7 思考與拓展 298
參考文獻(xiàn) 299