本書主要內容包括Android基礎知識、Android應用程序開發的基本流程、Android應用程序開發的常用編程接口、常用控件及一些在應用程序中常用的模塊和功能的實現。全書以實例為基礎,幾乎每章都由實例組成,通過對代碼的詳細說明和分析來介紹Android各類應用開發中需要掌握的基本技能,并在實踐中闡明Android UI、數據庫、多媒體、常規通信、瀏覽器開發和地圖等開發的特點。
本書以生動的語言、具體的示例、準確的圖表和清晰明了的表現形式,詳細闡述Android應用程序開發流程和基本方法。本書為讀者提供課件和學習資料,請讀者登錄華信教育資源網(www.hxedu.com.cn)免費下載。
佘堃,四川省計算機協會網絡專委會委員,IEEE和中國計算機協會成員。入選四川省和電子科技大學中青年學術帶頭人培養計劃。
目 錄
第1章 緒論1
1.1 Android介紹1
1.2 Android版本歷史2
1.3 Android系統特點3
第2章 Android開發入門6
2.1 開發工具6
2.2 開發工具的安裝及配置6 目 錄
第1章 緒論1
1.1 Android介紹1
1.2 Android版本歷史2
1.3 Android系統特點3
第2章 Android開發入門6
2.1 開發工具6
2.2 開發工具的安裝及配置6
2.2.1 安裝和配置JDK6
2.2.2 安裝和配置Eclipse8
2.2.3 安裝和配置Android SDK9
2.2.4 安裝ADT10
2.2.5 創建AVD12
2.3 HelloWorld14
2.3.1 創建HelloWorld工程項目14
2.3.2 在模擬器上運行HelloWorld18
2.4 本章小結19
第3章 UI20
3.1 實例——5種UI布局類型20
3.2 Android UI布局22
3.2.1 線性布局(LinearLayout)23
3.2.2 幀布局(FrameLayout)26
3.2.3 相對布局(RelativeLayout)27
3.2.4 表格布局(TableLayout)29
3.2.5 絕對布局(AbsoluteLayout)30
3.2.6 常見問題31
3.3 Android UI控件32
3.3.1 UI事件捕獲與處理32
3.3.2 文本框(TextView)、按鈕(Button)和可編輯文本(EditText)
33
3.3.3 復復選框(CheckBox)與單選組框(RadioGroup)35
3.3.4 下拉列表(Spinner)37
3.3.5 自動補全文本框(AutoCompleteTextView)39
3.3.6 進度條(ProgressBar)40
3.3.7 列表(ListView)42
3.3.8 窗體設置(Window)48
3.3.9 其他UI控件概覽50
3.4 菜單(Menu)54
3.5 對話框(Dialog)60
3.6 本章小結66
第4章 Android開發框架67
4.1 Android系統架構67
4.2 Android應用程序組成70
4.3 Activity的生命周期72
4.4 Android的項目架構74
4.5 AndroidManifest.xml文件解析75
4.6 XML簡介77
4.7 Android的生命周期78
4.8 本章小結79
第5章 Service應用80
5.1 什么是Service80
5.2 跨進程調用81
5.3 Service實例——音樂播放器82
5.3.1 使用startService啟動服務83
5.3.2 使用Receiver方式啟動服務88
5.3.3 使用bindService方式啟動服務89
5.3.4 通過AIDL方式使用遠程服務92
5.4 本章小結96
第6章 Android數據存儲97
6.1 Android數據基本存儲方式97
6.1.1 SharedPreferences97
6.1.2 Files100
6.1.3 ContentProvider103
6.2 Android數據庫編程——SQLite105
6.2.1 SQLite簡介105
6.2.2 SQLite示例106
6.3 本章小結113
第7章 多媒體開發114
7.1 音頻114
7.1.1 播放音頻114
7.1.2 錄制音頻115
7.2 視頻116
7.2.1 播放視頻117
7.2.2 錄制視頻117
7.3 使用Path類繪制二維圖形120
7.4 使用OpenGL ES繪制三維圖形124
7.4.1 OpenGL發展歷史125
7.4.2 OpenGL ES簡介125
7.4.3 Android OpenGL ES126
7.4.4 示例126
7.5 本章小結131
第8章 Android網絡通信132
8.1 引言132
8.2 Android網絡通信基礎132
8.2.1 Android支持的網絡通信模式132
8.2.2 Android提供的網絡接口134
8.3 使用HttpClient和HttpURLConnection接口134
8.3.1 HTTP簡介134
8.3.2 使用HttpClient接口通信示例135
8.3.3 使用HttpUrlConnection接口通信示例138
8.4 Android的WiFi開發入門141
8.4.1 為Wi-Fi Direct Intent創建廣播接收器143
8.4.2 創建Wi-Fi Direct 應用144
8.5 Android藍牙開發入門150
8.6 實例:藍牙聊天158
8.6.1 本機作為服務端參與連接的建立158
8.6.2 本機作為客戶端參與連接的建立160
8.6.3 通信聊天161
8.7 本章小結162
8.8 本章習題163
第9章 傳感器訪問164
9.1 傳感器API介紹164
9.2 傳感器相關的坐標系165
9.2.1 世界坐標系165
9.2.2 旋轉坐標系165
9.3 獲取設備上傳感器種類166
9.3.1 功能實現167
9.3.2 獲取的傳感器列表168
9.4 利用傳感器實現指南針功能168
9.4.1 功能分析及實現168
9.4.2 指南針實現效果171
9.4.3 在模擬器上開發傳感器應用172
9.5 利用傳感器實現計步器功能178
9.5.1 計步器介紹178
9.5.2 計步器所需傳感器分析179
9.5.3 計步器功能實現180
9.5.4 計步器實現效果185
9.5.5 示例說明185
第10章 Google Map API186
10.1 在Google Map上使用GPS定位186
10.1.1 Google Play services的安裝186
10.1.2 Google Play services開發文檔187
10.1.3 配置開發環境187
10.1.4 獲取Android Maps API Key188
10.1.5 把API Key加入應用程序191
10.1.6 添加Google Play services類庫的引用193
10.1.7 嘗試運行工程195
10.1.8 為示例添加GPS位置獲取功能195
10.2 在MainActivity上標記位置198
10.2.1 標記效果199
10.2.2 顯示地標199
10.2.3 彈出式氣泡201
10.3 在地圖上測兩點距離210
10.3.1 測距功能說明211
10.3.2 實現測距線程213
10.3.3 選點216
10.3.4 添加Handler處理219
10.4 在MapView上繪制軌跡219
10.4.1 軌跡繪制說明220
10.4.2 使用Google Earth生成kml文件221
第11章 Android瀏覽器擴展230
11.1 瀏覽器插件簡介230
11.2 NPAPI簡介231
11.3 Android中的瀏覽器插件開發分析232
11.3.1 BrowserPlugin結構232
11.3.2 BrowserPlugin中的NPP APIs233
11.3.3 BrowserPlugin中的ANPInterface259
11.3.4 BrowserPlugin的工作流程259
11.4 編譯和運行瀏覽器插件260
參考文獻264
序
為貫徹落實《國家中長期教育改革和發展規劃綱要(2010-2020年)》的精神,樹立全面發展和多樣化的人才觀念,樹立主動服務國家戰略要求,主動服務行業企業需求的觀念,教育部決定實施卓越工程師教育培養計劃。卓越工程師教育培養計劃著力提高學生的工程意識、工程素質和工程實踐能力,著力提高學生服務國家和人民的社會責任感,著力提高勇于探索的創新精神和善于解決問題的實踐能力,是我國工程教育領域的重大改革與創新,有利于全面提高我國工程教育人才培養質量,適應社會主義現代化建設的人才培養需要。
電子科技大學信息與軟件工程學院根據卓越工程師教育培養計劃指導思想,從培養工程型軟件人才的角度出發,圍繞嵌入式系統產品研發所需知識體系進行策劃,編寫了這套系列圖書,包括《嵌入式系統導論》、《計算機控制系統》、《現代嵌入式操作系統》、《嵌入式網絡編程》和《Android嵌入式應用開發》等,旨在重點強化涉及嵌入式系統領域的知識體系以及應用實踐,以嵌入式軟件工程思想引導學生較為全面地掌握嵌入式產品研發所需要的理論、應用技術以及工程實踐方法。
本系列教材內容覆蓋嵌入式系統方向的所有核心知識內容,為讀者提供嵌入式系統開發的完整體系結構和思路,使讀者能夠較為容易地理解嵌入式系統及其開發的本質,掌握基本開發技術,了解并掌握典型的應用實例,為今后走向社會奠定扎實基礎。
叢書的出版是我院實施卓越工程師教育培養的一件喜事,標志著我院實施卓越工程師教育培養計劃已經走出堅實的一步,也是我院與兄弟院校進行人才培育方案和技術交流的途徑。
電子科技大學
前 言
云時代的來臨,新興技術如雨后春筍般爆發,個性化體驗云終端將令當今世界徹底變革,新的IT革命將更加徹底地改變人類的生活。由于人的精力有限,各種云終端開發技術令人難以抉擇。然而,經過幾年的競爭,具有最廣泛廠商支持的開放工業標準——Android平臺和目前市場占有率第一的封閉的iOS平臺成為該領域開發人員的首選。
計算機學科是典型的“行重于知”的領域。本書的目標是成為Android開發人員的“工具箱”,幫助讀者從實踐中學習。
本書站在Android初學者的角度,并且本著易學易用的原則進行編寫,為此,書中使用了足夠多的精心編寫的實例代碼,這些代碼注釋詳細,語句易懂,一步一步地引導讀者掌握Android應用程序開發的方法和技巧。在使用本書的過程中,建議讀者通過邊學邊實踐的方式,一定要動手操作。書中所用的所有示例都是通過測試可以正常運行的,讀者可通過華信教育資源網http://www.hxedu. com. Cn免費注冊后進行下載。
全書共11章。
第1章為緒論,主要介紹Android相關的一些背景常識、Android的版本歷史、Android系統所具備的一些特點,讓讀者建立起對Android的基本認識。
第2章為Android開發入門,主要介紹Android應用程序開發所需要的開發工具及其安裝和配置過程,最后實現了Android上的第一個經典程序—HelloWorld。
第3章為UI(用戶界面),主要介紹Android應用程序的用戶界面,包括界面的幾種布局形式、各種常用控件的使用方法、UI事件捕獲與處理、菜單和對話框,覆蓋了Android用戶界面設計和開發所常用的基本結構。
第4章為Android開發框架,主要介紹Android應用程序開發框架,包括系統架構、應用程序組成結構、Activity生命周期、Android應用程序項目架構、Android應用程序生命周期,本章內容建立在前3章的基礎之上,幫助讀者建立Android應用程序在架構和原理層面上的理解。
第5章為Service應用,主要介紹在Android應用程序開發中常用到的Service組件,包括原理和實例,并簡要介紹Android的跨進程調用及aidl的使用方法。
第6章為Android數據存儲,主要介紹在Android應用程序中與數據存儲相關的技術,首先是介紹3種基本的存儲方式SharedPreferences、File和ContentProvider,再介紹Android上的SQLite數據庫編程。
第7章為多媒體開發,主要介紹在Android上音視頻的播放與錄制、二維/三維圖形的繪制方法。
第8章為Android網絡通信,主要介紹在Android應用程序中如何進行網絡通信,包括HTTP通信、WiFi和藍牙通信。
第9章為傳感器訪問,主要介紹Android設備傳感器相關API,先介紹傳感器相關理論基礎,然后完成了兩個傳感器應用示例,即指南針和計步器,還介紹了如何在Android虛擬設備上(AVD)開發和測試傳感器相關應用。
第10章為Google Map API,主要介紹借助Google Map API,開發具有地理信息功能的Android應用程序(LBS)的基本方法,包括如何正確運行起一個地圖程序示例、如何在地圖上標記位置、測量距離、記錄軌跡等。
第11章為Android瀏覽器擴展,主要介紹開發瀏覽器擴展插件的方法,先對瀏覽器插件進行了介紹,然后介紹了BrowserPlugin,最后完成了一個瀏覽器插件的編譯和運行。
本書由佘堃、段弘、佘佳駿主編。佘堃對全書內容進行了統稿、修改、整理和定稿,參加本書編寫工作的有段弘、左玲、史仁仁、佘佳駿、柏露。佘佳駿負責全書的文字校對、源代碼審查與整理工作,柏露負責習題的擬定及習題答案的編寫工作。
Android應用開發是一門實踐性很強的課程,相關的技能需要在Android應用開發的實踐中去逐步掌握。由于Android應用程序開發所涉及的內容十分豐富,筆者很難也不可能在本書中窮盡所有的細節。不過筆者相信,當讀者研讀完本書之后,結合各自的實踐經驗,一定也會有很多的想法和感受,歡迎提出寶貴意見。
在本書編寫過程中參考了相關文獻,在此向這些文獻的作者深表感謝。由于編者水平有限,書中難免有不妥之處,敬請專家和廣大讀者批評指正。
讀者反饋:unicode@phei.com.cn。
作 者
電子科技大學