Android平台開發之旅

Android平台開發之旅

《Android平台開發之旅》是2010年6月1日機械工業出版社出版的圖書,作者是汪永松。

內容簡介

本書涵蓋了Android平台1.5到2.2版本的主要功能特性,立足實際的開發案例,介紹了Android手機平台開發的基礎概念、實用技術和套用模式。主要內容包括:平台基礎、開發環境搭建、程式框架、高級界面和底層界面設計、檔案系統管理、網路通信、無線通信、多媒體編程、個人信息管理、電話系統、資料庫套用、XML套用和地圖套用。開發實例多達120例。本書主要面向具有一定移動平台開發經驗的開發人員,以及有興趣進行Android平台開發的程式設計師。

前言

作者在剛接觸Android的時候,感覺就像推開了一扇窗,與Android有關的信息、技術、概念紛至沓來,讓人目不暇接。不可否認,無論是Android手機產品的定位還是其開源項目的技術背景,都使它成為業界矚目的焦點。Android手機的橫空出世,打亂了移動平台的格局;而Android項目的開源舉措,更是人心所向。這些因素毫無疑問地讓Android成為移動平台開發者最看好的黑馬。但隨著作者對Android平台認識的逐步深入,令作者震撼的不再是其表面的新奇,而是那些支撐平台蓬勃發展、來自各個領域的專業套用。在圖形方面,有工業級的OpenGL ES庫;在輸入法方面,有套用廣泛的FreeType引擎;在網路方面,除了納入Bouncy Castle提供的SSL算法和Apache提供的HTTP開發庫,還把WebKit項目核心作為系統瀏覽器引擎;在數據管理方面融入了SQLite資料庫;在XML套用方面引入了XML Pull API;在集成套用方面植入了地圖套用。以上這些項目或標準,都在各個領域中得到廣泛套用,而Android平台能把這些“習性各異”的先進技術融匯到一起,並進行協同作業,這才真正是該平台博大精深的地方。本書的特色作者認為本書有三個鮮明的特色。第一點:內容全面,講解細透。本書中的內容涵蓋了Android 1.5到2.2版本主要的功能特性,除了結合其他技術透徹地講解平台中功能的淵源和關聯,還對部分變遷之後的功能進行了對比介紹,切實讓讀者能夠結合自己的知識來理解平台中的功能,無論平台如何升級都能感受到“萬變不離其宗”的技術本質。第二點:案例豐富,易於動手。本書分為17章,開發實例多達120例。這些開發實例都是經過作者親自進行審定和調試的,其內容不僅與章節的內容緊密相扣,而且還能方便地用於實際演練,從而激發讀者的學習熱情和鞏固對相關知識的理解。第三點:結構合理,深淺適度。本書內容的編排遵循“由表及里,由內而外”的形式,從功能使用到套用機制,從高級界面到底層界面,從內部存儲到外部通信。在對專題的介紹中,作者結合自己的理解,採用“步步為營”的方式引導讀者從了解功能到套用聯想,讓讀者逐步形成自己的認識,再藉助詳細的開發實例來加深理解。本書章節內容本書前三章簡要介紹了Android平台、開發環境以及Andriod應用程式組件。第4章重點介紹了架構中比較常見、重要的界面元素,並通過眾多實例讓讀者能夠迅速地在Android平台搭建如心所願的界面效果。第5章介紹了一些用於底層用戶界面控制的組件及其使用方式。第6章對Android平台中的檔案訪問類型進行了詳細的說明,從系統和應用程式的角度介紹了對檔案系統進行訪問的過程。第7章對Android平台支持的多種網路通信機制進行了詳細的介紹。還介紹了網頁瀏覽器的開發技術和實際的開發案例。第8章對Android平台支持的短訊息通信、藍牙通信以及Wi-Fi網路連線管理等無線通信方式進行了詳細的介紹。第9章對Android平台提供的多媒體套用方式進行了實例說明。第10章介紹了Android支持的個人信息管理內容,通過實際的開發案例,講解了如何獲取聯繫人信息、電話號碼、公司信息等與個人有關的內容。並結合調整前後的Android平台的不同版本(1.5和2.1),以對比的方式介紹不同版本對個人信息管理的支持方式的改變。第11章介紹了Android平台提供的電話信息系統管理功能。還介紹了如何獲取呼叫日誌信息。第12章對Android平台支持的資料庫類型進行了詳細介紹,主要內容包括:SQLite資料庫、JDBC API和Db4o資料庫。第13章對Android平台支持的XML套用方式進行了全面說明,主要內容包括:SAX解析方式、DOM解析方式、XML Pull API以及資源解析過程分析。第14章對Android平台提供的地圖API的功能進行了詳細的闡述,並通過開發實例詳細介紹了如何控制地圖以及添加地圖疊加圖等常用功能,同時還對地圖視圖的使用模式和縮放控制進行了小結。第15章對Android平台提供的系統信息管理接口進行了全面介紹。第16章對Android平台支持的資源類型及其定義、資源的使用模式、系統資源定義進行了全面介紹。還對Android SDK附帶工具的常用方式進行了詳細說明。第 17 章對Android平台中常用視圖組件的屬性以及應用程式的使用許可進行了全面介紹。附錄對隨書原始碼的使用進行了說明。本書中的一些約定注意:提醒讀者應該重視的內容。提示:是對讀者有所幫助的一些技巧。

