OPhone套用開發權威指南 (第2版)

OPhone套用開發權威指南 (第2版)

《OPhone套用開發權威指南 (第2版)》是2011年6月出版的圖書,作者是黃曉慶。

基本介紹

  • 書名:中國移動創新系列叢書 OPhone套用開發權威指南 (第2版)
  • 作者:詹健飛 吳博 柳陽 孟昭
  • ISBN:978-7-121-13366-4
  • 開本:16開
圖書信息,宣傳語,序,前 言,本書主要內容,目 錄,

圖書信息

中國移動創新系列叢書 OPhone套用開發權威指南 (第2版)
黃曉慶 主編
詹健飛 吳博 柳陽 孟昭 作者
ISBN 978-7-121-13366-4
2011年6月出版
定價:69.00元(含光碟1張)
16開
468頁

宣傳語

本書參展“十一五”國家重大科技成就展,並被新聞聯播報導
OPhone可視化開發工具可以幫助開發者提高開發效率,降低開發門檻

OPhone平台基於Linux和開放手機聯盟(OHA)的Android系統,經過中國移動的創新研發,設計出擁有新穎獨特的用戶操作界面,增強了瀏覽器能力和WAP兼容性,最佳化了多媒體領域的OpenCORE、瀏覽器領域的WebKit等業內眾多知名引擎,增加了包括遊戲、Widget、Java ME等在內的先進平台中間件。
OPhone通過提供完備的API集合、統一的螢幕尺寸和用戶界面接口等機制,大大縮短了應用程式向多種設備上移植的周期,提高了產品的可維護性。目前,OPhone平台主要支持兩種應用程式模型,一種是使用Java語言編寫的OPhone應用程式,另一種是使用HTML和JavaScript等腳本語言編寫的Mobile Widget應用程式。
OPhone構建了開放、易用、界面友好的面向移動網際網路的智慧型終端軟體平台,為開發者提供了一個開源、開放的平台,把內容供應商、開發者和消費者緊密地聯繫在一起。在OPhone項目啟動之初,中國移動就規劃了OPhone開發者社區,提供專業的技術文檔,鼓勵開發者之間分享開發經驗,加強開發者之間的交流。同時,中國移動已經發布了網上套用商店Mobile Market,開發者可以方便地將開發的OPhone應用程式提交到Mobile Market。我們相信,開發者的聰明才智終將極大地豐富OPhone平台的套用。
《OPhone套用開發權威指南》系統地介紹了OPhone平台的體系結構和應用程式模型,覆蓋了圖形用戶界面、OpenGL ES、數據持久化存儲、移動多媒體框架、後台運行程式、網路連線、Telephony和訪問硬體層等知識。難能可貴的是,作者將設計模式和開發技巧融入到章節之中,並將已經提交到Mobile Market的商業套用源碼作為案例在書中介紹,大大提高了本書的指導性和實用性。本書不但可以幫助讀者掌握OPhone平台的系統知識,還可以提高讀者在用戶界面設計、多媒體和網路應用程式開發方面的能力,開發出架構合理、用戶體驗出色的OPhone應用程式。本書是OPhone系列叢書的第一本,中國移動還將出版OPhone遊戲開發以及OPhone系統架構和原理方面的圖書,幫助讀者從多角度掌握OPhone平台的知識。
希望讀者懷著一種輕鬆的心情閱讀本書,享受在OPhone平台編寫代碼的樂趣,並為OPhone平台的發展獻計獻策。
中國移動通信研究院 院長

前 言

