內容簡介
《遨遊Symbian:手機套用開發入門與實踐》分為六個部分共22章,全面深入地講解了Symbian OS應用程式開發從起步到進階的知識。其中,第1~5章為第一部分,主要介紹了Symbian OS基礎知識、開發環境的搭建、應用程式模板和必需的C++語言基礎;第6~8章為第二部分,深入講解了Symbian OS開發基礎,包括變數類型、類、記憶體管理機制、描述符、緩衝、數組和檔案系統等;第9~16章為第三部分,全面而細緻地講解了Symbian OS的GUI開發技術和常用的GUI元素,包含一個“雙色棋”小遊戲實例;第17~20章為第四部分,這部分為Symbian OS進階知識,包括異步處理與活動對象機制、客戶/伺服器架構、圖形、動畫與音視頻等內容;第21章為第五部分,詳細講解了以套接字為基礎的Symbian OS通信套用,包括TCP、HTTP、藍牙、短訊息等;第22章為第六部分,介紹了可供獲取更多應用程式開發和其他相關資源的途徑,為讀者繼續深入學習提供幫助。
周密安排的章節布局和知識架構,充分貼合初學者認知規律;全面、細緻而深入的講解,使得《遨遊Symbian:手機套用開發入門與實踐》可以成為有志於學習Symbian OS應用程式開發的初學者的良師益友。《遨遊Symbian:手機套用開發入門與實踐》亦可作為高校和培訓機構嵌入式套用開發的教學參考用書。
圖書目錄
第一部分 起錨——初識Symbian
第1章 智慧型手機革命 3
1.1 Life on the go 3
1.2 何謂智慧型手機 3
1.3 為什麼使用智慧型手機 4
1.4 預見未來 5
第2章 什麼是Symbian 7
2.1 智慧型手機作業系統 7
2.2 Symbian簡介 9
2.2.1 追本溯源 9
2.2.2 Symbian OS 9
2.2.3 逐漸長大 12
2.3ui平台12
2.3.1 什麼是UI平台 12
2.3.2 幾種流行的UI平台 13
2.3.3 S60 3.1版智慧型手機簡介 14
第3章 千里之行,始於足下 17
3.1 造船——搭建開發環境 17
3.1.1 Perl環境搭建 17
3.1.2 JRE搭建 19
3.1.3 安裝SDK 20
3.1.4 Carbide.c++ 23
3.2 用模擬器運行實例 25
3.2.1 探索Emulator 26
3.2.2 運行實例 29
3.3 在目標設備上運行 32
3.3.1 .pkg檔案概述 32
3.3.2 生成.sisx檔案 33
3.3.3 在目標設備上安裝 33
3.4 On-device Debug 34
第4章 第一桶金 37
4.1 用模板創建控制台HelloWorld程式 37
4.1.1 新建控制台程式工程項目 37
4.1.2 運行HelloWorld控制台程式 38
4.2 代碼分析 39
4.2.1 .h檔案 39
4.2.2 探究e32def.h檔案 39
4.2.3 .cpp檔案 40
4.3 修改代碼並運行 43
第5章 C++是一切的基礎 44
5.1 類 44
5.1.1 類的構造、實例化與析構 44
5.1.2 繼承與虛函式 47
5.1.3 純虛類與接口 49
5.1.4 類型轉換 50
5.2 模板 52
第二部分 揚帆——Symbian基礎
第6章 跨越:從標準C++到Symbian C++ 59
6.1 基本類型 59
6.1.1 整型 59
6.1.2 字元型 62
6.1.3 浮點型 63
6.1.4 布爾型 63
6.1.5枚舉型64
6.1.6 空類型 64
6.1.7 類型轉換 65
6.2 Symbian C++中的類 66
6.2.1 類的分類 66
6.2.2 關於new 70
6.3 記憶體管理機制 71
6.3.1 清除棧——CleanupStack 71
6.3.2 再論類的構造——二階段構造 73
6.3.3 異常退出 76
6.3.4 棧和堆 79
6.4 命名約定 80
6.4.1 數據名 80
6.4.2 類名 81
6.4.3 函式名 81
6.4.4 宏名 82
6.4.5 間隔、分行和括弧 82
6.5 小結 82
第7章 到底哪裡不同 85
7.1 描述符 85
7.1.1 一個例子 85
7.1.2 從源頭開始 85
7.1.3 繼續探索 86
7.1.4 TBuf的繼承關係 87
7.1.5 尋根究底——TDESC類初探 87
7.1.6 順藤摸瓜——TDes類 90
7.1.7 TBuf的“叔伯”們——TPtr和RBuf 93
7.1.8 另一個分支 97
7.1.9 全能描述符——HBufC 99
7.1.10 千呼萬喚始出來——TPtrC類 101
7.1.11 深入剖析描述符 103
7.1.12 簡單小結 105
7.2 動態緩衝 105
7.2.1 動態緩衝家族 106
7.2.2 使用動態緩衝 106
7.3 數組 108
7.3.1 數組類家族 108
7.3.2 定長數組 108
7.3.3 描述符數組 110
7.3.4 動態數組 114
7.4 小結 124
第8章 檔案與檔案存儲 126
8.1 Symbian OS檔案管理概要 126
8.1.1 驅動器與檔案系統 126
8.1.2 命名與路徑表示 128
8.1.3 檔案訪問流程 130
8.2 Symbian檔案操作 132
8.2.1 RFile類 132
8.2.2 基本檔案操作 133
8.2.3 檔案讀寫 134
8.3 檔案目錄和驅動器操作 135
8.3.1 當前目錄 135
8.3.2 獲取驅動器和目錄信息 135
8.3.3 操作目錄 136
8.4 流 137
8.4.1 內部格式與外部格式 137
8.4.2 檔案輸出流與外化 137
8.4.3 檔案輸入流與內化 140
8.4.4 “”和“”的重載 142
8.4.5 RwriteStream和RReadStream的派生類 142
8.5 檔案存儲 143
8.5.1 為什麼需要“檔案存儲” 143
8.5.2 檔案存儲的類型 144
8.5.3 CDirectFileStore套用第一步 144
8.5.4 從流到流字典 145
8.5.5 從檔案存儲中讀取 147
8.5.6 CDirectFileStore小結 147
8.5.7 CPermanentFileStore與DBMS簡介 148
8.5.8 嵌入式存儲簡介 150
第三部分 好望角——Symbian GUI
第9章 Hello, My Beautiful World! 153
9.1 準備工作 153
9.2 跟蹤觀察 154
9.3 幾個有用的東西 157
第10章 原來如此複雜 161
10.1 追本溯源——組件描述檔案:bld.inf 162
10.2 項目定義檔案:.mmp 162
10.3 資源檔案:.rss 166
10.4 頭檔案與源檔案 171
10.5 .pkg檔案與.sisx檔案 172
10.6 GUI應用程式架構 174
10.6.1 基於控制項的傳統Symbian OS應用程式架構 175
10.6.2AVKON視圖切換架構 177
10.7 多視圖的HelloGUI 178
10.7.1 為每個視圖編寫資源 178
10.7.2 構造視圖 180
10.7.3 構造Container 185
第11章 控制項綜述 188
11.1 準備工作——搭建框架 188
11.2 實現“雙色棋”遊戲 192
11.2.1 框架、常量與棋盤繪製 193
11.2.2 實現Tile類 196
11.2.3 簡單控制項與複合控制項200
11.2.4 讓“雙色棋”動起來 201
11.2.5 完成 207
11.3 深入控制項 212
第12章 選單 214
12.1 靜態選單 214
12.1.1 點陣圖的簡單套用 215
12.1.2 層級選單 219
12.2 動態選單 220
12.2.1 幾個重要的選單類 221
12.2.2 動態選單的兩種觸發方式 224
第13章 對話框 226
13.1 通知對話框 226
13.1.1 Avkon層級下的通知對話框 226
13.1.2 自定義“通知”對話框 229
13.2 查詢對話框 233
13.2.1 CAknQueryDialog類及其派生類 234
13.2.2 訊息查詢與確認查詢 234
13.2.3 數據查詢 237
13.2.4 列表查詢 241
13.3 列表對話框 245
13.3.1 選擇列表對話框 245
13.3.2 可標記列表對話框 247
13.4 表單對話框 249
13.4.1 單頁表單 250
13.4.2 多頁表單 257
第14章 列表 263
14.1 列表容器 263
14.2 最簡單的列表 264
14.2.1 資源定義 265
14.2.2 構造與顯示 265
14.2.3 處理用戶互動 267
14.2.4 動態列表 269
14.3 改變列表的風格和布局 270
14.3.1 CAknColumnListBox和CeikFormattedCellListBox大家族 270
14.3.2 為列表設定圖示 272
14.3.3 豐富的列表樣式 273
14.4 不同用途的列表 274
14.4.1 多選列表 274
14.4.2 可標記列表 276
14.5 設定列表 278
14.5.1 設定列表實例 278
14.5.2 豐富的設定控制項 281
第15章 文本編輯器 287
15.1 無格式文本編輯器 287
15.1.1 無格式文本編輯器的實現 290
15.1.2 CEikEdwin類 293
15.1.3 編輯器事件 294
15.2 全局文本編輯器 296
15.2.1 設定字元屬性 297
15.2.2 套用字元設定 300
15.3 多格式文本編輯器 301
15.3.1 在多格式文本編輯器中套用字元設定 302
15.3.2 設定段落屬性 302
15.3.3 在多格式文本編輯器中套用段落屬性 304
第16章 狀態面板 307
16.1 狀態面板的使用 307
16.1.1 標題面板 308
16.1.2 上下文面板 309
16.1.3 導航面板 310
16.2 在“雙色棋”遊戲中使用狀態面板 314
第四部分 大洋深處——Symbian OS進階
第17章 枯燥抑或樂趣——活動對象與異步處理 319
17.1 異步處理機制 319
17.1.1 Symbian OS的異步服務機制 320
17.1.2 一個小例子 321
17.2 活動調度器 322
17.3 活動對象 324
17.3.1 CActive類 324
17.3.2 定時器實例 325
17.3.3 多任務處理與活動對象優先權 328
17.4 使用活動對象 330
17.4.1 控制台環境下的讀取 331
17.4.2 進度與等待通知對話框 334
第18章 客戶/伺服器架構 341
18.1 從一個例子說起 341
18.2 剖析客戶/伺服器架構 343
18.2.1 伺服器CServer2 344
18.2.2 伺服器會話CSession2 348
18.2.3 客戶端會話RSessionBase 351
18.3 形形色色的伺服器 352
第19章 漸入佳境——Symbian OS圖形和多媒體 354
19.1 繪圖基礎 354
19.1.1 CWindowGc、螢幕坐標 355
19.1.2 顏色 358
19.1.3 畫筆和畫刷 359
19.1.4 圖形設備和圖形上下文361
19.2 圖形和點陣圖繪製 362
19.2.1 繪製幾何圖形 362
19.2.2 點陣圖繪製 365
19.3 文字顯示與字型 368
19.3.1 圖形上下文與系統字型 368
19.3.2 文字的度量屬性與字型類 369
19.3.3 使用設備字型 371
19.3.4 文本樣式 373
19.3.5 自動換行示例 373
19.4 動畫 375
19.4.1 使用動畫DLL架構 375
19.4.2 用代碼實現動畫 377
19.4.3 雙緩衝技術 380
19.4.4 直接螢幕訪問 381
19.5 音頻和視頻 386
19.5.1 音調聲音的播放 386
19.5.2 音頻的播放與錄製 389
19.5.3 視頻的播放 394
19.5.4 視頻的錄製 396
第20章 休息一下,做個總結 402
第五部分 新大陸——豐富的Symbian套用
第21章 Symbian OS通信與訊息傳送 413
21.1 套接字 413
21.1.1 套接字基本概念 413
21.1.2 Symbian OS套接字與ESOCK 415
21.1.3 簡單的網路套接字套用實例 424
21.2 HTTP 426
21.2.1 會話、事務與HTTP頭 427
21.2.2 HTTPClientExample示例程式 428
21.3 藍牙 433
21.3.1 基本概念 434
21.3.2 服務發布與連線埠監聽435
21.3.3 搜尋設備 438
21.3.4 搜尋服務 441
21.3.5 藍牙套接字通信 444
21.4 訊息傳送 446
21.4.1 訊息架構API 446
21.4.2 傳送短訊息 447
21.4.3 監聽短訊息 450
第六部分 遠航——再見,Symbian
第22章 獲取更多資源 457
附錄 461
附錄1 Symbian OS全局錯誤碼(e32err.h) 461
附錄2 語言代碼 464
參考文獻 465