目錄

出版說明

前言

第1章 初識Android平台 1

1.1 Android平台簡介 1

1.1.1 Android發展歷史 1

1.1.2 平台內涵 2

1.2 Android平台架構 4

1.2.1 架構圖 4

1.2.2 架構內容 5

1.2.3 Android應用程式內容 6

1.3 用戶界面 8

1.3.1 視圖層次結構 8

1.3.2 布局—設計圖 8

1.3.3 視圖—整體家居 9

1.3.4 顯示部件—裝飾品 9

1.3.5 用戶界面事件 9

1.3.6 界面風格和主題 10

1.3.7 數據綁定 10

1.4 程式資源和資產 10

1.4.1 程式資源和資產概述 11

1.4.2 資源類型及內容 11

1.5 數據存儲 11

1.5.1 首選項 12

1.5.2 檔案 12

1.5.3 資料庫 12

1.6 平台安全和許可 12

1.6.1 Android平台安全結構體系 12

1.6.2 應用程式簽名 13

1.6.3 用戶ID和檔案存取 13

1.6.4 許可 13

第2章 踏上Android平台開發

之旅 15

2.1 搭建系統環境 15

2.1.1 安裝配置J2SE開發環境 15

2.2 Android平台SDK 17

2.2.1 安裝配置Android平台SDK 17

2.2.2 Android SDK內容介紹 17

2.2.3 Android SDK附帶工具介紹 19

2.3 集成開發環境—Eclipse 21

2.4 應用程式調試工具外掛程式—

ADT 22

2.4.1 獲取ADT 22

2.4.2 安裝配置ADT 22

2.5 驗證開發環境 23

2.5.1 創建虛擬設備 23

2.5.2 建立FirstActivity工程 24

2.5.3 運行和調試 31

2.6 應用程式的開發過程 37

2.6.1 開發流程回顧 37

2.6.2 新手上路遇到的常見問題 38

第3章 Android應用程式組件 41

3.1 應用程式組件 41

3.2 Android應用程式組件 41

3.2.1 Activity(活動)—形象大使 42

3.2.2 Service(服務)—老黃牛 47

3.2.3 BroadcastReceiver(廣播接收器)

—傾聽者 50

3.2.4 ContentProvider

(內容提供者) 53

3.2.5 Android應用程式組件小結 58

3.3 組件套用機制 58

3.3.1 組件與組件間的互動機制 58

3.3.2 未決意向對象 65