OPhone平台基於開放手機聯盟(Open Handset Alliance,OHA)的Android系統,同時OPhone平台完全兼容Android系統。中國移動相信一個開放、先進的移動終端平台是向用戶提供最好的應用程式和網際網路體驗的關鍵所在,中國移動致力於與OHA及開源社區一起推動智慧型終端在中國的普及和發展。為此,中國移動特編寫本書以幫助開發者快速掌握OPhone平台的知識,推廣OPhone平台的發展。
本書主要為在OPhone平台上開發應用程式的開發者提供指導,幫助讀者快速熟悉OPhone平台的體系結構、應用程式模型,掌握OPhone應用程式開發所需的主要知識。儘管設計模式、多媒體和網路通信協定等內容不是本書的介紹重點,但是考慮到這些知識對實際項目開發有重要的參考意義,筆者將其作為OPhone套用開發的外延和補充,融入到各個章節中,目的是呈獻給讀者一本內外兼修的“權威指南”。相比上一版,本書增加了OPhone OS 2.0的特性介紹,包括數據連線管理等重點內容。
伴隨各種智慧型終端平台發展的關鍵字是“設備分裂”和“功能受限”。設備分裂導致一款應用程式可能需要多次移植才可能覆蓋儘可能多的終端設備,為了適配軟體環境和硬體參數的差異,原始碼中可能包含了大量的if/else語句,甚至是宏標記,使得代碼難以維護;功能受限使得開發者巧婦難為無米之炊,如果平台沒有提供所需要的API,那么再好的想法也只能是空想。在設計之初,OPhone平台就考慮到了上述問題。OPhone包含了豐富的本地庫,並將這些底層接口通過JNI提供給應用程式開發者,在OPhone平台上編寫應用程式會有一種如魚得水、遊刃有餘的感覺。豐富的API、強大的功能在一定程度上避免了在API層面造成設備分裂;在資源管理方面,OPhone也是盡善盡美,良好的設計節省了大量代碼維護和設備適配的工作。關於OPhone平台的優點,這裡不再一一列舉,讀完本書您會喜歡上在OPhone上開發應用程式。

本書主要內容

結合豐富的案例,系統全面地介紹OPhone應用程式開發的知識是本書追求的目標。全書包括的30多個案例,其中不乏俄羅斯方塊、鈴聲DIY等完整的案例,是學習OPhone應用程式開發的重要參考。在內容安排上,不但詳細地介紹了OPhone應用程式開發的主要內容,包括Activity、Service、Content Provider和BroadcastReceiver,還在多媒體、聯網應用程式開發中適當深入,幫助讀者提高工程項目的開發能力。本書共有11章,主要內容如下:
 第1章“OPhone平台概述”,介紹了OPhone平台的體系結構、OPhone SDK、OPhone開發者社區和Android應用程式移植到OPhone平台指南。除此之外,還介紹了Mobile Market的商務合作流程。
 第2章“OPhone開發環境和流程”,主要介紹了如何搭建OPhone應用程式開發環境和開發流程。其中,調試技巧和OPhone SDK提供的工具是應用程式開發過程中的有益補充。除此之外,還介紹了OPhone可視化軟體開發工具(ODT)等內容。
 第3章“OPhone應用程式模型”,深入介紹了OPhone應用程式的運行環境、OPhone應用程式的組成部分,包括Activity、Service、Content Provider和BroadcastReceiver,以及OPhone的安全體系和數字簽名。
 第4章“圖形用戶界面”,深入介紹了OPhone的用戶界面接口和2D圖形引擎,包括XML布局檔案、事件處理、常用UI組件、自定義View、動畫和資源檔案管理等。
 第5章“OpenGL ES編程”,深入介紹了OPhone平台的OpenGL ES編程,包括OpenGL ES設計準則、3D空間觀察與變換、顏色和光照、紋理貼圖、幀快取操作、反走樣及EGL使用等。
 第6章“數據持久化存儲”,介紹了OPhone平台提供的檔案、Preference、關係型資料庫SQLite和Content Provider四種數據持久化存儲方案。
 第7章“移動多媒體編程”,介紹了OPhone平台的多媒體框架,如何使用OPhone提供的音頻和視頻的播放、音頻的錄製等功能開發豐富多彩的移動多媒體應用程式。最後還深入分析了MP3檔案格式,提供了MP3檔案切割的解決方案。
 第8章“讓程式在後台運行”,深入介紹了OPhone平台的Service組件,包括如何創建和啟動Service,如何在單獨執行緒處理耗時的任務,如何使用AIDL語言等。
 第9章“訪問網路數據和服務”,主要介紹了OPhone平台連線網際網路的能力,重點介紹了OPhone平台的數據連線管理和基於HTTP的聯網應用程式開發。除了介紹開發聯網應用程式常見的API之外,還介紹了設計通信數據格式和內容編碼檢測等高級話題。
 第10章“高級通信技術”,主要介紹了OPhone平台提供的通信層API,藉助這些API可以方便地訪問電話和簡訊等功能。
 第11章“訪問硬體層”,介紹了如何使用OPhone提供的API訪問設備的硬體層,包括Camera、位置服務和感測器。
