本書是按照教育部應用型科技大學的教學要求進行編寫的一個項目式教程。圍繞目前Android的核心教學內容,全書分為9章圍繞一個綜合項目——推箱子手機游戲進行知識介紹和應用開發。前8章主要介紹Android項目的環境搭建,項目界面的使用,項目的幾大組件的添加,2D、音頻、視頻等多媒體,Android項目的幾大數據存儲方法,網絡服務,項目的多環境支持、打包、發布等基礎內容,最后一章介紹傳感器、谷歌地圖等高級應用。
在知識講解的基礎上,本書注重學生應用能力的培養,每一章節既有小的案例配合知識點的講解,又有綜合項目的應用,使得學生能夠把所學知識快速應用到實際項目中去,達到“教、學、做”一體化。
十二五規劃教材,教學做一體化,講解Android核心知識,提高學生應用能力
宋三華,男,1981年生,2005年參加工作。本科就讀于華中師范大學、2005年畢業,2009年獲取同濟大學軟件工程碩士學位。現屬信息工程學院,主要從事網絡及Android嵌入式系統教學研究,近幾年先后在天中學刊、價值工程等期刊發表《基于角色的多域訪問控制研究》、《利用Eclipse插件實現安卓在線實驗室》等論文8篇,參與課題5項,多次在黃淮學院教學大獎賽中獲獎。任課之余兼職信息工程學院嵌入式系統、網絡工程等實驗室管理工作。
第1章 創建一個Android項目1
1.1 開發前的準備1
1.1.1 學習目標1
1.1.2 相關知識1
1.1.3 項目任務——項目環境搭建5
1.2 創建一個項目9
1.2.1 學習目標9
1.2.2 項目任務——創建推箱子游戲9
1.3 項目的運行與調試12
1.3.1 學習目標13
1.3.2 相關知識13
1.3.3 項目任務——游戲的運行與調試16
小結18
習題18
第2章 為項目添加界面19
2.1 界面布局方式的使用19
2.1.1 學習目標19
2.1.2 相關知識19
2.1.3 項目任務——構建游戲界面布局39
2.2 界面交互處理41
2.2.1 學習目標42
2.2.2 相關知識42
2.2.3 項目任務——實現游戲界面交互57
2.3 常用界面組件59
2.3.1 學習目標59
2.3.2 相關知識59
2.3.3 項目任務——設置游戲界面組件67
2.4 Menu的使用69
2.4.1 學習目標69
2.4.2 相關知識69
2.4.3 項目任務——給游戲添加Menu76
2.5 AlterDialog的使用79
2.5.1 學習目標80
2.5.2 相關知識80
2.5.3 項目任務——在游戲中應用AlterDialog88
小結89
習題90
第3章 增加項目組件91
3.1 活動組件介紹91
3.1.1 學習目標91
3.1.2 相關知識91
3.1.3 項目任務——給游戲添加新的活動類99
3.2 Intent介紹103
3.2.1 學習目標103
3.2.2 相關知識104
3.2.3 項目任務——實現游戲界面之間的跳轉113
3.3 在游戲中使用服務113
3.3.1 學習目標114
3.3.2 相關知識114
3.3.3 項目任務——在游戲中使用服務類118
3.4 BroadcastReceiver介紹122
3.4.1 學習目標122
3.4.2 相關知識122
3.4.3 項目任務——BroadcastReceiver應用(*)134
小結136
習題136
第4章 在項目中使用多媒體137
4.1 自定義視圖應用137
4.1.1 學習目標137
4.1.2 相關知識137
4.1.3 項目任務——建立游戲主界面142
4.2 2D圖形的使用148
4.2.1 學習目標148
4.2.2 相關知識148
4.2.3 項目任務——完成游戲主界面的游戲功能154
4.3 在項目中使用音頻163
4.3.1 學習目標163
4.3.2 相關知識163
4.3.3 項目任務——在游戲中添加背景音樂164
4.4 視頻的使用166
4.4.1 學習目標167
4.4.2 相關知識167
4.4.3 項目任務——在游戲中使用視頻(*)171
小結175
習題176
第5章 項目中的數據存儲177
5.1 內部存儲177
5.1.1 學習目標177
5.1.2 相關知識177
5.1.3 項目任務——使用內存存儲數據178
5.2 外部存儲182
5.2.1 學習目標183
5.2.2 相關知識183
5.2.3 項目任務——使用SDCard存儲數據(*)185
5.3 SharedPreference190
5.3.1 學習目標190
5.3.2 相關知識190
5.3.3 項目任務——存儲游戲數據194
5.4 網絡存儲199
5.4.1 學習目標199
5.4.2 相關知識199
5.4.3 項目任務——在項目中使用網絡存儲200
5.5 SQLite204
5.5.1 學習目標204
5.5.2 相關知識204
5.5.3 項目任務——在項目中使用SQLite(*)210
5.6 ContentProvide218
5.6.1 學習目標218
5.6.2 相關知識218
5.6.3 項目任務——使用內容提供者在項目間共享數據220
小結223
習題223
第6章 網絡服務224
6.1 Socket網絡通信224
6.1.1 學習目標224
6.1.2 相關知識224
6.1.3 項目任務——建立Socket通信應用(*)228
6.2 通過HTTP獲取網絡資源237
6.2.1 學習目標237
6.2.2 相關知識237
6.2.3 項目任務——獲取網站內容239
6.3 瀏覽網頁244
6.3.1 學習目標244
6.3.2 相關知識244
6.3.3 項目任務——瀏覽網站內容249
小結251
習題252
第7章 項目的改進253
7.1 多語言支持253
7.1.1 學習目標253
7.1.2 相關知識253
7.1.3 項目任務——給游戲添加多語言支持255
7.2 多終端支持259
7.2.1 學習目標259
7.2.2 相關知識259
7.2.3 項目任務——讓游戲支持不同手機終端270
小結273
習題273
第8章 項目的打包與發布274
8.1 項目的簽名與打包274
8.1.1 學習目標274
8.1.2 相關知識274
8.1.3 項目任務——給推箱子簽名278
8.2 發布游戲278
8.2.1 學習目標278
8.2.2 相關知識278
8.2.3 項目任務——發布推箱子游戲281
小結281
習題281
第9章 項目的高級應用282
9.1 傳感器的使用282
9.1.1 學習目標282
9.1.2 相關知識282
9.1.3 項目任務——使用傳感器(*)287
9.2 地圖應用291
9.2.1 學習目標291
9.2.2 相關知識291
9.2.3 項目任務——百度地圖的應用(*)309
小結312
習題312
本書是一本以應用型教學為基礎的教材,主要講解Android 項目開發的相關知識,全書圍繞一個綜合項目——推箱子手機游戲進行Android 項目開發介紹,中間穿插講解一些小的案例和一些知識點。教材旨在通過一個綜合案例及若干個小的例子讓讀者快速理解Android 項目開發的基本知識、培養讀者的動手能力。
全書共有 9 章,每一章節的具體知識點介紹如下。
第 1 章介紹開發Android 項目的環境搭建,項目的建立及調試方法,章節的最后介紹如何建立推箱子游戲項目,如何運行與調試。
第 2 章首先介紹了幾種常用界面布局的使用,并在推箱子游戲中使用線性布局對項目進行改進,隨后介紹了人機界面交互的方法,然后講解可常用的一些布局組件(TextView、EditText、AutoCompleteText、Button、RadioButton、CheckButton、AutoCompleteTextView等)的屬性及使用方法,并舉例,接著介紹了Menu、AlterDialog 等的使用。章節的最后介紹了推箱子游戲界面的一些設計,把推箱子手機游戲界面進行個性化設計。
第 3 章介紹了Activity、Intent、Service、BroadcastReceiver 等重要組件,并在推箱子游戲中進行應用。
第 4 章主要介紹了2D 圖形、音頻、視頻等多媒體的應用,章節的最后在推箱子游戲中應用2D 圖形對游戲主界面進行設計,應用音頻添加背景音樂。
第 5 章著重介紹了SharedPreference、SDCard、文件、SQLite、網絡存儲等幾種數據存儲方法,并把對應的存儲方法應用在推箱子游戲中。
第 6 章講解了Android 系統中的網絡應用,主要介紹Socket 編程、獲取網絡資源、Web服務等內容。
第 7 章介紹Android 項目的改進,如何適應多語言、多類型終端等內容。
第 8 章主要介紹項目的簽名、打包與發布。
第 9 章主要介紹Android 項目中的一些高級應用——傳感器及地圖的使用。
本教材全部由一線教學老師執筆,其中第6、9 章是由宋三華完成,第2、8 章由魏雪峰完成,第5 章由王娟娟完成,第3 章由王偉完成,第4 章由尹鴻坦完成,第1、7 章由田麗芳完成。
本教材的教學課件、案例、教學大綱都在電子工業出版社網站上公布,讀者在出版社官網搜索本書并下載案例及推箱子游戲的每一個開發階段的源代碼,配合章節的知識讀者可以動手操作、驗證。
本書最好是在讀完相關知識后再動手做項目,當然如果你沒有時間讀相關知識而只想快速理解一個Android 項目的開發過程,那么你只需要讀每一個章節的項目任務即可,這樣你可以快速完成一個手機推箱子游戲設計(或其他相關章節的項目),并讓它能夠很好地運行在手機上。
由于編寫時間倉促,書中難免有疏漏和不妥之處,歡迎大家批評指正,衷心希望各位讀者提出寶貴的意見和建議,以便再版時及時加以修正。