Android核心技術與實例詳解(第2版)

er類簡介1165.10.2 GameView類的開發1878.2.2 ager的使用29612.3.1

Android核心技術與實例詳解(第2版)(DVD光碟1)暢銷書升級版!讓你技高一籌!
歐陽零編著
ISBN 978-7-121-19657-7
20134月出版
定價:75.00
548
16
編輯推薦
暢銷書升級版!
結合真實案例介紹Android基本組件的使用及套用開發的整個流程;
全面介紹Android平台的控制項開發,並配有典型實例;
每段代碼都有詳細的解析,讓你明白來龍去脈;
本書獨有的Google地圖開發指導,讓你技高一籌;
配有3個超高價值的項目案例,並配視頻講解。
遊戲開發實踐——快樂數獨
地圖搜尋套用——美食天下
社交分享平台——口袋微博
內容提要
本書以Android應用程式的開發為主題,結合真實的案例向讀者詳細介紹了Android基本組件的使用及應用程式開發的整個流程。
全書分為3篇共18章,第1篇以簡單易懂的實例為依託,詳細介紹了Android平台的基本控制項、高級控制項、常用界面布局及選單對話框等相關知識;第2篇介紹了Android平台的高級知識,包括訊息與廣播服務、網路數據處理、手機通信功能、桌面組件、多媒體採集、Google服務及3D程式開發等;第3篇則詳細介紹了三個真實案例的開發步驟,逐步向讀者講解了Android手機應用程式的真實開發過程,同時在原始碼中還包含了詳細的注釋,以儘量幫助讀者掌握代碼中的每一個細節,儘快掌握Android編程。
本書章節安排由淺入深,從介紹Android平台的基本組件到帶領讀者開發大型應用程式,結構清晰、語言簡潔,非常適合初學者和進階開發者閱讀參考。
本書附贈DVD光碟1張,其中包含了大容量的手把手教學視頻、電子教案(PPT)、實例原始碼等。
目錄
基礎篇
第1章 Android開發起步 1
本章將要介紹的是Android開發起步的相關知識,首先對Android平台進行簡單的介紹,其中包括Android的背景及其應用程式的框架。然後會向讀者講解如何搭建Android的開發環境、如何在Eclipse中創建一個項目,以及如何使用Android平台提供的工具調試和監控應用程式。
1.1 Android平台簡介 1
1.1.1 Android背景介紹 1
1.1.2 Android平台架構 2
1.2 Android開發環境的搭建 4
1.2.1 相關軟體的下載與安裝 4
1.2.2 虛擬設備的創建和使用 10
1.2.3 創建“Hello Android” 12
1.2.4 Android應用程式的調試 16
1.3 小結 18
第2章 Android應用程式的構成 19
本章將對Android應用程式的生命周期進行分析,主要目的是讓讀者了解Android應用程式的構成,掌握Android基本組件的特性及使用方法。
2.1 Android應用程式的解析 19
2.1.1 目錄結構 19
2.1.2 資源的管理與使用 20
2.1.3 AndroidManifest.xml簡介23
2.1.4 應用程式的許可權 24
2.2 Android基本組件的介紹 25
2.2.1 應用程式的生命周期 25
2.2.2 Activity簡介 26
2.2.3 Service簡介 28
2.2.4 BroadcastReceiver簡介 32
2.2.5 ContentProvider簡介 33
2.2.6 Intent和IntentFilter簡介34
2.3 小結 38
第3章 Android布局管理器 39
本章要介紹的內容為Android平台下的布局管理器。Android中的布局包括線性布局、表格布局、相對布局、幀布局和絕對布局。下面將分別對每個布局管理器進行詳細的介紹。
3.1 控制項類概述 39
3.1.1 View類簡介 39
3.1.2 ViewGroup類簡介 40
3.2 線性布局 40
3.2.1 LinearLayout類簡介 40
3.2.2 線性布局案例 41
3.3 表格布局 43
3.3.1 TableLayout類簡介 43
3.3.2 表格布局案例 44
3.4 相對布局 48
3.4.1 RelativeLayout類簡介 49
3.4.2 相對布局案例 50
3.5 幀布局 51
3.5.1 FrameLayout類簡介 51
3.5.2 幀布局案例 52
3.6 絕對布局 54
3.6.1 AbsoluteLayout類簡介 54
3.6.2 絕對布局案例 54
3.7 小結 57
第4章 Android常用基本控制項 58
本章將對進行用戶界面開發時常用到的Android基本控制項進行介紹,主要包括文本框、按鈕、單選按鈕和複選按鈕、狀態開關按鈕和日期時間控制項等。了解這些基本控制項的工作方式有助於學習後面要介紹的Android中的高級控制項。
4.1 文本控制項的介紹 58
4.1.1 TextView類簡介 58
4.1.2 EditText類簡介 59
4.1.3 文本框使用案例 59
4.2 按鈕控制項 63
4.2.1 Button類簡介 63
4.2.2 ImageButton類簡介 66
4.2.3 9Patch圖片簡介 67
4.2.4 9Patch圖片使用案例 68
4.3 狀態開關按鈕 70
4.3.1 ToggleButton類簡介70
4.3.2 開關按鈕的使用 71
4.4 單選按鈕與複選框 73
4.4.1 CheckBox和RadioButton類簡介 73
4.4.2 單選按鈕和複選框使用案例 74
4.5 圖片控制項 76
4.5.1 ImageView類簡介 76
4.5.2 圖片查看器 77
4.6 時鐘控制項 81
4.6.1 AnalogClock和DigitalClock類簡介 81
4.6.2 時鐘控制項使用案例 81
4.7 日期與時間選擇控制項 82
4.7.1 DatePicker類簡介 82
4.7.2 TimePicker類簡介 82
4.7.3 日期時間控制項使用案例 83
4.8 動畫播放技術 85
4.8.1 幀動畫簡介 85
4.8.2 幀動畫使用案例 85
4.8.3 補間動畫簡介 88
4.8.4 補間動畫使用案例 89
4.9 小結 91
第5章 Android常用高級控制項 92
上一章已經介紹了Android中的一些基本控制項,本章將繼續上一章的思路,對Android中常用的高級控制項進行逐一介紹。
5.1 自動完成文本框 92
5.1.1 AutoCompleteTextView類簡介92
5.1.2 自動完成文本使用案例 92
5.2 滾動視圖 94
5.2.1 ScrollView類簡介 94
5.2.2 滾動視圖使用案例 94
5.3 格線視圖 95
5.3.1 GridView類簡介 95
5.3.2 格線視圖使用案例 95
5.4 列表視圖 100
5.4.1 ListView類簡介100
5.4.2 列表視圖使用案例 100
5.5 滑塊與進度條 103
5.5.1 ProgressBar類簡介 104
5.5.2 SeekBar類簡介 104
5.5.3 滑塊和進度條案例 104
5.6 星級滑塊 105
5.6.1 RatingBar類簡介 105
5.6.2 星級滑塊使用案例 106
5.7 選項卡 107
5.7.1 TabHost類簡介 107
5.7.2 選項卡使用案例 107
5.8 畫廊控制項 111
5.8.1 Gallery類簡介 111
5.8.2 畫廊控制項使用案例 112
5.9 HorizontalScrollView控制項 113
5.9.1 HorizontalScrollView類簡介 114
5.9.2 HorizontalScrollView控制項使用案例 114
5.10 下拉列表控制項 116
5.10.1 Spinner類簡介116
5.10.2 下拉列表使用案例 116
5.11 小結 119
第6章選單與對話框 120
在前面的章節中介紹了Android平台開發用戶界面時常用的基本控制項與高級控制項,但在實際開發中只運用這些控制項是不夠的。本章將介紹用戶界面中選單與對話框的開發,同時還會對Android平台下的Toast和Notification進行介紹。
6.1 選單功能的開發 120
6.1.1 選項選單和子選單簡介 120
6.1.2 選項選單和子選單使用案例 122
6.1.3 上下文選單 127
6.2 對話框功能的開發 130
6.2.1 對話框簡介 131
6.2.2 普通對話框 131
6.2.3 列表對話框 134
6.2.4 單選按鈕對話框 136
6.2.5 複選框對話框 139
6.2.6 日期及時間選擇對話框 141
6.2.7 進度對話框 145
6.3 訊息提示 148
6.3.1 Toast的使用 148
6.3.2 Notification的使用 150
6.4 小結 153
第7章 Android事件處理模型 154
本章將對Android平台用戶界面的各種事件回響進行詳細介紹,以加深讀者對Android平台的事件處理模型的理解,熟練掌握控制項的各種事件處理方法。
Android平台的事件處理機制有兩種,一種是基於回調機制的,一種是基於監聽接口的,接下來會分別對其進行介紹。
7.1 基於回調機制的事件處理 154
7.1.1 onKeyDown方法簡介 154
7.1.2 onKeyUp方法簡介 156
7.1.3 onTouchEvent方法簡介 157
7.1.4 onTrackBallEvent方法簡介 159
7.1.5 onFocusChanged方法簡介 160
7.2 基於監聽接口的事件處理 162
7.2.1 Android的事件處理模型 162
7.2.2 OnClickListener接口簡介 163
7.2.3 OnLongClickListener接口簡介 165
7.2.4 OnFocusChangeListener接口簡介 168
7.2.5 OnKeyListener接口簡介 171
7.2.6 OnTouchListener接口簡介 174
7.2.7 OnCreateContextMenuListener接口簡介 176
7.3 Handler訊息傳遞機制177
7.3.1 Handler類簡介 177
7.3.2 Handler使用案例 177
7.4 小結 180
高級篇
第8章遊戲與3D應用程式開發 181
Android平台下的套用開發,一般來說主要分為商業套用和遊戲兩種,在開發商業套用時主要會用到本書前面章節曾介紹過的控制項和選單對話框等知識,而開發遊戲時就只能自己定義各種控制項和界面了。本章將要介紹如何在Android平台下使用View和SurfaceView開發遊戲,在本章的最後還將對Android平台下進行3D場景的開發進行簡單的介紹。
8.1 自定義View的使用 181
8.1.1 MyView類的開發 181
8.1.2 MyThread類的開發 184
8.1.3 Activity部分代碼的開發 185
8.2 SurfaceView的使用 186
8.2.1 GameView類的開發187
8.2.2 BallGoThread類的開發 191
8.2.3 TimeThread類的開發 194
8.2.4 GameViewDrawThread類的開發 195
8.2.5 Sample_8_2類的開發 196
8.3 GLSurfaceView與3D 196
8.3.1 OpenGL ES簡介 197
8.3.2 3D開發的基本知識 197
8.3.3 第一個3D圖形示例 198
8.3.4 3D穀倉的開發 203
8.4 小結 208
第9章訊息廣播與服務 209
本章將對Android的訊息廣播機制及服務組件進行詳細介紹。在很多應用程式中,都會通過廣播形式來傳送和接收訊息。當應用程式接收到訊息後,一般啟動一個Activity或者一個Service進行處理。本章將對之前介紹過的服務組件Service進行詳細介紹,章末通過對一個單機版的音樂播放盒的介紹幫助讀者掌握服務組件的使用方法。
9.1 BroadcastReceiver組件 209
9.1.1 BroadcastReceiver類簡介 209
9.1.2 基於廣播的案例 210
9.2 Service組件 213
9.2.1 Service類簡介 213
9.2.2 基於服務的案例 213
9.3 單機版音樂盒的實現 217
9.4 小結 225
第10章網路與數據處理 226
本章要介紹的內容是Android平台下進行網路編程及數據處理的相關知識,內容包括網路通信的幾種方式(如使用Socket、URL、Socket等)、如何使用WebView瀏覽網頁,以及檔案的上傳和下載。最後介紹訪問手機存儲卡的方法及如何在程式中使用SQLite資料庫。
10.1 使用Socket進行通信226
10.1.1 Socket服務端的開發 226
10.1.2 Socket客戶端的開發 227
10.2 通過URL和HTTP請求獲取網路資源 228
10.2.1 通過URL獲取網路資源 228
10.2.2 通過HTTP請求網路資源 232
10.3 使用WebView進行網路開發 237
10.3.1 使用WebView瀏覽網頁237
10.3.2 使用WebView執行HTML代碼 241
10.4 SQLite資料庫 244
10.4.1 資料庫的基本操作 244
10.4.2 個人通信錄的實現之資源檔案的組織和開發 245
10.4.3 個人通信錄的實現之功能代碼的開發 248
10.5 訪問存儲卡253
10.5.1 獲取存儲卡容量 253
10.5.2 讀取存儲卡信息 256
10.6 小結 257
第11章手機通信功能開發 258
本章將對Android手機通信功能的開發進行介紹,其中包括簡訊的收發及狀態查詢、電話的撥打與接聽、來電的過濾和E-mail郵件的收發等,通過本章的學習,讀者應該能夠對Android平台手機通信功能有一定的了解。
11.1 簡訊控制 258
11.1.1 簡訊的傳送 258
11.1.2 短訊息提示 262
11.1.3 短訊息群發 265
11.1.4 查詢傳送狀態 270
11.2 電話控制 272
11.2.1 撥打電話 272
11.2.2 過濾電話 277
11.2.3 查詢當前狀態 278
11.3 E-mail相關功能開發 279
11.3.1 SMTP協定簡介 280
11.3.2 傳送E-mail 280
11.4 小結 280
第12章手機特有Feature開發 281
本章將要介紹的是Android手機特有Feature的開發,主要包括回響系統設定更改事件、設定手機外觀和其他的特性。同時還將介紹如何在程式中獲取SIM卡和電池電量等信息,最後將以手機鬧鐘為例講述如何自己開發特定功能的手機套用。
12.1 系統設定更改的事件281
12.1.1 Configuration類簡介 281
12.1.2 回響Configuration的變化 282
12.2 手機外觀更改和提醒設定284
12.2.1 手機壁紙的改變 285
12.2.2 手機振動的設定 288
12.2.3 音量調節 292
12.3 TelephonyManager的使用296
12.3.1 TelephonyManager類簡介 296
12.3.2 TelephonyManager的使用案例 296
12.4 手機電池電量 300
12.4.1 原理概述 300
12.4.2 電量提示案例 300
12.5 手機鬧鐘 302
12.5.1 AlarmManager簡介 302
12.5.2 開發鬧鐘套用 302
12.6 小結 306
第13章桌面組件與多媒體數據採集 307
本章將介紹Android中桌面組件及多媒體相關程式的開發,其中包括桌面捷徑、桌面控制項、聲音及圖像的採集等。
13.1 桌面組件的介紹307
13.2 桌面捷徑 307
13.2.1 通過應用程式創建捷徑 307
13.2.2 向Launcher添加捷徑 310
13.3 桌面控制項 311
13.3.1 桌面控制項概述 311
13.3.2 開發簡單的桌面控制項 312
13.4 多媒體數據採集314
13.4.1 錄音 314
13.4.2 圖像採集 317
13.5 小結 321
第14章感測器套用的開發 322
Android系統的一大亮點之一就是對感測器的套用,利用感測器可以開發出很多新奇有趣的程式,小到水平儀、計步器,大到感測器遊戲,本章將詳細介紹各種感測器的原理及使用方法,並通過一個水平儀的開發向讀者介紹感測器套用的開發方法,以及如何在模擬器中模擬各種感測器。
14.1 Android平台下感測器簡介 322
14.1.1 加速度感測器Accelerometer 322
14.1.2 姿態感測器Orientation 327
14.1.3 磁場感測器Magnetic Field 330
14.1.4 溫度感測器Temperature 332
14.1.5 光感測器Light 335
14.2 感測器套用案例336
14.2.1 開發前的準備工作 336
14.2.2 自定義View的開發 336
14.2.3 開發主邏輯代碼 337
14.2.4 運行與調試 340
14.3 小結 341
第15章 Google服務 342
本章將介紹如何在Android平台下開發基於Google服務的應用程式。Google提供了諸如GPS定位、Google Map、天氣預報、網路相冊和線上翻譯等多種服務,將這些服務融合到應用程式中將會帶來非常好的用戶體驗。
15.1 使用GPS獲取位置 342
15.1.1 LocationManager及相關類簡介 342
15.1.2 獲取位置信息案例 343
15.2 Google Map的使用 346
15.2.1 獲取Map API Key 346
15.2.2 創建模擬器 348
15.2.3 Google Map地圖查詢套用 350
15.2.4 Google Map導航套用 355
15.3 Google街景360
15.3.1 Android整合Google街景服務的原理 360
15.3.2 在程式中調用Google街景 361
15.4 小結 363
案例篇
第16章 Android遊戲開發實踐——快樂數獨364
益智類遊戲是一種比較流行的遊戲,其畫面大都比較簡單,很少有很複雜的遊戲特效,但是通常用到人工智慧的算法來控制遊戲的難度。而算法的最佳化是開發該類遊戲的難點。這類遊戲主要包括棋牌類遊戲和智力測試類遊戲,例如麻將、掃雷、五子棋、撲克牌等。
數獨就是益智遊戲的一種,玩法簡單但數字的排列方式千變萬化,很多人認為數獨是訓練頭腦的絕佳方式。本章通過講解數獨遊戲在Android平台上的設計與實現,使讀者了解此類遊戲的開發過程,掌握實用的開發技巧,學會此類遊戲的開發。
16.1 遊戲的背景及功能概述 364
16.1.1 背景概述 364
16.1.2 功能簡介 365
16.2 遊戲的策劃及準備工作 366
16.2.1 遊戲的策劃 366
16.2.2 Android平台下遊戲的準備工作 366
16.3 遊戲的架構367
16.3.1 各類的簡要介紹 367
16.3.2 遊戲的框架簡介 368
16.4 歡迎界面的設計與實現 369
16.4.1 主類KLSDActivity實現 369
16.4.2 歡迎界面WelcomeView類的實現371
16.4.3 刷幀執行緒WelcomeViewDrawThread類的實現 374
16.4.4 動畫生成執行緒WelcomeViewGo- Thread類的實現 375
16.5“幫助”與“關於”界面的設計與實現 376
16.5.1“幫助”界面HelpView類的實現 376
16.5.2“關於”界面AboutView的實現 377
16.6 遊戲界面的框架搭建379
16.7 計時執行緒與數字鍵盤執行緒的開發 381
16.7.1 計時執行緒的開發 381
16.7.2 數字鍵盤執行緒的開發 382
16.8 數獨生成器的開發 383
16.9 遊戲界面邏輯方法的實現385
16.9.1 初始化方法的完善 385
16.9.2 簡單邏輯方法的完善 387
16.9.3 螢幕事件處理方法的完善 388
16.10 遊戲界面繪畫方法的完善 392
16.10.1 數字鍵盤的繪製方法drawKey ()的完善 392
16.10.2 繪畫方法onDraw()的完善 393
16.11 遊戲界面刷幀執行緒的實現 396
16.12 遊戲的最佳化與改進 397
第17章 Android地圖搜尋套用——美食天下398
第15章已經介紹了Google Map的簡單使用,本章將通過之前介紹過的知識實現一個美食共享軟體,其中包括服務端和手機端,希望通過本章的學習,讀者能夠掌握Android系統與Tomcat伺服器的通信、Google地圖的使用及各種控制項的綜合套用。
17.1 系統背景及功能概述398
17.1.1 背景簡介 398
17.1.2 功能概述 398
17.1.3 開發環境及目標平台 399
17.2 開發前的準備工作 400
17.2.1 資料庫的設計 400
17.2.2 表的創建與記錄插入 405
17.2.3 數據源的配置 406
17.3 Web端總體架構及功能預覽 406
17.3.1 目錄結構及系統框架 407
17.3.2 功能預覽 408
17.4 Web端登錄註冊模組的實現 409
17.4.1 首頁的搭建 409
17.4.2 用戶註冊功能的開發 415
17.4.3 用戶登錄功能的開發 420
17.4.4 用戶註銷功能的開發 422
17.5 Web端美食上傳模組的實現 423
17.5.1 頁面的搭建 423
17.5.2 圖片上傳組件FileUploadServlet的開發 426
17.5.3 DBUtil中相關方法的開發 428
17.6 Android端總體架構及功能預覽 430
17.6.1 功能預覽 430
17.6.2 總體架構 432
17.7 伺服器的設計與實現433
17.8 Android端登錄界面的實現 436
17.8.1 開發前的準備工作 436
17.8.2 框架的搭建 437
17.8.3 監聽方法的完善 440
17.8.4 記住密碼功能的實現 442
17.8.5 伺服器端的完善 443
17.9 Android端註冊界面的實現 444
17.9.1 框架的搭建 444
17.9.2 監聽方法的完善 446
17.9.3 伺服器端的完善 447
17.10 Android端主界面MainActivity的實現 449
17.10.1 布局檔案的開發 449
17.10.2 界面框架的搭建 450
17.10.3 初始化方法的完善 452
17.10.4 監聽方法的完善 453
17.10.5 網路處理執行緒的實現 455
17.10.6 伺服器端的完善 457
17.11 Android端地圖界面的實現 460
17.11.1 布局檔案的開發 461
17.11.2 地圖界面的開發 461
17.12 美食信息界面的實現 464
17.13 系統的最佳化與改進 466
第18章 Android社交分享平台——口袋微博467
本章將介紹社交分享平台——口袋微博的實現,該社交分享平台包括Web端和Android手機端兩個部分。在介紹了整個系統的背景及功能架構之後,本書將對該系統在Web端和Android手機端的實現進行介紹。
18.1 系統背景及功能概述467
18.1.1 背景簡介 467
18.1.2 功能概述 467
18.1.3 開發環境和目標平台 468
18.2 開發前的準備工作 469
18.2.1 資料庫設計 469
18.2.2 表的創建和測試數據的插入 474
18.2.3 數據源的配置 475
18.3 Web端功能預覽及總體架構 476
18.3.1 Web端系統功能預覽 476
18.3.2 系統目錄結構 477
18.3.3 系統總架構 478
18.4 Web端主頁的搭建 478
18.5 Web端登錄註冊模組的實現 480
18.5.1 用戶登錄功能的開發 480
18.5.2 用戶註冊功能的開發 483
18.5.3 用戶註銷功能的開發 486
18.6 查看和管理日誌模組的實現 486
18.6.1 發布日誌功能的開發 486
18.6.2 顯示日誌及評論功能的開發 488
18.6.3 編輯和刪除日誌功能的開發 490
18.7 查看和管理相冊模組的實現 491
18.7.1 查看相冊功能的開發 492
18.7.2 查看相冊相片功能的實現 493
18.7.3 顯示照片功能的實現 494
18.8 Android端功能預覽及總體架構 495
18.8.1 Android端功能預覽 495
18.8.2 Android端總架構 497
18.9 伺服器的設計與實現498
18.9.1 伺服器的設計 498
18.9.2 伺服器的實現 498
18.10 Android端的準備工作 501
18.10.1 圖片資源的準備 501
18.10.2 XML資源檔案的準備 501
18.11 登錄註冊模組的實現 503
18.11.1 登錄模組的開發 503
18.11.2 記錄賬號密碼功能的開發 508
18.11.3 伺服器驗證登錄功能的實現 509
18.11.4 註冊模組的開發 509
18.12 個人中心模組的實現 513
18.12.1 個人中心界面的開發 513
18.12.2 個人中心界面選單功能的開發 515
18.13 快速發布模組的實現 516
18.13.1 發布日誌和更新心情功能的實現 516
18.13.2 拍照上傳界面的開發 518
18.13.3 UploadActivity通信功能的開發 522
18.14 查看聯繫人模組的實現 526
18.14.1 ContactsActivity界面的開發 526
18.14.2 ContactsActivity通信功能的開發 528
18.15 日誌管理模組的實現 528
18.15.1 查看日誌功能的開發 529
18.15.2 編輯日誌功能的開發 531
18.16 相冊管理模組的實現 531
18.16.1 相冊查看和修改功能的實現 531
18.16.2 相片查看功能的實現 534
18.17 系統的最佳化與改進 536
作者簡介
歐陽零,本科及研究生就讀於電子科技大學。2007年開始從事Java開發,積累了豐富的開發經驗,從2010年開始專注Android套用開發,2011年年底從套用開發轉向Android安全研究。曾經參與開發過上海科技廳和多家知名網站的Android客戶端項目。

相關詞條

熱門詞條

聯絡我們