如何使用光碟中的代碼
本書的案例代碼全部基於Eclipse和OPhone SDK 2.0開發完成,讀者可以參考附錄A“如何導入原始碼”將案例導入到Eclipse中。由於OPhone SDK 2.0與Android SDK 2.1兼容,本書的程式也可以在Android 2.1平台上正常運行。
OPhone開發者的財富之路
中國移動推出的Mobile Market 為開發者提供了廣闊的發展空間,而OPhone作為Mobile Market支持的旗艦平台有著非凡的“錢”景。開發者可以免費註冊成為中國移動的開發者用戶,編寫OPhone應用程式並上傳到Mobile Market,你的套用將可以被中國移動的5億用戶下載使用,銷售收入的70%歸開發者所有。本書將是OPhone開發者通往財富之路的一把鑰匙。
OPhone開發者社區
讀者在閱讀本書過程中,如果有任何疑問,都可以登錄OPhone開發者社區尋求幫助。OPhone開發者社區提供最新的SDK下載、線上技術文檔、論壇和部落格等多項服務,目的是加強開發者之間的交流,提高開發者的能力。相信您在閱讀過程中遇到的問題可以在OPhone開發者社區及時地得到解決。
關注OPhone系列叢書
本書是《中國移動創新系列叢書》中的一本,中國移動還將出版專注於OPhone遊戲開發以及OPhone系統架構和原理方面的圖書。全方位的OPhone系列叢書將幫助讀者從底層作業系統到上層應用程式開發全面了解OPhone平台。
OPhone遊戲開發指南將帶領讀者跨越遊戲開發的全過程,從遊戲的分類和策劃談起,介紹遊戲的結構設計和編程,講解遊戲的性能最佳化和移植,直到最後遊戲的發布。書中通過完整的案例介紹休閒、動作、RPG等遊戲類型的開發技巧,介紹事件處理、狀態機、圖形繪製、算法的知識。作為高級話題,還將探討3D遊戲開發和聯網遊戲開發,以及遊戲引擎和遊戲輔助工具的內容。
OPhone系統架構和原理藉助OPhone平台的開源特性,將完整的手機作業系統架構和原理展現給讀者。深入分析Linux核心、Dalvik虛擬機、系統庫和應用程式框架的核心部件及技術細節,包括記憶體和快取管理、進程和執行緒、I/O系統、檔案系統、安全機制、啟動、硬體驅動編程、JNI機制等內容。

目 錄

