android水平儀
A. Android核心技術與實例詳解的目 錄
基 礎 篇
第1章 Android開發起步 19
本章將要介紹的是Android開發起步的相關知識,首先對Android平台進行簡單的介紹,其中包括Android的背景及其應用程序的框架。然後會向讀者講解如何搭建Android的開發環境、如何在Eclipse中創建一個項目,以及如何使用Android平台提供的工具調試和監控應用程序。
1.1 Android平台簡介 19
1.1.1 Android背景介紹 19
1.1.2 Android平台架構 20
1.2 Android開發環境的搭建 22
1.2.1 相關軟體的下載與安裝 22
1.2.2 虛擬設備的創建和使用 25
1.2.3 創建「Hello Android」 27
1.2.4 Android應用程序的調試 28
1.3 小結 31
第2章 Android應用程序的構成 32
本章主要對Android的基本組件及Android應用程序的構成進行介紹,同時還將對Android應用程序的生命周期進行分析,主要目的是讓讀者了解Android應用程序的構成,掌握Android基本組件的特性及使用方法。
2.1 Android應用程序的解析 32
2.1.1 目錄結構 32
2.1.2 資源的管理與使用 33
2.1.3 AndroidManifest.xml簡介 36
2.1.4 應用程序的許可權 37
2.2 Android基本組件的介紹 38
2.2.1 應用程序的生命周期 38
2.2.2 Activity簡介 39
2.2.3 Service簡介 41
2.2.4 BroadcastReceiver簡介 44
2.2.5 ContentProvider簡介 45
2.2.6 Intent和IntentFilter簡介 46
2.3 小結 50
第3章 Android布局管理器 51
本章要介紹的內容為Android平台下的布局管理器。Android中的布局包括線性布局、表格布局、相對布局、幀布局和絕對布局。下面將分別對每個布局管理器進行詳細的介紹。
3.1 控制項類概述 51
3.1.1 View類簡介 51
3.1.2 ViewGroup類簡介 52
3.2 線性布局 52
3.2.1 LinearLayout類簡介 52
3.2.2 線性布局案例 53
3.3 表格布局 55
3.3.1 TableLayout類簡介 55
3.3.2 表格布局案例 56
3.4 相對布局 60
3.4.1 RelativeLayout類簡介 60
3.4.2 相對布局案例 61
3.5 幀布局 63
3.5.1 FrameLayout類簡介 63
3.5.2 幀布局案例 63
3.6 絕對布局 65
3.6.1 AbsoluteLayout類簡介 65
3.6.2 絕對布局案例 66
3.7 小結 69
第4章 Android常用基本控制項 70
本章將對進行用戶界面開發時常用到的Android基本控制項進行介紹,主要包括文本框、按鈕、單選按鈕和復選按鈕、狀態開關按鈕和日期時間控制項等。了解這些基本控制項的工作方式有助於學習後面要介紹的Android中的高級控制項。
4.1 文本控制項的介紹 70
4.1.1 TextView類簡介 70
4.1.2 EditText類簡介 71
4.1.3 文本框使用案例 71
4.2 按鈕控制項 75
4.2.1 Button類簡介 75
4.2.2 ImageButton類簡介 77
4.2.3 9Patch圖片簡介 79
4.2.4 9Patch圖片使用案例 80
4.3 狀態開關按鈕 81
4.3.1 ToggleButton類簡介 81
4.3.2 開關按鈕的使用 82
4.4 單選按鈕與復選按鈕 84
4.4.1 CheckBox和RadioButton類簡介 84
4.4.2 單選按鈕和復選按鈕使用案例 84
4.5 圖片控制項 87
4.5.1 ImageView類簡介 87
4.5.2 圖片查看器 88
4.6 時鍾控制項 91
4.6.1 AnalogClock和DigitalClock類簡介 91
4.6.2 時鍾控制項使用案例 91
4.7 日期與時間選擇控制項 92
4.7.1 DatePicker類簡介 92
4.7.2 TimePicker類簡介 93
4.7.3 日期時間控制項使用案例 93
4.8 動畫播放技術 95
4.8.1 幀動畫簡介 95
4.8.2 幀動畫使用案例 96
4.8.3 補間動畫簡介 98
4.8.4 補間動畫使用案例 99
4.9 小結 101
第5章 Android常用高級控制項 102
上一章已經介紹了Android中的一些基本控制項,本章將繼續上一章的思路,對Android中常用的高級控制項逐一進行介紹。
5.1 自動完成文本框 102
5.1.1 AutoCompleteTextView類簡介 102
5.1.2 自動完成文本使用案例 102
5.2 滾動視圖 104
5.2.1 ScrollView類簡介 104
5.2.2 滾動視圖使用案例 104
5.3 列表視圖 105
5.3.1 ListView類簡介 105
5.3.2 列表視圖使用案例 105
5.4 網格視圖 108
5.4.1 GridView類簡介 108
5.4.2 網格視圖使用案例 109
5.5 滑塊與進度條 113
5.5.1 ProgressBar類簡介 113
5.5.2 SeekBar類簡介 113
5.5.3 滑塊和進度條案例 113
5.6 星級滑塊 115
5.6.1 RatingBar類簡介 115
5.6.2 星級滑塊使用案例 115
5.7 選項卡 117
5.7.1 TabHost類簡介 117
5.7.2 選項卡使用案例 117
5.8 畫廊控制項 120
5.8.1 Gallery類簡介 120
5.8.2 畫廊控制項使用案例 121
5.9 下拉列表控制項 122
5.9.1 Spinner類簡介 123
5.9.2 下拉列表使用案例 123
5.10 小結 126
第6章 菜單與對話框 127
在前面的章節中介紹了Android平台下開發用戶界面時常用的基本控制項與高級控制項,但在實際開發中只運用這些控制項是不夠的。本章將介紹用戶界面中菜單與對話框的開發,同時還會對Android平台下的Toast和Notification進行介紹。
6.1 菜單功能的開發 127
6.1.1 選項菜單和子菜單簡介 127
6.1.2 選項菜單和子菜單使用案例 129
6.1.3 上下文菜單 134
6.2 對話框功能的開發 137
6.2.1 對話框簡介 137
6.2.2 普通對話框 138
6.2.3 列表對話框 141
6.2.4 單選按鈕對話框 143
6.2.5 復選框對話框 145
6.2.6 日期及時間選擇對話框 147
6.2.7 進度對話框 151
6.3 消息提示 153
6.3.1 Toast的使用 153
6.3.2 Notification的使用 155
6.4 小結 158
第7章 Android事件處理模型 159
本章將對Android平台用戶界面的各種事件響應進行詳細介紹,以加深讀者對Android平台的事件處理模型的理解,熟練掌握控制項的各種事件處理方法。
Android平台的事件處理機制有兩種,一種是基於回調機制的,一種是基於監聽介面的,接下來會分別對其進行介紹。
7.1 基於回調機制的事件處理 159
7.1.1 onKeyDown方法簡介 159
7.1.2 onKeyUp方法簡介 161
7.1.3 onTouchEvent方法簡介 162
7.1.4 onTrackBallEvent方法簡介 164
7.1.5 onFocusChanged方法簡介 165
7.2 基於監聽介面的事件處理 167
7.2.1 Android的事件處理模型 167
7.2.2 OnClickListener介面簡介 168
7.2.3 OnLongClickListener介面簡介 170
7.2.4 OnFocusChangeListener介面簡介 172
7.2.5 OnKeyListener介面簡介 176
7.2.6 OnTouchListener介面簡介 178
7.2.7 OnCreateContextMenuListener介面簡介 180
7.3 Handler消息傳遞機制 181
7.3.1 Handler類簡介 181
7.3.2 Handler使用案例 181
7.4 小結 184
高 級 篇
第8章 游戲與3D應用程序開發 185
Android平台下的應用開發,一般來說主要分為商業應用和游戲兩種,在開發商業應用時主要會用到本書前面章節曾介紹過的控制項和菜單對話框等知識,而開發游戲時就只能自己定義各種控制項和界面了。本章將要介紹如何在Android平台下使用View和SurfaceView開發游戲,在本章的最後還將對Android平台下進行3D場景的開發進行簡單的介紹。
8.1 自定義View的使用 185
8.1.1 MyView類的開發 185
8.1.2 MyThread類的開發 188
8.1.3 Activity部分代碼的開發 189
8.2 SurfaceView的使用 190
8.2.1 GameView類的開發 191
8.2.2 BallGoThread類的開發 195
8.2.3 TimeThread類的開發 198
8.2.4 GameViewDrawThread類的開發 198
8.2.5 Sample_8_2類的開發 199
8.3 GLSurfaceView與3D 200
8.3.1 OpenGL ES簡介 200
8.3.2 3D開發的基本知識 201
8.3.3 第一個3D圖形示例 202
8.3.4 3D谷倉的開發 206
8.4 小結 212
第9章 消息廣播與服務 213
本章將對Android的消息廣播機制及服務組件進行詳細介紹。在很多應用程序中,都會通過廣播形式來發送和接收消息。當應用程序接收到消息後,一般啟動一個Activity或者一個Service進行處理。本章將對之前介紹過的服務組件Service進行詳細介紹,章末通過對一個單機版的音樂播放盒的介紹幫助讀者掌握服務組件的使用方法。
9.1 BroadcastReceiver組件 213
9.1.1 BroadcastReceiver類簡介 213
9.1.2 基於廣播的案例 214
9.2 Service組件 216
9.2.1 Service類簡介 217
9.2.2 基於服務的案例 217
9.3 單機版音樂盒的實現 220
9.4 小結 228
第10章 網路與數據處理 229
本章要介紹的內容是Android平台下進行網路編程及數據處理的相關知識,內容包括網路通信的幾種方式(如使用Socket、URL、Socket等)、如何使用WebView瀏覽網頁,以及文件的上傳和下載。最後介紹訪問手機存儲卡的方法及如何在程序中使用SQLite資料庫。
10.1 使用Socket進行通信 229
10.1.1 Socket服務端的開發 229
10.1.2 Socket客戶端的開發 230
10.2 通過URL和HTTP請求獲取網路資源 231
10.2.1 通過URL獲取網路資源 232
10.2.2 通過HTTP請求網路資源 235
10.3 使用WebView進行網路開發 239
10.3.1 使用WebView瀏覽網頁 239
10.3.2 使用WebView執行HTML代碼 244
10.4 SQLite資料庫 246
10.4.1 資料庫的基本操作 246
10.4.2 個人通訊錄的實現之資源文件的組織和開發 247
10.4.3 個人通訊錄的實現之功能代碼的開發 250
10.5 訪問存儲卡 255
10.5.1 獲取存儲卡容量 255
10.5.2 讀取存儲卡信息 257
10.6 小結 259
第11章 手機通信功能開發 260
本章將對Android手機通信功能的開發進行介紹,其中包括簡訊的收發及狀態查詢、電話的撥打與接聽、來電的過濾和E-mail郵件的收發等,通過本章的學習,讀者應該能夠對Android平台手機通信功能有一定的了解。
11.1 簡訊控制 260
11.1.1 簡訊的發送 260
11.1.2 短消息提示 263
11.1.3 短消息群發 267
11.1.4 查詢發送狀態 271
11.2 電話控制 274
11.2.1 撥打電話 274
11.2.2 過濾電話 279
11.2.3 查詢當前狀態 279
11.3 E-mail相關功能開發 281
11.3.1 SMTP協議簡介 281
11.3.2 發送E-mail 281
11.4 小結 282
第12章 手機特有Feature開發 283
本章將要介紹的是Android手機特有Feature的開發,主要包括響應系統設置更改事件、設置手機外觀和其他的特性。同時還將介紹如何在程序中獲取SIM卡和電池電量等信息,最後將以手機鬧鍾為例講述如何自己開發特定功能的手機應用。
12.1 系統設置更改的事件 283
12.1.1 Configuration類簡介 283
12.1.2 響應Configuration的變化 284
12.2 手機外觀更改和提醒設置 286
12.2.1 手機壁紙的改變 286
12.2.2 手機振動的設置 290
12.2.3 音量調節 293
12.3 TelephonyManager的使用 296
12.3.1 TelephonyManager類簡介 297
12.3.2 TelephonyManager的使用案例 297
12.4 手機電池電量 300
12.4.1 原理概述 300
12.4.2 電量提示案例 301
12.5 手機鬧鍾 302
12.5.1 AlarmManager簡介 303
12.5.2 開發鬧鍾應用 303
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 創建Activity 311
13.3.2 創建ContentProvider 312
13.4 桌面控制項 313
13.4.1 桌面控制項概述 313
13.4.2 開發簡單的桌面控制項 314
13.5 多媒體數據採集 315
13.5.1 錄音 316
13.5.2 圖像採集 319
13.6 小結 323
第14章 感測器應用的開發 324
Android系統的一大亮點之一就是對感測器的應用,利用感測器可以開發出很多新奇有趣的程序,小到水平儀、計步器,大到感測器游戲,本章將詳細介紹各種感測器的原理及使用方法,並通過一個水平儀的開發向讀者介紹感測器應用的開發方法,以及如何在模擬器中模擬各種感測器。
14.1 Android平台下感測器簡介 324
14.1.1 加速度感測器Accelerometer 324
14.1.2 姿態感測器Orientation 329
14.1.3 磁場感測器Magnetic Field 332
14.1.4 溫度感測器Temperature 333
14.1.5 光感測器Light 336
14.2 感測器應用案例 337
14.2.1 開發前的准備工作 337
14.2.2 自定義View的開發 337
14.2.3 開發主邏輯代碼 339
14.2.4 運行與調試 342
14.3 小結 342
第15章 Google服務 343
本章將介紹如何在Android平台下開發基於Google服務的應用程序。Google提供了諸如GPS定位、Google Map、天氣預報、網路相冊和在線翻譯等多種服務,將這些服務融合到應用程序中將會帶來非常好的用戶體驗。
15.1 使用GPS獲取位置 343
15.1.1 LocationManager及相關類簡介 343
15.1.2 獲取位置信息案例 344
15.2 Google Map的使用 347
15.2.1 獲取Map API Key 347
15.2.2 創建模擬器 348
15.2.3 Google Map地圖查詢應用 349
15.2.4 Google Map導航應用 354
15.3 天氣預報 360
15.3.1 使用SAX解析XML 360
15.3.2 使用Google API獲取天氣信息 360
15.4 口袋詞典 364
15.4.1 Google Translate API簡介 364
15.4.2 口袋詞典的實現 365
15.5 Google街景 369
15.5.1 Android整合Google街景服務的原理 369
15.5.2 在程序中調用Google街景 369
15.6 小結 372
案 例 篇
第16章 Android游戲開發實踐——快樂數獨 373
益智類游戲是一種比較流行的游戲,其畫面大都比較簡單,很少有很復雜的游戲特效,但是通常用到人工智慧的演算法來控制游戲的難度。而演算法的優化是開發該類游戲的難點。這類游戲主要包括棋牌類游戲和智力測試類游戲,例如麻將、掃雷、五子棋、撲克牌等。
數獨就是益智游戲的一種,玩法簡單但數字的排列方式千變萬化,很多人認為數獨是訓練頭腦的絕佳方式。本章通過講解數獨游戲在Android平台上的設計與實現,使讀者了解此類游戲的開發過程,掌握實用的開發技巧,學會此類游戲的開發。
16.1 游戲的背景及功能概述 373
16.1.1 背景概述 373
16.1.2 功能簡介 374
16.2 游戲的策劃及准備工作 375
16.2.1 游戲的策劃 375
16.2.2 Android平台下游戲的准備工作 375
16.3 游戲的架構 376
16.3.1 各類的簡要介紹 376
16.3.2 游戲的框架簡介 377
16.4 歡迎界面的設計與實現 378
16.4.1 主類KLSDActivity實現 378
16.4.2 歡迎界面WelcomeView類的實現 380
16.4.3 刷幀線程WelcomeViewDrawThread類的實現 383
16.4.4 動畫生成線程WelcomeViewGoThread類的實現 384
16.5 「幫助」與「關於」界面的設計與實現 385
16.5.1 「幫助」界面HelpView類的實現 385
16.5.2 「關於」界面AboutView的實現 386
16.6 游戲界面的框架搭建 388
16.7 計時線程與數字鍵盤線程的開發 390
16.7.1 計時線程的開發 390
16.7.2 數字鍵盤線程的開發 391
16.8 數獨生成器的開發 392
16.9 游戲界面邏輯方法的實現 394
16.9.1 初始化方法的完善 394
16.9.2 簡單邏輯方法的完善 396
16.9.3 屏幕事件處理方法的完善 397
16.10 游戲界面繪畫方法的完善 401
16.10.1 數字鍵盤的繪制方法drawKey ()的完善 401
16.10.2 繪畫方法onDraw()的完善 402
16.11 游戲界面刷幀線程的實現 405
16.12 游戲的優化與改進 406
第17章 Android地圖搜索應用——美食天下 407
第15章已經介紹了Google Map的簡單使用,本章將通過之前介紹過的知識實現一個美食共享軟體,其中包括服務端和手機端,希望通過本章的學習,讀者能夠掌握Android系統與Tomcat伺服器的通信、Google地圖的使用及各種控制項的綜合應用。
17.1 系統背景及功能概述 407
17.1.1 背景簡介 407
17.1.2 功能概述 407
17.1.3 開發環境及目標平台 408
17.2 開發前的准備工作 409
17.2.1 資料庫的設計 409
17.2.2 表的創建與記錄插入 414
17.2.3 數據源的配置 415
17.3 Web端總體架構及功能預覽 415
17.3.1 目錄結構及系統框架 415
17.3.2 功能預覽 416
17.4 Web端登錄注冊模塊的實現 418
17.4.1 首頁的搭建 418
17.4.2 用戶注冊功能的開發 424
17.4.3 用戶登錄功能的開發 428
17.4.4 用戶注銷功能的開發 431
17.5 Web端美食上傳模塊的實現 431
17.5.1 頁面的搭建 431
17.5.2 圖片上傳組件FileUploadServlet的開發 435
17.5.3 DBUtil中相關方法的開發 437
17.6 Android端總體架構及功能預覽 438
17.6.1 功能預覽 439
17.6.2 總體架構 440
17.7 伺服器的設計與實現 441
17.8 Android端登錄界面的實現 443
17.8.1 開發前的准備工作 443
17.8.2 框架的搭建 445
17.8.3 監聽方法的完善 448
17.8.4 記住密碼功能的實現 449
17.8.5 伺服器端的完善 450
17.9 Android端注冊界面的實現 451
17.9.1 框架的搭建 451
17.9.2 監聽方法的完善 453
17.9.3 伺服器端的完善 455
17.10 Android端主界面MainActivity的實現 456
17.10.1 布局文件的開發 456
17.10.2 界面框架的搭建 457
17.10.3 初始化方法的完善 459
17.10.4 監聽方法的完善 460
17.10.5 網路處理線程的實現 463
17.10.6 伺服器端的完善 464
17.11 Android端地圖界面的實現 468
17.11.1 布局文件的開發 468
17.11.2 地圖界面的開發 469
17.12 美食信息界面的實現 472
17.13 系統的優化與改進 474
第18章 Android社交分享平台——口袋微博 475
本章將介紹社交分享平台——口袋微博的實現,該社交分享平台包括Web端和Android手機端兩個部分。在介紹了整個系統的背景及功能架構之後,本書將對該系統在Web端和Android手機端的實現進行介紹。
18.1 系統背景及功能概述 475
18.1.1 背景簡介 475
18.1.2 功能概述 475
18.1.3 開發環境和目標平台 476
18.2 開發前的准備工作 477
18.2.1 資料庫設計 477
18.2.2 表的創建和測試數據的插入 482
18.2.3 數據源的配置 483
18.3 Web端功能預覽及總體架構 484
18.3.1 Web端系統功能預覽 484
18.3.2 系統目錄結構 485
18.3.3 系統總架構 486
18.4 Web端主頁的搭建 486
18.5 Web端登錄注冊模塊的實現 488
18.5.1 用戶登錄功能的開發 488
18.5.2 用戶注冊功能的開發 491
18.5.3 用戶注銷功能的開發 494
18.6 查看和管理日誌模塊的實現 494
18.6.1 發布日誌功能的開發 494
18.6.2 顯示日誌及評論功能的開發 496
18.6.3 編輯和刪除日誌功能的開發 498
18.7 查看和管理相冊模塊的實現 499
18.7.1 查看相冊功能的開發 500
18.7.2 查看相冊相片功能的實現 501
18.7.3 顯示照片功能的實現 502
18.8 Android端功能預覽及總體架構 503
18.8.1 Android端功能預覽 503
18.8.2 Android端總架構 505
18.9 伺服器的設計與實現 506
18.9.1 伺服器的設計 506
18.9.2 伺服器的實現 506
18.10 Android端的准備工作 509
18.10.1 圖片資源的准備 509
18.10.2 XML資源文件的准備 510
18.11 登錄注冊模塊的實現 511
18.11.1 登錄模塊的開發 511
18.11.2 記錄賬號密碼功能的開發 516
18.11.3 伺服器驗證登錄功能的實現 517
18.11.4 注冊模塊的開發 517
18.12 個人中心模塊的實現 521
18.12.1 個人中心界面的開發 521
18.12.2 個人中心界面菜單功能的開發 523
18.13 快速發布模塊的實現 524
18.13.1 發布日誌和更新心情功能的實現 524
18.13.2 拍照上傳界面的開發 527
18.13.3 UploadActivity通信功能的開發 530
18.14 查看聯系人模塊的實現 534
18.14.1 ContactsActivity界面的開發 534
18.14.2 ContactsActivity通信功能的開發 536
18.15 日誌管理模塊的實現 536
18.15.1 查看日誌功能的開發 537
18.15.2 編輯日誌功能的開發 539
18.16 相冊管理模塊的實現 539
18.16.1 相冊查看和修改功能的實現 539
18.16.2 相片查看功能的實現 542
18.17 系統的優化與改進 544
B. 找尋安卓android gps App, 主要是登山用的
android當然有gps功能,只不過好像在中國酒不那麼好用了,要裝一個idd軟體才可以用的順暢!!!