本書系統(tǒng)地介紹了在Android Studio 3.1.2環(huán)境下開發(fā)Android應(yīng)用的基礎(chǔ)知識和實際應(yīng)用。全書分11章,包括Android應(yīng)用開發(fā)概述及開發(fā)環(huán)境、Android項目文件結(jié)構(gòu)分析及調(diào)試、Android UI與Activity組件、手機基本功能程序設(shè)計、服務(wù)組件及其應(yīng)用、廣播組件與通知、SQLite數(shù)據(jù)庫編程、Android內(nèi)容提供者組件、Android近距離通信技術(shù)、位置服務(wù)與地圖應(yīng)用開發(fā)和Android網(wǎng)絡(luò)編程。本書以介紹Android的四大組件為主線,精心組織目錄和案例,并在Android 7.0手機(或模擬器)上成功運行。此外,每章都精心設(shè)計了典型案例以說明其用法,并配有習(xí)題及實驗。本書配套的教學(xué)網(wǎng)站,包括教學(xué)大綱、實驗大綱、各種軟件的下載鏈接、課件和案例源代碼下載鏈接、在線測試等內(nèi)容,極大地方便了教與學(xué)的實施。
吳志祥,武漢科技大學(xué)計算機科學(xué)與技術(shù)學(xué)院技術(shù)系副教授,具有豐富的Java、Android編程開發(fā)教學(xué)經(jīng)驗,主編《Java程序設(shè)計簡明教程》《Java EE應(yīng)用開發(fā)教程》《Android應(yīng)用開發(fā)案例教程》《PHP動態(tài)網(wǎng)頁設(shè)計與網(wǎng)站架設(shè)》等多部暢銷教材。
第1章 Android應(yīng)用開發(fā)概述及開發(fā)環(huán)境 1
1.1 移動開發(fā)與智能手機 1
1.1.1 移動開發(fā)概述 1
1.1.2 Android智能手機的使用特點 1
1.1.3 手機智能操作系統(tǒng)及分類 2
1.2 Android系統(tǒng)架構(gòu) 2
1.2.1 Linux內(nèi)核層 3
1.2.2 函數(shù)庫和Android運行時環(huán)境層 4
1.2.3 應(yīng)用程序框架層 4
1.2.4 應(yīng)用程序?qū)?5
1.3 Android Studio開發(fā)環(huán)境 5
1.3.1 Android Studio概述 5
1.3.2 下載和安裝Android Studio 3.1.2 5
1.3.3 Android Studio相關(guān)文件夾 6
1.3.4 Android SDK與Android API 6
1.3.5 Android Studio常用組合鍵 10
1.4 創(chuàng)建和運行Android應(yīng)用 10
1.4.1 創(chuàng)建一個Hello級Android Studio項目 10
1.4.2 手機模擬器與AVD Manager 14
1.4.3 安裝和運行Android應(yīng)用 16
習(xí)題1 17
實驗1 18
第2章 Android項目結(jié)構(gòu)分析及調(diào)試 19
2.1 Android項目的文件系統(tǒng)結(jié)構(gòu) 19
2.1.1 項目配置清單文件夾manifests 19
2.1.2 源程序文件夾Java 20
2.1.3 資源程序文件夾res 20
2.1.4 項目多模塊及構(gòu)建Gradle Scripts 22
2.1.5 使用Project或Packages視圖 24
2.2 Android應(yīng)用程序的基本組成 25
2.2.1 Activity組件與視圖View 25
2.2.2 Service組件 25
2.2.3 BroadcastReceiver組件 25
2.2.4 ContentProvider組件 26
2.2.5 Application、Context和Intent 26
2.2.6 Android應(yīng)用程序的運行入口 27
2.3 Android虛擬機Dalvik 28
2.4 Android Studio項目調(diào)試 29
2.4.1 主動調(diào)試(Toast與Logcat) 29
2.4.2 動態(tài)調(diào)試 31
2.4.3 單元測試 32
習(xí)題2 35
實驗2 36
第3章 Android UI與Activity組件 37
3.1 用戶界面UI設(shè)計 37
3.1.1 Android界面視圖類 37
3.1.2 Android用戶界面事件 38
3.1.3 界面與布局 39
3.2 活動組件Activity 47
3.2.1 AppCompatActivity、Activity和Context 47
3.2.2 Activity組件的基本方法 48
3.2.3 Activity類具有的擴展方法 48
3.2.4 Activity的生命周期 49
3.2.5 手機橫/豎屏自動切換問題 50
3.3 常用Widget控件的使用 51
3.3.1 文本控件TextView和EditText 51
3.3.2 圖像控件ImageView 52
3.3.3 命令按鈕控件Button、ImageButton及其單擊事件監(jiān)聽器設(shè)計 53
3.3.4 單選按鈕控件RadioButton與復(fù)選框控件CheckBox 54
3.3.5 消息提醒對話框控件AlertDialog與進度控件ProgressDialog 55
3.3.6 列表控件及其數(shù)據(jù)適配器和列表項選擇監(jiān)聽器 57
3.3.7 下拉列表控件Spinner 62
3.4 高級UI程序設(shè)計 63
3.4.1 日期和時間選擇器(DatePicker和TimePicker) 63
3.4.2 自動完成文本控件AutoCompleteTextView 64
3.4.3 標題欄Toolbar與OptionMenu菜單設(shè)計 64
3.4.4 Fragment與ListFragment 66
3.4.5 底部導(dǎo)航BottomNavigationView 72
習(xí)題3 75
實驗3 76
第4章 手機基本功能程序設(shè)計 79
4.1 預(yù)備知識 79
4.1.1 Activity組件的調(diào)用與返回 79
4.1.2 Android權(quán)限、權(quán)限組與運行時權(quán)限動態(tài)檢測 83
4.1.3 SharedPreferences存儲與文件存儲 87
4.1.4 抽象類android.net.Uri及其靜態(tài)方法parse() 92
4.2 打電話程序設(shè)計 92
4.3 短信程序設(shè)計 94
4.3.1 SMS簡介 94
4.3.2 短信管理器 94
4.3.3 短信發(fā)送程序的實現(xiàn) 94
4.4 手機音頻播放與錄音程序設(shè)計 96
4.4.1 音頻播放 96
4.4.2 手機錄音 98
4.5 手機視頻播放 101
4.6 手機拍照程序設(shè)計 102
習(xí)題4 105
實驗4 106
第5章 服務(wù)組件及其應(yīng)用 109
5.1 服務(wù)組件Service的基本用法 109
5.1.1 Android系統(tǒng)服務(wù) 109
5.1.2 Service組件及其生命周期 111
5.1.3 自定義服務(wù)與服務(wù)注冊 113
5.1.4 服務(wù)的顯式啟動與隱式啟動 113
5.1.5 綁定服務(wù)方式與服務(wù)代理 115
5.2 遠程服務(wù) 117
5.2.1 遠程服務(wù)概念 117
5.2.2 Android跨進程調(diào)用與接口定義語言AIDL 118
5.2.3 遠程服務(wù)的建立與使用實例 118
5.3 綜合應(yīng)用實例—自動掛斷來電后回復(fù)短信 123
習(xí)題5 131
實驗5 132
第6章 廣播組件與通知 135
6.1 廣播與BroadcastReceiver組件 135
6.1.1 Android廣播機制 135
6.1.2 使用BroadcastReceiver組件定義廣播接收者 136
6.1.3 接收系統(tǒng)短信廣播應(yīng)用實例 140
6.2 自定義廣播及其使用 141
6.2.1 自定義廣播 141
6.2.2 以動態(tài)注冊方式使用自定義廣播 142
6.2.3 以靜態(tài)注冊方式使用自定義廣播 143
6.3 通知 144
6.3.1 通知與通知類Notification 144
6.3.2 通知管理器類NotificationManager 145
6.3.3 使用PendingIntent查看通知內(nèi)容 145
習(xí)題6 148
實驗6 149
第7章 SQLite數(shù)據(jù)庫編程 151
7.1 SQLite數(shù)據(jù)庫簡介 151
7.1.1 SQLite數(shù)據(jù)庫軟件的特點 151
7.1.2 Android系統(tǒng)對SQLite數(shù)據(jù)庫的支持 151
7.2 使用SQLiteOpenHelper創(chuàng)建、打開或更新數(shù)據(jù)庫 152
7.2.1 SQLite數(shù)據(jù)庫及表的創(chuàng)建與打開 152
7.2.2 使用SQLiteSpy驗證創(chuàng)建的數(shù)據(jù)庫 153
7.2.3 SQLite數(shù)據(jù)庫的更新 154
7.3 使用SQLiteDatabase實現(xiàn)數(shù)據(jù)庫表的增加、刪除、修改和查詢 155
7.3.1 記錄的增加、刪除、修改和查詢 155
7.3.2 使用適配器SimpleAdapter顯示查詢結(jié)果 157
7.3.3 以DAO方式訪問數(shù)據(jù)庫編寫程序 158
7.3.4 使用數(shù)據(jù)庫事務(wù) 166
習(xí)題7 169
實驗7 171
第8章 Android內(nèi)容提供者組件 173
8.1 ContentProvider組件及其相關(guān)類 173
8.1.1 抽象類ContentProvider(內(nèi)容提供者) 173
8.1.2 抽象類ContentResolver(內(nèi)容解析器) 175
8.1.3 內(nèi)容提供者的URI定義及其相關(guān)類(UriMatcher和ContentUris) 176
8.2 自定義ContentProvider及其使用 177
8.2.1 在Android應(yīng)用里創(chuàng)建并注冊內(nèi)容提供者 177
8.2.2 在另一個應(yīng)用程序里使用內(nèi)容提供者 180
8.3 讀取手機聯(lián)系人信息 183
8.3.1 手機聯(lián)系人相關(guān)類ContactsContract 183
8.3.2 手機聯(lián)系人數(shù)據(jù)庫及其相關(guān)表 183
8.3.3 讀取手機聯(lián)系人程序設(shè)計 184
8.4 Android后臺線程與Android組件的綜合應(yīng)用 187
8.4.1 Android UI主線程 187
8.4.2 使用Handler向UI線程傳遞消息 187
8.4.3 使用AsyncTask更新UI線程 189
8.4.4 使用ContentProvider+AsyncTask實現(xiàn)群發(fā)短信 191
習(xí)題8 199
實驗8 200
第9章 Android近距離通信技術(shù) 202
9.1 WiFi通信 202
9.1.1 WiFi簡介 202
9.1.2 Android對WiFi的支持 202
9.1.3 WiFi應(yīng)用實例 204
9.2 藍牙通信Bluetooth 208
9.2.1 Bluetooth簡介 208
9.2.2 Android對Bluetooth的支持 208
9.2.3 藍牙聊天實例 211
9.3 近場通信NFC 229
9.3.1 NFC簡介 229
9.3.2 Android對NFC的支持 231
9.3.3 NFC應(yīng)用實例:讀/寫Tag標簽 231
習(xí)題9 238
實驗9 239
第10章 位置服務(wù)與地圖應(yīng)用開發(fā) 241
10.1 位置服務(wù)概述 241
10.1.1 基于位置的服務(wù)LBS 241
10.1.2 Android API提供的位置包 242
10.1.3 Google Map APIs 243
10.2 Android定位實現(xiàn) 244
10.2.1 GPS定位實現(xiàn) 245
10.2.2 網(wǎng)絡(luò)連接及狀態(tài)相關(guān)類 247
10.2.3 WiFi或GPRS定位實現(xiàn) 247
10.3 百度定位及地圖應(yīng)用開發(fā) 254
10.3.1 百度定位應(yīng)用開發(fā)基礎(chǔ) 254
10.3.2 注冊百度開發(fā)者賬號,申請位置應(yīng)用的Key 256
10.3.3 在清單文件中注冊權(quán)限、服務(wù)及應(yīng)用的Key 258
10.3.4 百度綜合定位實現(xiàn) 259
10.3.5 百度地圖顯示 261
習(xí)題10 267
實驗10 268
第11章 Android網(wǎng)絡(luò)編程 270
11.1 基于HTTP協(xié)議的Android網(wǎng)絡(luò)編程 270
11.1.1 Android網(wǎng)絡(luò)編程概述 270
11.1.2 HTTP請求與響應(yīng) 271
11.1.3 使用HttpURLConnection訪問網(wǎng)絡(luò)資源 271
11.1.4 使用網(wǎng)絡(luò)接口HttpClient調(diào)用Web服務(wù) 274
11.2 Android網(wǎng)絡(luò)圖像下載與通信框架 276
11.2.1 網(wǎng)絡(luò)圖像下載框架Glide 276
11.2.2 網(wǎng)絡(luò)通信框架Volley 277
11.3 手機App與Web服務(wù)器通信 283
11.3.1 Web服務(wù)器項目 283
11.3.2 App的登錄程序設(shè)計 285
11.3.3 App的主界面程序設(shè)計 293
習(xí)題11 295
實驗11 296
習(xí)題答案 298
參考文獻 302