3.3.3 組件與執行緒間的互動機制 66

3.3.4 組件與服務間的互動機制 68

3.4 Android平台應用程式組件

小結 73

第4章 高級用戶界面設計 75

4.1 Android平台UI組件架構探討 75

4.1.1 Android平台UI組件結構層次 75

4.1.2 Android UI組件結構層次質疑 76

4.1.3 參考J2SE平台的組件結構

層次 76

4.1.4 容器與組件的關係 76

4.1.5 布局的角色 76

4.2 UI組件的定義 77

4.3 UI組件的引用 78

4.4 組件屬性和ID 79

4.5 布局組件(Layouts) 80

4.5.1 線性布局(LinearLayout) 81

4.5.2 相對布局(RelativeLayout) 84

4.5.3 絕對布局(AbsoluteLayout) 86

4.5.4 框布局(FrameLayout) 87

4.5.5 表格布局(TableLayout) 89

4.5.6 布局的選擇 91

4.6 視圖組件(Views) 91

4.6.1 視圖的使用模式 92

4.6.2 常用視圖 94

4.6.3 定製視圖 120

4.7 小部件(Widgets) 122

4.7.1 小部件的使用模式 122

4.7.2 文本部件 123

4.7.3 按鈕部件 126

4.7.4 圖片顯示組件 131

4.7.5 滑動條 133

4.7.6 選取組件 134

4.7.7 高級小部件 135

4.8 選單 138

4.8.1 選項選單 138

4.8.2 上下文選單 140

4.9 對話框 141

4.9.1 對話框的使用方式 142

4.9.2 對話框的定義 143

4.10 訊息提示條(Toast) 148

4.11 定製Activity 149

4.11.1 列表Activity(List Activity) 149

4.11.2 擴展列表Activity

(ExpandableListActivity) 149

4.11.3 標籤頁Activity

(Tab Activity) 149

4.11.4 地圖Activity

(MapActivity) 150

4.12 用戶界面開發問題 150

4.12.1 ANR異常 150

4.12.2 界面組件與執行緒的互動 150

第5章 底層用戶界面設計 153

5.1 Android底層用戶界面 153

5.2 底層視圖繪製 154

5.2.1 表面視圖類(Surface View) 154

5.2.2 底層視圖的繪製接口 159

5.3 OpenGL視圖繪製 160

5.3.1 OpenGL ES概述 160

5.3.2 Android平台對OpenGL ES的

支持 160

5.3.3 OpenGL表面視圖的使用模式 161

5.3.4 Android平台中OpenGL使用

說明 163

5.4 視頻視圖(VideoView) 163

第6章 檔案系統管理 164

6.1 Android平台中的檔案 164

6.2 原檔案資源 164

6.2.1 準備原檔案資源 165

6.2.2 使用原檔案資源 165

6.3 檔案系統 166

6.3.1 Android平台檔案系統介紹 167

6.3.2 檔案系統操作 168

6.3.3 檔案瀏覽器 172

6.4 應用程式檔案 181

6.4.1 程式私有檔案 181

6.4.2 程式首選項檔案 184

6.5 檔案系統監視 185

第7章 網路通信 191

7.1 Android平台網路通信 191

7.2 Android平台對網路通信的

支持 191

7.3 流式套接字通信 192

7.3.1 界面布局定義 193

7.3.2 Activity定義框架 193

7.3.3 套接字服務端 195

7.3.4 套接字客戶端 201

7.3.5 流式套接字通信說明 206

7.4 數據報(套接字)通信 206

7.4.1 數據報通信程式界面 206

7.4.2 Activity定義框架 206

7.4.3 數據報服務端 208

7.4.4 數據報工具類 210

7.4.5 數據報通信配置 211

7.4.6 數據報客戶端 211

7.4.7 數據報套接字通信說明 215

7.5 HTTP通信 215

7.5.1 套接字方式 215

7.5.2 URL連線方式 218