第1章 OPhone平台概述 1
1.1 OPhone的架構 1
1.1.1 Linux核心 2
1.1.2 本地庫 2
1.1.3 OPhone運行環境 3
1.1.4 Widget運行環境 3
1.1.5 應用程式框架 4
1.1.6 應用程式 5
1.2 開發OPhone應用程式 5
1.2.1 開發語言 5
1.2.2 OPhone SDK 5
1.2.3 OPhone開發者社區 6
1.2.4 OPhone與Android套用開發的差異 6
1.3 將OPhone套用上傳到Mobile Market 7
1.3.1 Mobile Market的商業模式 7
1.3.2 Mobile Market發布流程 8
1.4 小結 12
第2章 OPhone開發環境和流程 13
2.1 安裝OPhone SDK和Eclipse 13
2.1.1 安裝Java SDK 14
2.1.2 安裝Eclipse 15
2.1.3 安裝Android SDK 15
2.1.4 添加必要的Android SDK組件 16
2.1.5 安裝OPhone SDK 16
2.1.6 安裝ODT外掛程式 17
2.1.7 設定Java編譯器的兼容級別 19
2.1.8 安裝WDT外掛程式(可選) 20
2.2 第一個OPhone應用程式 20
2.2.1 新建OPhone項目 21
2.2.2 運行OPhone項目 22
2.2.3 更新資源檔案 25
2.3 調試OPhone應用程式 31
2.3.1 設定斷點 32
2.3.2 啟動調試 33
2.3.3 單步跟蹤 33
2.3.4 真機調試 34
2.4 在命令行下開發OPhone程式 35
2.4.1 創建項目 35
2.4.2 用Ant編譯項目 36
2.4.3 運行應用程式 37
2.5 OPhone SDK介紹 38
2.5.1 OPhone可視化軟體開發工具(ODT) 39
2.5.2 Widget開發工具(WDT) 39
2.5.3 OPhone模擬器 39
2.5.4 模擬SD卡 40
2.5.5 ADB 41
2.5.6 DDMS 41
2.6 OPhone可視化軟體開發工具 43
2.6.1 ODT界面介紹 43
2.6.2 界面編輯功能 46
2.6.3 代碼生成功能 49
2.7 小結 50
第3章 OPhone應用程式模型 51
3.1 OPhone應用程式基礎 51
3.1.1 OPhone應用程式運行環境 51
3.1.2 OPhone應用程式的組成 52
3.2 Activity 59
3.2.1 Activity創建與聲明 59
3.2.2 Activity的生命周期 64
3.2.3 啟動Activity 70
3.2.4 Activity和Task 73
3.3 Content Provider 77
3.4 BroadcastReceiver 80
3.5 Service 82
3.6 安全與許可 82
3.6.1 安全架構 82
3.6.2 許可 83
3.7 數字簽名 86
3.7.1 簽名策略 86
3.7.2 簽名步驟 86
3.8 小結 88
第4章 圖形用戶界面 89
4.1 用戶界面概述 89
4.1.1 手機軟硬體特性的發展 89
4.1.2 如何影回響用程式開發 90
4.1.3 OPhone圖形引擎 90
4.2 用戶界面設計 91
4.2.1 聲明布局檔案 91
4.2.2 編寫XML檔案 91
4.2.3 載入XML檔案 92
4.2.4 將數據綁定到AdapterView 93
4.2.5 創建選單 94
4.2.6 創建Dialog 97
4.2.7 通知用戶 98
4.2.8 處理用戶輸入 99
4.2.9 樣式與主題 100
4.3 常用Widget 101
4.3.1 TextView 101
4.3.2 Button 104
4.3.3 ImageView 105
4.3.4 ProgressBar 106
4.3.5 DatePicker/TimePicker 109
4.3.6 GridView 110
4.3.7 Spinner 113
4.3.8 Gallery 114
4.3.9 TabHost 115
4.4 高級圖形用戶界面技術 118
4.4.1 圖形系統類結構 118
4.4.2 常用布局類 120
4.4.3 繪製圖形 126
4.4.4 構建自己的組件 135
4.5 圖形動畫 142
4.5.1 Animation 142
4.5.2 Interpolator 147
4.5.3 AnimationSet 148
4.5.4 自定義動畫 149
4.6 Resource介紹 153
4.6.1 資源類型 154
4.6.2 使用資源 155
4.6.3 資源適配 156
4.7 俄羅斯方塊實例 158
4.7.1 方塊的數據結構 158
4.7.2 方塊渲染 161
4.7.3 遊戲區域設計 163
4.7.4 碰撞檢測 166
4.7.5 輸入處理 168
4.7.6 積分排行榜 170
4.8 AppWidget 171
4.8.1 AppWidgetProvider 172
4.8.2 AppWidgetProviderInfo 173
4.8.3 RemoteViews 174
4.8.4 AppWidgetManager 175
4.8.5 用自定義的類來實現RemoteViews 175
4.8.6 AppWidget開發調試技巧 177
4.9 小結 178
第5章 OpenGL ES編程 179
5.1 OpenGL ES概述 179
5.1.1 OpenGL ES設計準則 179
5.1.2 OpenGL ES 與OpenGL的不同 180
5.1.3 一個簡單的OpenGL ES程式 183
5.2 3D觀察與變換 185
5.2.1 一個簡單的例子:繪製立方體 186
5.2.2 理解變換 191
5.2.3 投影變換 193
5.2.4 視口變換 195
5.2.5 矩陣堆疊 196
5.3 繪製圖元 196
5.3.1 圖元種類 196
5.3.2 指定頂點數據 198
5.3.3 繪製圖元 201
5.4 顏色和光照 202
5.4.1 設定顏色和材質 203
5.4.2 光照 204
5.5 光柵化和片元處理 208
5.5.1 背面剪裁 208
5.5.2 紋理映射 209
5.5.3 霧 220
5.5.4 反走樣 222
5.5.5 像素測試 224
5.5.6 將片元合併到顏色快取 227
5.6 幀快取操作 230
5.6.1 清空快取 230
5.6.2 讀取顏色快取 231
5.6.3 強制完成繪圖指令 231
5.7 其他 232
5.7.1 行為控制函式 232
5.7.2 狀態查詢 232
5.8 EGL簡介 233
5.9 小結 236
第6章 數據持久化存儲 237
6.1 檔案存儲 237
6.1.1 存儲至默認資料夾 238
6.1.2 存儲至指定資料夾 239
6.1.3 存儲至SD卡 241
6.1.4 讀取資源檔案 242
6.2 SharePreference 243
6.3 SQLite 247
6.3.1 創建資料庫 247
6.3.2 SQLiteOpenHelper 250
6.3.3 創建觸發器 253
6.3.4 創建索引 254
6.3.5 創建視圖 254
6.3.6 運算元據 256
6.3.7 將Cursor綁定到AdapterView 263
6.4 Content Provider 267
6.4.1 概述 267
6.4.2 創建自定義的Content Provider 270
6.4.3 Content Provider更新的通知機制 280
6.4.4 DAO接口及實現 281
6.5 小結 283
第7章 移動多媒體編程 284
7.1 多媒體檔案格式與編碼 284
7.1.1 多媒體檔案格式 284
7.1.2 編碼 285
7.1.3 OPhone平台支持的媒體格式 286
7.1.4 選擇合適的媒體檔案 287
7.2 音頻和視頻播放 287
7.2.1 三種不同的數據源 287
7.2.2 MediaPlayer的狀態 290
7.2.3 音樂播放器實例 294
7.2.4 播放視頻 305
7.3 錄製音頻 308
7.3.1 MediaRecorder的狀態圖 308
7.3.2 錄音器實例 310
7.4 MP3檔案格式分析 315
7.4.1 MP3檔案介紹 315
7.4.2 ID3V1標籤 315
7.4.3 ID3V2標籤 318
7.4.4 MP3幀結構 323
7.4.5 分割MP3檔案 330
7.5 案例分析——鈴聲DIY 333
7.6 小結 335
第8章 讓程式在後台運行 336
8.1 Service概述 336
8.2 Service編程實踐 337
8.2.1 創建Service 337
8.2.2 啟動和停止Service 339
8.2.3 通知用戶 341
8.2.4 不阻塞用戶操作 343
8.2.5 Service與Activity通信 349
8.3 後台播放音樂 350
8.3.1 跨進程調用 350
8.3.2 創建AIDL接口檔案 351
8.3.3 實現AIDL接口 352
8.3.4 綁定Service 355
8.3.5 調用IPC方法 356
8.4 小結 358
第9章 訪問網路數據和服務 359
9.1 HTTP協定簡介 359
9.1.1 HTTP協定的主要特點 359
9.1.2 HTTP連線過程 360
9.1.3 HTTP訊息格式 360
9.2 執行緒管理 363
9.2.1 匿名Thread 363
9.2.2 java.util.concurrent框架 364
9.2.3 AsyncTask 372
9.3 網路編程接口 377
9.3.1 HttpClient API介紹 377
9.3.2 GET方法的使用和限制 381
9.3.3 使用POST方法上傳附屬檔案 385
9.3.4 從伺服器端下載圖片 392
9.4 設計C/S通信數據格式 394
9.4.1 對象序列化 397
9.4.2 使用XML傳輸對象 402
9.5 數據連線管理 409
9.6 小結 413
第10章 高級通信技術 414
10.1 電話 414
10.1.1 電話呼叫 414
10.1.2 監聽電話狀態 416
10.1.3 查詢電話屬性 420
10.1.4 讀取通話記錄 420
10.2 短訊息 424
10.2.1 傳送簡訊 424
10.2.2 接收短訊息 426
10.3 小結 428
第11章 訪問硬體層 429
11.1 訪問相機 429
11.1.1 創建Camera對象 429
11.1.2 設定Camera參數 430
11.1.3 預覽 431
11.1.4 拍攝照片 431
11.2 訪問位置服務 433
11.2.1 創建LocationManager 433
11.2.2 LocationProvider類 434
11.2.3 監聽位置更新 435
11.2.4 接近警報 436
11.3 訪問感測器 437
11.3.1 SensorManager類 437
11.3.2 監聽感測器事件 438
11.3.3 方向感測器套用——指南針 439
11.3.4 模擬感測器 442
11.4 小結 445
附錄A 如何導入原始碼 446
附錄B Resin安裝與Servlet部署 448
參考文獻 452

相關詞條

熱門詞條

聯絡我們