本本教材介紹了Android程序的開發(fā)設計,以培養(yǎng)學生的工程應用能力為目標,從基礎知識到實際開發(fā)應用,由淺入深,通俗易懂,案例豐富,著重提高學生智能手機軟件開發(fā)能力。每一個章節(jié)在講述理論知識點后,都配有相應案例供學生實踐練習。本書包含的主要內(nèi)容有Android環(huán)境的搭建、布局管理、常用控件介紹、菜單與消息提示、Android程序調(diào)試、數(shù)據(jù)存儲、廣播和服務、網(wǎng)絡編程,*后提供一個綜合案例,提高學生的綜合應用開發(fā)能力。
本書既可以作為高等院校Android程序設計課程的教材,也可以作為高職高專院校相應課程的教材。
《Android應用程序設計(第2版)》圖文并茂,條例清楚,內(nèi)容豐富,每個案例都提供相應的實例代碼,并且對代碼進行了詳細的解釋,方便讀者學習、練習。
隨著我國4G網(wǎng)絡的發(fā)展,智能手機以其強大、豐富的娛樂功能以及訪問網(wǎng)絡的便捷迅速普及,已經(jīng)完全替代了以前的功能機。近年,很多手機APP例如微信、地圖等,已經(jīng)成為手機最流行的軟件之一。同時,對于企業(yè)來說,以前的PC辦公、管理系統(tǒng)已經(jīng)不能完全滿足實際的需求,隨時隨地的辦公、交流溝通、訪問公司的業(yè)務系統(tǒng)的需求愈發(fā)強烈。因此,智能手機APP的開發(fā)設計越來越受到軟件公司的重視,開發(fā)人員的需求量也越來 越大。本書以培養(yǎng)學生的工程應用能力為目標,以提高學生智能手機軟件開發(fā)能力為目的,從工程實際需求出發(fā),合理安排知識結構,由淺入深,通俗易懂,循序漸進,案例豐富,以縮小高等院校人才培養(yǎng)與軟件公司人才需求差距。針對Android平臺版本的更新以及讀者反饋的意見,本次修訂進行了相應的調(diào)整與修改,但本書的基本原則與風格不變,保持第1版以實際開發(fā)應用為主的特點,第2版主要的修改有:?第2版的Android開發(fā)平臺版本從原來的2.2更新為4.4。?增加了網(wǎng)絡編程、線程處理方面的內(nèi)容。?刪除了第1版中手機通信與設置相應的內(nèi)容。?更新了本書最后的綜合案例,由原來單機版的游戲更新為網(wǎng)絡訪問APP,更符合目前手機APP的開發(fā)模式。?根據(jù)知識結構,對內(nèi)容安排進行了相應調(diào)整。本書具有以下特色:?本書講述從Android的基礎知識到實際開發(fā)應用,結構清晰。以學生為主體,理論聯(lián)系實際,每一章節(jié)都配有案例供學生練習、實踐,最后以一個實際綜合案例,來提高學生的實際動手能力,同時熟悉Android手機軟件開發(fā)的過程。?本書在教學方法上采用案例驅動與綜合實訓相結合的方式,由案例程序得到基本知識點,再進行知識拓展,并以學生實際動手寫程序來完成一個知識單元的學習和任務。最后由案例實訓,將分散知識點的小案例綜合起來,有利于學生把知識點貫穿起來,形成系統(tǒng)性、完整性的項目體系。?提供立體化教材,提供下載教學用課件PPT、課程案例源代碼等,方便學生學習。本書共有12章,主要內(nèi)容如下。第1章 Android概述:介紹Android平臺的發(fā)展歷史。第2章 Android開發(fā)平臺搭建與設置:介紹創(chuàng)建Android程序的方法、掌握Android開發(fā)平臺的搭建、Android 應用程序構成。第3章 Android布局管理:介紹Android中線性布局、相對布局、表格布局、幀布局、絕對布局的使用,了解布局之間的嵌套。第4章 Activity組件介紹:介紹Activity的生命周期、掌握Activity之間的調(diào)用及數(shù)據(jù)傳送。第5章 常用基本控件:介紹TextView、EditText、Button、RadioButton、CheckBox等基本控件的使用。第 6 章 高級控件:介紹AutoCompleteTextView、Spinner、ListView、GridView、ProgressBar、Gallery等高級控件的使用。第7章 菜單與消息提示:介紹選項菜單、上下文菜單、Alert對話框、Toast、Notification的使用方法。第8章 Android程序調(diào)試:介紹Android程序的調(diào)試方法、DDMS的使用。第 9 章 Android數(shù)據(jù)存儲與處理:介紹首選項、文件、數(shù)據(jù)庫的訪問方法,ContentProvider類的使用方法。第10章 網(wǎng)絡編程:介紹線程處理及http網(wǎng)絡訪問。第11章 廣播和服務:介紹廣播的發(fā)送、接收及服務的使用。第12章 基于高德地圖的物流車輛軌跡APP:介紹物流軌跡跟蹤APP的開發(fā)及設計。在學時設計上,總量控制為96學時,其中64學時為教學時數(shù),可分為教學48學時,實驗16學時(或教學40學時,實驗24學時),本書按64學時進行內(nèi)容選取,另有32學時的綜合實訓,其源程序代碼通過立體化教材在網(wǎng)站上提供,不在本書內(nèi)反映。本書圖文并茂,條理清晰,內(nèi)容豐富,每個案例都提供相應的實例代碼,并且對代碼進行了詳細的解釋,方便讀者學習、聯(lián)系。本書由王英強、陳綏陽、張文勝主持編寫,同時也得到了其他教師的大力支持。第1章和第2章由王征風編寫,第3章和第4章由王紅剛編寫,第5章~第7章、第12章由王英強編寫,第8章~第9章由王振鐸編寫,第10章和第11章由張文勝編寫,最后由陳綏陽教授進行統(tǒng)稿。在編寫本書的過程中,清華大學出版社的蘇明芳老師也提出了很多寶貴的意見,為這本書的出版付出了很多的努力。在此,編者對他們表示衷心的感謝。由于編者水平有限,本書難免有不足之處,歡迎廣大讀者批評指正。
編 者 2016年10月
第1章 Android概述................................................................................................... 1
1.1 Android簡介... 1
1.2 Android發(fā)展歷史... 2
1.3 Android平臺架構... 6
1.4 Android基本組件... 8
1.5 習題... 10
第2章 Android開發(fā)平臺搭建與設置... 11
2.1 Android開發(fā)工具介紹... 11
2.2 Android開發(fā)平臺的搭建與設置... 12
2.3 創(chuàng)建HelloAndroid項目... 14
2.4 Android應用程序構成介紹... 17
2.5 習題... 20
第3章 Android布局管理... 21
3.1 View布局概述... 21
3.2 LinearLayout(線性布局)... 23
3.2.1 LinearLayout類簡介... 23
3.2.2 線性布局實例... 24
3.3 TableLayout(表格布局)... 26
3.3.1 TableLayout類簡介... 26
3.3.2 表格布局實例... 27
3.4 RelativeLayout(相對布局)... 30
3.4.1 RelativeLayout類簡介... 30
3.4.2 相對布局實例... 30
3.5 FrameLayout(幀布局)... 33
3.5.1 FrameLayout類簡介... 34
3.5.2 幀布局實例... 34
3.6 AbsoluteLayout(絕對布局)... 35
3.6.1 AbsoluteLayout類簡介... 35
3.6.2 絕對布局實例... 36
3.7 布局的嵌套... 37
3.8 習題... 40
第4章 Activity組件介紹... 42
4.1 Activity介紹... 42
4.2 調(diào)用其他的Activity. 43
4.3 不同Activity之間數(shù)據(jù)傳送... 47
4.4 返回數(shù)據(jù)到前一個Activity. 49
4.5 Activity的生命周期與管理... 52
4.6 習題... 57
第5章 常用基本控件... 59
5.1 文本控件... 59
5.1.1 TextView類簡介... 59
5.1.2 EditText類簡介... 60
5.1.3 文本框使用實例... 60
5.2 按鈕控件... 63
5.2.1 Button類簡介... 63
5.2.2 ImageButton類簡介... 63
5.2.3 按鈕使用實例... 63
5.3 單選按鈕... 66
5.3.1 RadioButton類簡介... 66
5.3.2 單選按鈕使用實例... 67
5.4 復選框... 70
5.4.1 CheckBox類簡介... 70
5.4.2 復選框使用實例... 70
5.5 圖片控件... 73
5.5.1 ImageView類簡介... 73
5.5.2 ImageView使用實例... 74
5.6 時鐘控件... 76
5.6.1 AnalogClock類與DigitalClock類簡介... 77
5.6.2 時鐘控件使用實例... 77
5.7 日期時間控件... 78
5.7.1 DatePicker類簡介... 78
5.7.2 TimePicker類簡介... 79
5.7.3 日期時間控件使用實例... 79
5.8 習題... 82
第6章 高級控件... 83
6.1 自動完成文本控件... 83
6.1.1 AutoCompleteTextView類簡介... 83
6.1.2
MultiAutoCompleteTextView類簡介... 84
6.1.3 自動完成文本實例... 84
6.2 下拉列表控件... 86
6.2.1 Spinner類簡介... 86
6.2.2 下拉列表控件實例... 87
6.3 滾動視圖... 89
6.3.1 ScrollView類介紹... 89
6.3.2 滾動視圖實例... 90
6.4 列表視圖... 92
6.4.1 ListView類簡介... 92
6.4.2 列表視圖實例... 93
6.5 網(wǎng)格視圖... 103
6.5.1 GridView類簡介... 103
6.5.2 GridView使用實例... 103
6.6 進度條與滑塊... 107
6.6.1 ProgressBar類簡介... 107
6.6.2 SeekBar類簡介... 108
6.6.3 進度條與滑塊使用實例... 108
6.7 選項卡... 111
6.7.1 TabHost類簡介... 111
6.7.2 選項卡使用實例... 112
6.8 畫廊控件... 118
6.8.1 Gallery類簡介... 119
6.8.2 Gallery使用實例... 119
6.9 習題... 122
第7章 菜單與消息提示... 124
7.1 選項菜單... 124
7.1.1 選項菜單相關類... 124
7.1.2 選項菜單和子菜單使用實例... 126
7.2 上下文菜單... 128
7.2.1 ContextMenu類簡介... 129
7.2.2 上下文菜單使用實例... 130
7.3 對話框... 133
7.3.1 對話框簡介... 133
7.3.2 對話框使用實例... 133
7.4 Toast消息提示... 141
7.4.1 Toast簡介... 141
7.4.2 Toast使用實例... 142
7.5 Notification狀態(tài)欄通知... 144
7.5.1 Notification類簡介... 144
7.5.2 Notification使用實例... 145
7.6 習題... 149
第8章 Android程序調(diào)試... 150
8.1 DDMS介紹... 150
8.2 啟動DDMS. 151
8.3 使用DDMS進程管理... 152
8.4 使用DDMS進行文件操作... 155
8.5 使用模擬器控制... 156
8.6 使用程序日志LogCat. 158
8.7 在模擬器或者目標設備上截屏... 160
8.8 使用手機調(diào)試Android程序... 160
8.9 習題... 161
第9章 Android數(shù)據(jù)存儲與處理... 162
9.1 首選項... 162
9.1.1 SharedPreferences類簡介... 162
9.1.2 SharedPreferences使用實例... 164
9.2 文件... 171
9.2.1 文件訪問... 171
9.2.2 文件訪問實例... 172
9.3 數(shù)據(jù)庫... 189
9.3.1 SQLite數(shù)據(jù)庫操作相關類簡介... 190
9.3.2 SQLite數(shù)據(jù)庫使用實例... 191
9.4 ContentProvider類... 202
9.4.1 ContentProvider類簡介... 202
9.4.2 ContentProvider使用實例... 204
9.5 習題... 213
第10章 網(wǎng)絡編程... 214
10.1 線程處理與Handler. 214
10.1.1 為何使用多線程... 214
10.1.2 什么是Handler. 216
10.1.3 異步任務AsyncTask. 219
10.1.4 AsyncTask實例... 220
10.2 使用HTTP訪問網(wǎng)絡... 225
10.2.1 使用HttpURLConnection. 225
10.2.2 HttpURLConnection實例... 225
10.2.3 使用HttpClient. 229
10.2.4 HttpClient實例... 230
10.3 數(shù)據(jù)提交方式... 232
10.4 習題... 243
第11章 廣播和服務... 244
11.1 廣播機制... 244
11.1.1 為何使用廣播... 244
11.1.2 消息廣播運行原理... 245
11.1.3 廣播接收者實例... 246
11.2 常用的廣播接收者... 249
11.3 服務... 253
11.3.1 Service生命周期及啟動方法... 253
11.3.2 Start方式啟動Service實例... 255
11.3.3 Bind方式啟動Service實例... 257
11.4 服務和廣播綜合實例... 261
11.5 習題... 267
第12章 基于高德地圖的物流車輛軌跡APP. 268
12.1 基于位置服務... 268
12.2 高德地圖API 269
12.3 系統(tǒng)總體設計... 270
12.3.1 系統(tǒng)結構設計... 270
12.3.2 系統(tǒng)網(wǎng)絡設計... 270
12.3.3 數(shù)據(jù)庫設計... 271
12.4 申請高德地圖Key. 272
12.5 系統(tǒng)實現(xiàn)... 274
12.5.1 WebService實現(xiàn)及部署... 274
12.5.2 將高德地圖加入項目中... 280
12.5.3 實現(xiàn)數(shù)據(jù)庫訪問類... 281
12.5.4 手機客戶端實現(xiàn)... 285
12.6 本章小結... 297
參考文獻... 298