7.5.3 Apache HTTP API 220

7.6 HTTPS 222

7.7 SSL通信 224

7.7.1 SSL通信模式 224

7.7.2 SSL服務端 225

7.7.3 SSL客戶端 230

7.8 瀏覽器 234

7.8.1 WebKit介紹 235

7.8.2 Android平台對WebKit引擎的

封裝 235

7.8.3 網頁視圖(WebView) 235

7.8.4 瀏覽器開發實例 237

7.8.5 瀏覽器書籤信息管理 249

7.8.6 瀏覽器搜尋記錄 251

第8章 無線通信 254

8.1 無線通信概述 254

8.2 短訊息 254

8.2.1 Android平台對短訊息的支持 254

8.2.2 傳送短訊息 255

8.2.3 查看短訊息 258

8.2.4 接收短訊息 260

8.3 藍牙通信 265

8.3.1 Android平台對藍牙的支持 265

8.3.2 藍牙通信模式 266

8.3.3 藍牙通信實例 266

8.4 Wi-Fi網路連線管理 276

8.4.1 Wi-Fi介紹 276

8.4.2 Android平台對Wi-Fi的支持 277

8.4.3 Wi-Fi連線管理 277

第9章 多媒體套用 281

9.1 Android平台對多媒體的支持 281

9.2 音頻播放套用 282

9.2.1 音樂播放器 282

9.2.2 播放Jet檔案 284

9.2.3 錄音 285

9.3 視頻播放套用 286

9.4 攝像頭視頻採集 292

9.5 照相機 293

9.5.1 照片服務接口 293

9.5.2 照片預覽 293

9.5.3 照片拍攝 294

9.5.4 停止使用照相機 294

9.6 流媒體 294

9.7 媒體掃描和媒體庫 294

9.7.1 媒體檔案的掃描 294

9.7.2 獲取媒體檔案信息 295

9.8 音樂盒工具 297

第10章 個人信息管理 307

10.1 個人信息管理 307

10.2 Android對個人信息管理的

支持 307

10.3 聯繫信息 308

10.4 聯繫人信息 309

10.5 電話號碼信息 311

10.6 組織(公司)信息 313

第11章 電話信息系統管理 316

11.1 電話信息系統 316

11.2 Android平台對電話信息

系統的支持 317

11.3 電話信息 317

11.4 電話狀態 320

11.5 電話撥號 325

11.6 呼叫日誌 326

11.7 使用許可 328

第12章 資料庫套用 329

12.1 SQLite資料庫 329

12.1.1 SQLite資料庫介紹 329

12.1.2 Android平台對SQLite

資料庫的支持 330

12.1.3 SQLite資料庫套用模式 330

12.1.4 開發實例 332

12.1.5 基於SQLite的日記賬工具 342

12.2 JDBC API 361

12.2.1 Android平台對JDBC API的

支持 362

12.2.2 JDBC API套用模式 362

12.2.3 開發實例 367

12.3 對象資料庫Db4o 376

12.3.1 Db4o對Android平台的支持 375

12.3.2 Db4o API 375

12.3.3 Db4o資料庫套用 376

12.3.4 基於Db4o的日記賬工具 382

12.4 資料庫開發總結 389

第13章 XML套用 390

13.1 Android平台對XML套用的

支持 390

13.2 SAX解析方式 390

13.2.1 SAX使用模式 390

13.2.2 Android平台中對SAX的

支持 391

13.2.3 SAX套用實例 391

13.3 DOM解析方式 401

13.3.1 DOM使用模式 402

13.3.2 Android平台中對DOM的

支持 402

13.3.3 DOM套用實例 403

13.4 XML Pull API 412

13.4.1 XML Pull API使用模式 412

13.4.2 Android平台中對XML

Pull API的支持 412

13.4.3 XML Pull API套用實例 413

13.5 XML資源解析 416

13.5.1 解析XML布局資源 417

