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