內容提要
《Android物聯網開發:基於Android Studio環境》基於最新的Android Studio開發環境,循序漸進地講解了 Android物聯網開發過程的主要內容,依次講解了開發環境的搭建、界面設計、應用程式開發、數據的存儲和訪問、網路攝像機訪問、物聯網語音識別、物聯網多媒體動畫、物聯網網路開發、無線通信、訪問智慧型電錶或智慧型插座和應用程式的託管和發布等內容,在講解每一個知識點時,都遵循了理論聯繫實際的講解方式,配以實戰演練,透徹剖析了物聯網項目開發的完整實現流程。
通過對《Android物聯網開發:基於Android Studio環境》的學習可以極大地提高開發者的Android開發技術能力,向Android高級開發者進階。對於高級開發者來說,仍然可以從《Android物聯網開發:基於Android Studio環境》的知識體系中獲益。
《Android物聯網開發:基於Android Studio環境》適用於對Java編程有一定基礎、希望掌握Android物聯網相關套用開發的讀者,適合作為高等職業院校物聯網或計算機專業的教材,或可作為Android程式設計的培訓教材,也可供廣大Android開發愛好者使用。
目錄
第一部分 基礎知識
第1章 Android開發簡介 1
1.1 Android介紹 2
1.2 Android系統構架 2
1.3 Android應用程式框架 5
1.4 本章小結 7
第2章 Android開發環境的搭建 8
2.1 獲取Android源碼 9
2.1.1 在Linux系統中獲取Android源碼 9
2.1.2 在Windows平台獲取Android源碼 10
2.1.3 編譯源碼 12
2.2 Android Studio套用開發 14
2.2.1 搭建Android Studio套用開發環境 15
2.2.2 創建第一個Android項目:HelloWorld 18
2.2.3 啟動模擬器 19
2.2.4 運行到模擬器 21
2.2.5 下載到真機 22
2.2.6 詳解項目中的資源 22
2.2.7 詳解build.gradle檔案 25
2.2.8 導入外部項目和Eclipse開發的Android項目 29
2.2.9 添加外部庫 31
2.2.10 應用程式的調試 32
2.2.11 項目實戰:下載Android的各個版本 34
2.3 本章小結 35
第3章 Android界面設計 36
3.1 用戶界面基礎 37
3.2 Android的Activity 38
3.2.1 Activity的介紹 38
3.2.2 Activity的生命周期 40
3.2.3 創建一個Activity 42
3.2.4 創建和載入布局 43
3.2.5 銷毀一個Activity 46
3.2.6 使用Intent在Activity之間穿梭 46
3.2.7 Intent調用常見系統組件 51
3.3 常用控制項的使用方法 53
3.3.1 TextView和EditText 53
3.3.2 Button、ToggleButton和ImageView 54
3.3.3 Spinner 56
3.3.4 ListView 58
3.3.5 AlertDialog 64
3.3.6 ProgressBar 65
3.4 Android布局 67
3.4.1 線性布局 69
3.4.2 相對布局 71
3.4.3 表格布局 73
3.4.4 百分比布局 77
3.4.5 嵌套布局實現計算器界面 79
3.5 樣式和主題 85
3.5.1 定義樣式 86
3.5.2 使用樣式 87
3.5.3 主題 87
3.6 新控制項RecyclerView、CardView和Palette的使用 88
3.6.1 新控制項的使用 90
3.6.2 實現縱向滾動和橫向滾動 95
3.6.3 RecyclerView的點擊事件 96
3.7 Android新控制項 97
3.8 綜合項目實戰:WebView實現監控界面 99
3.9 本章小結 102
第4章 創建Android應用程式 103
4.1 概述 104
4.2 事件處理機制 105
4.2.1 基於監聽器的事件處理 106
4.2.2 基於回調的事件處理 107
4.2.3 事件回響的實現 107
4.2.4 項目實戰:獲取螢幕觸點坐標 107
4.3 Android多執行緒 110
4.3.1 執行緒的基本用法 110
4.3.2 在子執行緒更新UI 111
4.3.3 Android執行緒池 114
4.3.4 Android四種執行緒池實例 115
4.4 Android廣播組件 119
4.4.1 動態註冊廣播 120
4.4.2 靜態註冊廣播 122
4.4.3 自定義本地廣播 123
4.5 後台服務(Service) 125
4.5.1 定義一個服務 125
4.5.2 啟動和停止服務 128
4.5.3 Service和Activity通信 130
4.6 Android實現多任務 132
4.6.1 多任務實現原理 133
4.6.2 用Handler實現多任務 134
4.6.3 項目實戰:Handler實現模擬下載 135
4.6.4 AsyncTask實現多任務 137
4.6.5 項目實戰:AsyncTask實現計時 138
4.7 本章小結 139
第5章 Android中數據的存儲和訪問 140
5.1 簡介 141
5.2 使用共同偏好的存取數據 141
5.2.1 存取共享偏好 141
5.2.2 Preference框架 145
5.3 檔案讀取和保存 149
5.3.1 內部存儲 149
5.3.2 擴展存儲 150
5.4 存取結構化數據 150
5.4.1 SQLite簡介 151
5.4.2 創建SQLite資料庫 152
5.4.3 運算元據庫 153
5.5 使用LitePal運算元據庫 156
5.5.1 LitePal簡介 156
5.5.2 配置LitePal 156
5.5.3 創建和升級資料庫 158
5.5.4 SQLite命令調試 162
5.5.5 資料庫操作 163
5.6 網路存儲 168
5.7 本章小結 169
第6章 ContentProvider 170
6.1 查詢記錄 171
6.2 修改記錄 172
6.3 添加記錄 172
6.4 刪除記錄 173
6.5 創建Content Provider 173
6.6 本章小結 177
第二部分 物聯網套用
第7章 移動智慧型終端訪問網路攝像機 178
7.1 簡介 179
7.2 網路攝像機 179
7.3 系統實現 180
7.3.1 介紹 181
7.3.2 網路攝像機參數設定 182
7.3.3 智慧型手機端視頻監控軟體 183
7.4 本章小結 192
第8章 物聯網語音識別開發 193
8.1 語音識別技術概述 194
8.2 TTS語音識別技術 194
8.2.1 TTS基礎 194
8.2.2 TTS開發流程 196
8.2.3 項目實戰:TTS文字識別實例 197
8.3 Voice Recognition語言識別 201
8.3.1 Voice Recognition技術基礎 201
8.3.2 項目實戰:Voice Recognition語音識別 203
8.4 本章小結 206
第9章 在物聯網中媒體動畫的實現 207
9.1 Android多媒體系統架構基礎 208
9.2 Graphics類詳解 208
9.2.1 Graphics類基礎 209
9.2.2 Android圖形繪製類 209
9.2.3 繪製基本圖形 210
9.3 二維動畫 212
9.3.1 類Drawable 213
9.3.2 實現Tween動畫效果 214
9.3.3 Tween動畫的四種動畫效果 215
9.3.4 實現Frame動畫效果 219
9.4 項目實戰:物聯網環境控制動畫 221
9.5 OpenGL ES詳解 224
9.5.1 OpenGL ES基礎 224
9.5.2 Android中的OpenGL ES 226
9.5.3 Open GL的基本操作 226
9.5.4 項目實戰:利用OpenGL實現旋轉的立方體 227
9.6 音頻實現 232
9.6.1 音頻接口類 232
9.6.2 AudioManager控制鈴聲 232
9.6.3 錄音詳解 233
9.6.4 項目實戰:使用MediaPlay播放音樂 235
9.7 二維碼的識別 238
9.7.1 二維碼介紹 238
9.7.2 項目實戰:Android實現二維碼識別 241
9.8 本章小結 247
第10章 Android網路開發 248
10.1 Android Socket網路傳輸 249
10.1.1 什麼是Socket 249
10.1.2 Socket的分類 249
10.1.3 Socket基本實現原理 249
10.1.4 Android實現Socket簡單通信 250
10.1.5 Android客戶端和PC伺服器端通信 253
10.2 Android HTTP網路傳輸 258
10.2.1 HttpURLConnection接口 258
10.2.2 項目實戰:HttpURLConnection獲取信息 260
10.2.3 使用OkHttp 263
10.2.4 項目實戰:OkHttp獲取信息 265
10.3 Android應用程式的許可權 267
10.3.1 Android許可權機制詳解 267
10.3.2 在程式運行時申請許可權 270
10.4 解析XML格式數據 274
10.4.1 Pull解析方式 274
10.4.2 SAX解析方式 276
10.5 解析JSON格式數據 279
10.5.1 使用JSONObject 280
10.5.2 使用GSON 281
10.6 本章小結 284
第11章 Android無線通信 285
11.1 Android藍牙傳輸數據 286
11.1.1 藍牙介紹 286
11.1.2 藍牙體系結構 287
11.1.3 藍牙軟體的實現 289
11.1.4 Android的藍牙接口類 292
11.1.5 Android藍牙開發步驟 295
11.1.6 項目實戰:查找藍牙設備 300
11.1.7 項目實戰:Android手機藍牙控制智慧型小車 308
11.2 Android系統中的NFC 321
11.2.1 近場通信技術基礎 322
11.2.2 在Android系統中使用NFC 322
11.2.3 項目實戰:在Android中使用NFC讀取MifareClassic卡 326
11.3 本章小結 331
第12章 Android訪問智慧型電錶或智慧型插座 332
12.1 簡介 333
12.1.1 RS-485接口智慧型插座 335
12.1.2 無線智慧型插座 339
12.1.3 智慧型電錶 340
12.2 使用智慧型手機訪問智慧型電錶或智慧型插座 344
12.2.1 使用智慧型手機訪問智慧型電錶或智慧型插座的方案 344
12.2.2 使用智慧型手機訪問Wi-Fi型智慧型插座或智慧型電錶的方案 345
12.3 使用Android訪問智慧型電錶或智慧型插座 346
12.3.1 智慧型手機和Pad之間的數據通信 347
12.3.2 藍牙通信實現 349
12.3.3 訪問智慧型電錶或智慧型插座的命令格式 354
12.4 本章小結 354
第三部分 綜合實戰
第13章 UI新體驗——Material Design 355
13.1 什麼是Material Design 356
13.2 Design Support庫的使用 356
13.3 DrawerLayout和Navigation View 357
13.4 Material Design開源項目 363
13.5 本章小結 366
第14章 綜合項目:Cool Weather 367
14.1 項目分析 368
14.2 創建資料庫和表 369
14.3 遍歷全國省、市、縣數據 371
14.4 設計天氣信息界面 374
14.5 省、市、縣數據界面處理 374
14.6 處理返回的JSON數據 379
14.7 將天氣信息顯示到界面上 381
14.8 後台自動更新天氣 384
第15章 Android應用程式託管和發布 387
15.1 Git版本控制工具 388
15.1.1 安裝Git 388
15.1.2 創建代碼倉庫 389
15.1.3 提交本地代碼 391
15.2 GitHub 392
15.2.1 在GitHub註冊創建版本庫 392
15.2.2 將代碼託管到GitHub 395
15.3 將應用程式發布到360套用商店 398
15.3.1 生成正式簽名的APK檔案 398
15.3.2 申請360開發賬號 400
15.3.3 發布應用程式 401
15.3.4 嵌入廣告 403
15.4 本章小結 407
參考文獻 408