本書系統(tǒng)地介紹了在Android Studio 3.1.2環(huán)境下開發(fā)Android應用的基礎知識和實際應用。全書分11章,包括Android應用開發(fā)概述及開發(fā)環(huán)境、Android項目文件結(jié)構(gòu)分析及調(diào)試、Android UI與Activity組件、手機基本功能程序設計、服務組件及其應用、廣播組件與通知、SQLite數(shù)據(jù)庫編程、Android內(nèi)容提供者組件、Android近距離通信技術(shù)、位置服務與地圖應用開發(fā)和Android網(wǎng)絡編程。本書以介紹Android的四大組件為主線,精心組織目錄和案例,并在Android 7.0手機(或模擬器)上成功運行。此外,每章都精心設計了典型案例以說明其用法,并配有習題及實驗。本書配套的教學網(wǎng)站,包括教學大綱、實驗大綱、各種軟件的下載鏈接、課件和案例源代碼下載鏈接、在線測試等內(nèi)容,極大地方便了教與學的實施。
吳志祥,武漢科技大學計算機科學與技術(shù)學院技術(shù)系副教授,具有豐富的Java、Android編程開發(fā)教學經(jīng)驗,主編《Java程序設計簡明教程》《Java EE應用開發(fā)教程》《Android應用開發(fā)案例教程》《PHP動態(tài)網(wǎng)頁設計與網(wǎng)站架設》等多部暢銷教材。
第1章 Android應用開發(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 應用程序框架層 4
1.2.4 應用程序?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應用 10
1.4.1 創(chuàng)建一個Hello級Android Studio項目 10
1.4.2 手機模擬器與AVD Manager 14
1.4.3 安裝和運行Android應用 16
習題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應用程序的基本組成 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應用程序的運行入口 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
習題2 35
實驗2 36
第3章 Android UI與Activity組件 37
3.1 用戶界面UI設計 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)聽器設計 53
3.3.4 單選按鈕控件RadioButton與復選框控件CheckBox 54
3.3.5 消息提醒對話框控件AlertDialog與進度控件ProgressDialog 55
3.3.6 列表控件及其數(shù)據(jù)適配器和列表項選擇監(jiān)聽器 57
3.3.7 下拉列表控件Spinner 62
3.4 高級UI程序設計 63
3.4.1 日期和時間選擇器(DatePicker和TimePicker) 63
3.4.2 自動完成文本控件AutoCompleteTextView 64
3.4.3 標題欄Toolbar與OptionMenu菜單設計 64
3.4.4 Fragment與ListFragment 66
3.4.5 底部導航BottomNavigationView 72
習題3 75
實驗3 76
第4章 手機基本功能程序設計 79
4.1 預備知識 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 打電話程序設計 92
4.3 短信程序設計 94
4.3.1 SMS簡介 94
4.3.2 短信管理器 94
4.3.3 短信發(fā)送程序的實現(xiàn) 94
4.4 手機音頻播放與錄音程序設計 96
4.4.1 音頻播放 96
4.4.2 手機錄音 98
4.5 手機視頻播放 101
4.6 手機拍照程序設計 102
習題4 105
實驗4 106
第5章 服務組件及其應用 109
5.1 服務組件Service的基本用法 109
5.1.1 Android系統(tǒng)服務 109
5.1.2 Service組件及其生命周期 111
5.1.3 自定義服務與服務注冊 113
5.1.4 服務的顯式啟動與隱式啟動 113
5.1.5 綁定服務方式與服務代理 115
5.2 遠程服務 117
5.2.1 遠程服務概念 117
5.2.2 Android跨進程調(diào)用與接口定義語言AIDL 118
5.2.3 遠程服務的建立與使用實例 118
5.3 綜合應用實例—自動掛斷來電后回復短信 123
習題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)短信廣播應用實例 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
習題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ù)庫事務 166
習題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應用里創(chuàng)建并注冊內(nèi)容提供者 177
8.2.2 在另一個應用程序里使用內(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)系人程序設計 184
8.4 Android后臺線程與Android組件的綜合應用 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
習題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應用實例 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應用實例:讀/寫Tag標簽 231
習題9 238
實驗9 239
第10章 位置服務與地圖應用開發(fā) 241
10.1 位置服務概述 241
10.1.1 基于位置的服務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)絡連接及狀態(tài)相關(guān)類 247
10.2.3 WiFi或GPRS定位實現(xiàn) 247
10.3 百度定位及地圖應用開發(fā) 254
10.3.1 百度定位應用開發(fā)基礎 254
10.3.2 注冊百度開發(fā)者賬號,申請位置應用的Key 256
10.3.3 在清單文件中注冊權(quán)限、服務及應用的Key 258
10.3.4 百度綜合定位實現(xiàn) 259
10.3.5 百度地圖顯示 261
習題10 267
實驗10 268
第11章 Android網(wǎng)絡編程 270
11.1 基于HTTP協(xié)議的Android網(wǎng)絡編程 270
11.1.1 Android網(wǎng)絡編程概述 270
11.1.2 HTTP請求與響應 271
11.1.3 使用HttpURLConnection訪問網(wǎng)絡資源 271
11.1.4 使用網(wǎng)絡接口HttpClient調(diào)用Web服務 274
11.2 Android網(wǎng)絡圖像下載與通信框架 276
11.2.1 網(wǎng)絡圖像下載框架Glide 276
11.2.2 網(wǎng)絡通信框架Volley 277
11.3 手機App與Web服務器通信 283
11.3.1 Web服務器項目 283
11.3.2 App的登錄程序設計 285
11.3.3 App的主界面程序設計 293
習題11 295
實驗11 296
習題答案 298
參考文獻 302