《Android物聯網開發:基于Android Studio環境》主要針對物聯網應用領域,以移動終端為應用平臺,研究Android在物聯網的相關應用。通過對本書的學習,讀者可以牢固掌握Android編程技術的基本知識,通過典型物聯網實踐的運用,能夠進行應用程序的實際開發,獲得必要的物聯網移動終端開發的基礎知識和應用技能,為培養綜合應用打下基礎。
感謝您選擇本書。為了幫助您更好地學習本書的知識,請仔細閱讀下面的內容。
物聯網作為一個新經濟增長點的戰略新興產業,具有良好的市場效益。《2014—2018年中國物聯網行業應用領域市場需求與投資預測分析報告》數據表明,到2025年,物聯網型業務的市場規模每年將達10萬億美元。屆時,除了消費級的可穿戴設備、智能家居產品,以及企業級的嵌入電網、配水網絡和工業用地等物理基礎設施的儀表化外,物聯網技術將進一步滲透到五大核心支柱的新計算生態系統內,如互聯設備、“邊緣”控制、本地數據中心、公有云及搭配設施上,物聯網相關產業、行業、企業的高速發展迫切需要更多的技能型人才。
本教材主要針對物聯網應用領域,以移動終端為應用平臺,研究Android在物聯網的相關應用。通過對本書的學習,讀者可以牢固掌握Android編程技術的基本知識,通過典型物聯網實踐的運用,能夠進行應用程序的實際開發,獲得必要的物聯網移動終端開發的基礎知識和應用技能,為培養綜合應用打下基礎。
全書共15章,具體內容介紹如下。
第1~6章為基礎部分:Android簡介;Android系統和應用程序框架;Android開發環境的搭建和使用;Android用戶界面(包括新控件)的相關知識;Android應用程序的相關知識:事件處理機制、多線程、廣播組件、Service組件和Android實現多任務;Android系統中應用程序存儲和訪問數據的方法,包括最新的LitePal的使用方法;內容提供器的使用。
第7~12章是典型物聯網的應用部分:網絡攝像機的訪問;物聯網語音識別開發,包括語音識別技術的發展歷史、TTS識別文字的方法和VoiceRecognition識別語音的方法;物聯網中媒體動畫的實現,包括Android多媒體系統架構基礎、Graphics類和Drawable類、Drawable類實現二維動畫、MediaPlayer類的使用和Android掃描二維碼的方法;Android物聯網網絡開發,包括Socket、HTTP網絡、XML和JSON數據格式解析、Android藍牙通信和Android系統中的NFC;使用智能手機訪問智能電表或智能插座的方案。
第13~15章是綜合實戰部分:Android最新的界面設計——MaterialDesign,詳細介紹了其中最常用的DrawerLayout和NavigationView的聯合使用,以及MaterialDesign的一些開源項目;選擇典型的天氣預報項目,詳細說明了實現過程;Git和GitHub的使用,以及將應用程序發布到360應用商店及嵌入廣告的方法。
本書有下列特點。
(1)面向應用。本書按照應用的特點進行編寫,以應用為主線進行內容講解。
(2)有序分類。按照循序漸進的學習方式,對學習內容重新進行了整理排序,使得每一章既具有獨立性,又在整體上具有完整性。
(3)體現新技術的應用。
(4)主要章節都有綜合實例,是對本章的綜合應用。
對在寫作過程中給予幫助的朋友們,在此表示深深的謝意,感謝電子工業出版社給予的幫助。由于編寫時間倉促,加之作者水平有限,書中疏漏和錯誤之處在所難免,望廣大專家、讀者提出寶貴意見,以便修訂時加以改正。
何福貴,北京勞動保障職業學院副教授,博士后,物聯網應用技術專業教研室主任,樓宇智能化工程技術和物聯網應用技術專業帶頭人,第十一屆北京市高等學校教學名師,北京市優秀專業創新團隊帶頭人。
第一部分 基礎知識
第1章 Android開發簡介
1.1 Android介紹
1.2 Android系統構架
1.3 Android應用程序框架
1.4 本章小結
第2章 Android開發環境的搭建
2.1 獲取Android源碼
2.1.1 在Linux系統中獲取Android源碼
2.1.2 在Windows平臺獲取Android源碼
2.1.3 編譯源碼
2.2 Android Studio應用開發
2.2.1 搭建Android Studio應用開發環境
2.2.2 創建第一個Android項目:HelloWorld
2.2.3 啟動模擬器
2.2.4 運行到模擬器
2.2.5 下載到真機
2.2.6 詳解項目中的資源
2.2.7 詳解build.gradle文件
2.2.8 導入外部項目和Eclipse開發的Android項目
2.2.9 添加外部庫
2.2.10 應用程序的調試
2.2.11 項目實戰:下載Android的各個版本
2.3 本章小結
第3章 Android界面設計
3.1 用戶界面基礎
3.2 Android的Activity
3.2.1 Activity的介紹
3.2.2 Activity的生命周期
3.2.3 創建一個Activity
3.2.4 創建和加載布局
3.2.5 銷毀一個Activity
3.2.6 使用Intent在Activity之間穿梭
3.2.7 Intent調用常見系統組件
3.3 常用控件的使用方法
3.3.1 TextView和EditText
3.3.2 Button、ToggleButton 和ImageView
3.3.3 Spinner
3.3.4 ListView
3.3.5 AlertDialog
3.3.6 ProgressBar
3.4 Android布局
3.4.1 線性布局
3.4.2 相對布局
3.4.3 表格布局
3.4.4 百分比布局
3.4.5 嵌套布局實現計算器界面
3.5 樣式和主題
3.5.1 定義樣式
3.5.2 使用樣式
3.5.3 主題
3.6 新控件RecyclerView、CardView和Palette的使用
3.6.1 新控件的使用
3.6.2 實現縱向滾動和橫向滾動
3.6.3 RecyclerView的點擊事件
3.7 Android新控件
3.8 綜合項目實戰:WebView實現監控界面
3.9 本章小結
第4章 創建Android應用程序
4.1 概述
4.2 事件處理機制
4.2.1 基于監聽器的事件處理
4.2.2 基于回調的事件處理
4.2.3 事件響應的實現
4.2.4 項目實戰:獲取屏幕觸點坐標
4.3 Android多線程
4.3.1 線程的基本用法
4.3.2 在子線程更新UI
4.3.3 Android線程池
4.3.4 Android四種線程池實例
4.4 Android廣播組件
4.4.1 動態注冊廣播
4.4.2 靜態注冊廣播
4.4.3 自定義本地廣播
4.5 后臺服務(Service)
4.5.1 定義一個服務
4.5.2 啟動和停止服務
4.5.3 Service和Activity通信
4.6 Android實現多任務
4.6.1 多任務實現原理
4.6.2 用Handler實現多任務
4.6.3 項目實戰:Handler實現模擬下載
4.6.4 AsyncTask實現多任務
4.6.5 項目實戰:AsyncTask實現計時
4.7 本章小結
第5章 Android中數據的存儲和訪問
5.1 簡介
5.2 使用共同偏好的存取數據
5.2.1 存取共享偏好
5.2.2 Preference框架
5.3 文件讀取和保存
5.3.1 內部存儲
5.3.2 擴展存儲
5.4 存取結構化數據
5.4.1 SQLite簡介
5.4.2 創建SQLite數據庫
5.4.3 操作數據庫
5.5 使用LitePal操作數據庫
5.5.1 LitePal簡介
5.5.2 配置LitePal
5.5.3 創建和升級數據庫
5.5.4 SQLite命令調試
5.5.5 數據庫操作
5.6 網絡存儲
5.7 本章小結
第6章 ContentProvider
6.1 查詢記錄
6.2 修改記錄
6.3 添加記錄
6.4 刪除記錄
6.5 創建Content Provider
6.6 本章小結
第二部分 物聯網應用
第7章 移動智能終端訪問網絡攝像機
7.1 簡介
7.2 網絡攝像機
7.3 系統實現
7.3.1 介紹
7.3.2 網絡攝像機參數設置
7.3.3 智能手機端視頻監控軟件
7.4 本章小結
第8章 物聯網語音識別開發
8.1 語音識別技術概述
8.2 TTS語音識別技術
8.2.1 TTS基礎
8.2.2 TTS開發流程
8.2.3 項目實戰:TTS文字識別實例
8.3 Voice Recognition語言識別
8.3.1 Voice Recognition技術基礎
8.3.2 項目實戰:Voice Recognition語音識別
8.4 本章小結
第9章 在物聯網中媒體動畫的實現
9.1 Android多媒體系統架構基礎
9.2 Graphics類詳解
9.2.1 Graphics類基礎
9.2.2 Android圖形繪制類
9.2.3 繪制基本圖形
9.3 二維動畫
9.3.1 類Drawable
9.3.2 實現Tween動畫效果
9.3.3 Tween動畫的四種動畫效果
9.3.4 實現Frame動畫效果
9.4 項目實戰:物聯網環境控制動畫
9.5 OpenGL ES詳解
9.5.1 OpenGL ES基礎
9.5.2 Android中的OpenGL ES
9.5.3 Open GL的基本操作
9.5.4 項目實戰:利用OpenGL實現旋轉的立方體
9.6 音頻實現
9.6.1 音頻接口類
9.6.2 AudioManager控制鈴聲
9.6.3 錄音詳解
9.6.4 項目實戰:使用MediaPlay播放音樂
9.7 二維碼的識別
9.7.1 二維碼介紹
9.7.2 項目實戰:Android實現二維碼識別
9.8 本章小結
第10章 Android網絡開發
10.1 Android Socket網絡傳輸
10.1.1 什么是Socket
10.1.2 Socket的分類
10.1.3 Socket基本實現原理
10.1.4 Android實現Socket簡單通信
10.1.5 Android客戶端和PC服務器端通信
10.2 Android HTTP網絡傳輸
10.2.1 HttpURLConnection接口
10.2.2 項目實戰:HttpURLConnection獲取信息
10.2.3 使用OkHttp
10.2.4 項目實戰:OkHttp獲取信息
10.3 Android應用程序的權限
10.3.1 Android權限機制詳解
10.3.2 在程序運行時申請權限
10.4 解析XML格式數據
10.4.1 Pull解析方式
10.4.2 SAX解析方式
10.5 解析JSON格式數據
10.5.1 使用JSONObject
10.5.2 使用GSON
10.6 本章小結
第11章 Android無線通信
11.1 Android藍牙傳輸數據
11.1.1 藍牙介紹
11.1.2 藍牙體系結構
11.1.3 藍牙軟件的實現
11.1.4 Android的藍牙接口類
11.1.5 Android藍牙開發步驟
11.1.6 項目實戰:查找藍牙設備
11.1.7 項目實戰:Android手機藍牙控制智能小車
11.2 Android系統中的NFC
11.2.1 近場通信技術基礎
11.2.2 在Android系統中使用NFC
11.2.3 項目實戰:在Android中使用NFC讀取MifareClassic卡
11.3 本章小結
第12章 Android訪問智能電表或智能插座
12.1 簡介
12.1.1 RS-485接口智能插座
12.1.2 無線智能插座
12.1.3 智能電表
12.2 使用智能手機訪問智能電表或智能插座
12.2.1 使用智能手機訪問智能電表或智能插座的方案
12.2.2 使用智能手機訪問Wi-Fi型智能插座或智能電表的方案
12.3 使用Android訪問智能電表或智能插座
12.3.1 智能手機和Pad之間的數據通信
12.3.2 藍牙通信實現
12.3.3 訪問智能電表或智能插座的命令格式
12.4 本章小結
第三部分 綜合實戰
第13章 UI新體驗――Material Design
13.1 什么是Material Design
13.2 Design Support庫的使用
13.3 DrawerLayout和Navigation View
13.4 Material Design開源項目
13.5 本章小結
第14章 綜合項目:Cool Weather
14.1 項目分析
14.2 創建數據庫和表
14.3 遍歷全國省、市、縣數據
14.4 設計天氣信息界面
14.5 省、市、縣數據界面處理
14.6 處理返回的JSON數據
14.7 將天氣信息顯示到界面上
14.8 后臺自動更新天氣
第15章 Android應用程序托管和發布
15.1 Git版本控制工具
15.1.1 安裝Git
15.1.2 創建代碼倉庫
15.1.3 提交本地代碼
15.2 GitHub
15.2.1 在GitHub注冊創建版本庫
15.2.2 將代碼托管到GitHub
15.3 將應用程序發布到360應用商店
15.3.1 生成正式簽名的APK文件
15.3.2 申請360開發賬號
15.3.3 發布應用程序
15.3.4 嵌入廣告
15.4 本章小結
參考文獻