13.5.2 解析XML原檔案資源 418

13.5.3 解析XML資源 420

13.6 Android平台XML使用小結 423

第14章 地圖套用 424

14.1 地圖套用概述 424

14.2 Android平台對地圖套用的

支持 425

14.3 地圖視圖(MapView)套用 425

14.3.1 地圖視圖組件的定義 426

14.3.2 獲取地圖API使用密鑰 426

14.3.3 工程設定 428

14.3.4 Activity組件框架 428

14.3.5 地圖API庫設定 429

14.3.6 地圖API使用許可 429

14.4 地圖API套用 429

14.4.1 界面布局定義 430

14.4.2 地圖Activity組件框架 430

14.4.3 獲取地圖當前位置 433

14.4.4 地圖疊加圖管理 434

14.4.5 地圖API使用小結 436

第15章 系統信息管理 438

15.1 系統服務 438

15.1.1 Android系統服務介紹 438

15.1.2 Activity管理 439

15.1.3 警報管理 443

15.1.4 音頻管理 446

15.1.5 剪貼簿管理 448

15.1.6 連線管理 449

15.1.7 輸入法管理 453

15.1.8 鍵盤守護 454

15.1.9 通報管理 454

15.1.10 布局填充 456

15.1.11 位置服務管理 458

15.1.12 電源管理 459

15.1.13 搜尋服務 460

15.1.14 感測器管理 461

15.1.15 電話管理 462

15.1.16 振動器管理 463

15.1.17 Wi-Fi管理 463

15.1.18 牆紙管理 464

15.1.19 視窗管理 464

15.2 Android平台系統信息 465

15.2.1 進程管理 465

15.2.2 檔案系統信息 467

15.2.3 環境變數 467

15.2.4 系統時間管理 469

15.2.5 構建信息 473

15.2.6 電池狀態 475

15.2.7 系統設定 477

15.2.8 安全設定 478

第16章 Android資源及SDK

工具 480

16.1 資源類型及定義 480

16.1.1 常量值資源 480

16.1.2 繪製用資源 490

16.1.3 布局資源 491

16.1.4 動畫資源 493

16.1.5 選單資源 496

16.1.6 檔案資源 498

16.1.7 備選資源 500

16.2 資源的使用模式 501

16.2.1 資源ID 502

16.2.2 資源引用 502

16.2.3 資源屬性 502

16.3 系統資源定義 503

16.4 Android SDK工具使用 503

16.4.1 adb工具 503

16.4.2 sqlite3工具 504

16.4.3 keytool工具 504

第17章 Android組件屬性及

使用許可 505

17.1 Android常用視圖組件屬性 505

17.1.1 視圖(View) 505

17.1.2 線性布局(LinearLayout) 507

17.1.3 線性布局參數(LinearLayout_

Layout) 507

17.1.4 相對布局(RelativeLayout) 507

17.1.5 相對布局參數

(RelativeLayout_Layout) 508

17.1.6 絕對布局參數

(AbsoluteLayout_Layout) 508

17.1.7 框布局(FrameLayout) 509

17.1.8 框布局參數(FrameLayout_

Layout) 509

17.1.9 表格布局(TableLayout) 509

17.1.10 表格行的單元(TableRow_

Cell) 509

17.1.11 抽象列表視圖組件

(AbsListView) 509

17.1.12 列表視圖組件(ListView) 510

17.1.13 格子視圖組件(GridView) 510

17.1.14 畫廊視圖組件(Gallery) 510

17.1.15 文本組件(TextView) 511

17.1.16 提示輸入文本框

(AutoCompleteTextView) 512

17.1.17 圖片視圖(ImageView) 513

17.2 應用程式使用許可

(Uses-permissions) 513

17.2.1 使用許可的聲明 513

17.2.2 Android平台使用許可列表 514

附錄 隨書原始碼說明 517

參考文獻 518

相關詞條

熱門詞條

聯絡我們