複製鏈接
請複製以下鏈接發送給好友

Symbian OS C++手機應用開發 (第3卷)

鎖定
《Symbian OS C++手機應用開發 (第3卷)》是2009年5月人民郵電出版社出版的圖書,作者是[美]Richard Harrison Mark Shackman。
中文名
Symbian OS C++手機應用開發 (第3卷)
作    者
[美]Richard Harrison Mark Shackman
出版時間
2009年5月
出版社
人民郵電出版社
頁    數
516 頁
ISBN
9787115204417
定    價
69 元
開    本
16 開
裝    幀
平裝

Symbian OS C++手機應用開發 (第3卷)內容簡介

本書深入介紹了Symbian操作系統C++手機開發的各方面知識,吸收了Symbian公司工程師的豐富經驗,為使用Symbian操作系統v9.0及其以上版本的手機編寫C++應用程序提供了完整的基礎知識體系。本書在前兩卷的基礎上,對Symbian操作系統v8.0以上版本的新特性進行了有效的補充,並全面介紹了平台安全和應用程序發佈、插件和可擴展性以及Symbian操作系統上的數據庫管理等方面的知識。
對於從事與Symbian操作系統相關工作的讀者來説,本書將引導你成為一名高效的Symbian操作系統的開發者,並且讓你對Symbian操作系統的基本原則有深刻的理解。對於期待使用Symbian技術開發移動解決方案的程序員或者管理人員,以及考慮使用Symbian操作系統技術從事相關活動的諮詢師和培訓師,本書也是一本寶貴的參考書。 [1] 

Symbian OS C++手機應用開發 (第3卷)圖書目錄

第 1章 起步 1
1.1 使用仿真器 1
1.1.1 啓動仿真器 1
1.1.2 GUI樣式 2
1.2 Hello World之文本版本 4
1.2.1 程序hellotext 5
1.2.2 項目規範文件 7
1.2.3 組件定義文件 8
1.2.4 從命令行生成 8
1.2.5 使用多個SDK 10
1.2.6 在Carbide.c++ IDE中生成 10
1.3 小結 10
第 2章 Symbian操作系統概述 12
2.1 Symbian操作系統基礎 12
2.1.1 關於內核 13
2.1.2 線程和進程模型 16
2.1.3 用户內存及內存管理 17
2.1.4 Symbian操作系統服務器 17
2.1.5 Symbian操作系統進程間通信 18
2.1.6 電源管理 18
2.1.7 定時器 19
2.1.8 可執行程序和共享庫 19
2.1.9 可寫靜態數據的優化 20
2.1.10 文件和文件系統 20
2.1.11 平台安全 21
2.2 框架基礎 21
2.2.1 Symbian操作系統C++ 21
2.2.2 併發和活動對象 21
2.2.3 Symbian操作系統C++異常處理 24
2.2.4 Symbian操作系統C++命名規則 25
2.3 本書覆蓋的API 26
2.4 小結 27
第3章 Symbian操作系統C++ 28
3.1 基本數據類型 28
3.2 命名約定 29
3.2.1 類名 29
3.2.2 數據名 30
3.2.3 函數名 30
3.2.4 宏名 31
3.2.5 間隔(Indentation)、分行(Line Breaks)和括號(Bracketing) 31
3.3 函數 33
3.4 API 34
3.4.1 函數類型 35
3.4.2 DLL和其他API元素 35
3.4.3 導出函數 36
3.4.4 虛函數和API 36
3.5 模板 37
3.5.1 瘦模板模式 37
3.5.2 模板中的數字 38
3.6 類型轉換 38
3.7 類 38
3.7.1 接口 39
3.7.2 不良做法 39
3.8 設計模式 40
3.9 小結 40
第4章 對象——內存管理、清理和錯誤處理 42
4.1 對象的創建與銷燬 42
4.1.1 堆(動態對象) 43
4.1.2 程序棧(自動對象) 44
4.2 Symbian操作系統中的類的分類 45
4.2.1 T類和C類 45
4.2.2 R類 46
4.2.3 M類 47
4.3 錯誤處理 48
4.3.1 框架能處理的錯誤類型 48
4.3.2 嚴重錯誤 49
4.3.3 異常退出與捕獲機制 50
4.4 清理棧 51
4.4.1 使用清理棧 52
4.4.2 不必要時不要使用清理棧 53
4.4.3 如果CleanupStack::PushL()失敗怎麼辦 54
4.4.4 CBase和清理棧 54
4.4.5 清理棧上的R類 54
4.5 兩階段構造 55
4.5.1 分離安全構造和不安全構造 55
4.5.2 在NewL()和NewLC()中封裝ConstructL() 57
4.6 小結 58
第5章 描述符 59
5.1 概述 59
5.2 描述符內部結構 61
5.3 文字 63
5.4 棧描述符 63
5.5 指針描述符 64
5.5.1 TPtrC描述符 65
5.5.2 類型2 TPtr 描述符 65
5.5.3 類型4 TPtr描述符 66
5.5.4 使用TPtr::Set() 66
5.6 堆描述符 67
5.6.1 HBuf描述符 67
5.6.2 RBuf描述符 69
5.7 窄、寬、中性的描述符 73
5.8 描述符和二進制數據 74
5.9 描述符函數 75
5.9.1 描述符作為參數 75
5.9.2 從函數中返回描述符 78
5.10 描述符的一些操作 83
5.10.1 描述符和文本控制枱 83
5.10.2 轉換描述符到數字 84
5.10.3 轉換數字到描述符 84
5.10.4 外部化和內部化描述符 84
5.10.5 把二進制數據放到_LIT 85
5.10.6 描述符和字符串的轉換 85
5.11 描述符的正確使用 88
5.11.1 不要聲明TDesC或者Tdes變量 88
5.11.2 以引用傳遞TDesC和TDes 88
5.11.3 聲明TDesC時不要忽略了const 89
5.11.4 運行時不要設置緩衝描述符的大小 89
5.11.5 不要將大的棧描述符放置在棧上 89
5.11.6 不要在堆上分配大的棧描述符 90
5.11.7 警惕TPtr:: =()(操作符) 90
5.11.8 警惕TPtr和C++傳統不一致處 90
5.11.9 正確使用HBufC::Des() 91
5.11.10 從描述符創建HBufC時使用Alloc() 91
5.11.11 警惕HBufC::ReAllocL()和HBufC::ReAlloc() 91
5.11.12 格式化時注意%s和%S的區別 93
5.12 操控描述符 95
5.12.1 摺疊比較 95
5.12.2 校對比較 95
5.12.3 基本函數 96
5.12.4 操作數據 96
5.12.5 子字符串函數 96
5.12.6 格式化 96
5.12.7 TDesC函數 97
5.12.8 TDes函數 97
5.12.9 HBufC函數 99
5.12.10 RBuf函數 99
5.12.11 TBuf函數 100
5.12.12 TBufC函數 100
5.12.13 TPtr函數 100
5.12.14 TPtrC函數 100
5.13 小結 101
第6章 活動對象 102
6.1 異步服務 102
6.1.1 初始化階段 103
6.1.2 等待階段1 104
6.1.3 鍵盤事件調度階段 104
6.1.4 等待階段2 105
6.1.5 定時器事件調度階段 105
6.1.6 等待階段3 105
6.2 多任務處理和搶佔 105
6.3 更深入地研究活動對象 106
6.3.1 “Set hello”菜單項 107
6.3.2 “Start flashing”菜單項 111
6.4 工作方式 112
6.5 活動對象優先級 115
6.6 取消活動對象 118
6.6.1 處理一個不能運行的請求 119
6.6.2 正常處理後完成請求 119
6.6.3 取消請求發生較早 120
6.6.4 取消請求發生較晚 121
6.6.5 服務提供者異常終止時取消請求 121
6.6.6 異步服務器資源耗盡時取消請求 121
6.7 啓動和終止調度器 122
6.8 理解遊離信號 122
6.8.1 忘記設置對象為激活的 122
6.8.2 忘記設置請求為掛起 123
6.8.3 第 二個請求 123
6.8.4 完成請求兩次 123
6.8.5 以KRequestPending完成請求 124
6.8.6 設置已完成的請求的狀態為KRequestPending 124
6.8.7 使用RThread::RequestSignal()和活動對象框架 125
6.8.8 使用活動對象並調用User::WaitForRequest() 125
6.8.9 將未完成活動對象從隊列中移出 125
6.8.10 做出異步請求後調用異常退出函數 125
6.9 其他常見活動對象錯誤 126
6.9.1 直接調用DoCancel() 126
6.9.2 從析構函數調用Cancel()失敗 126
6.9.3 調用Cancel()前檢查IsActive() 126
6.9.4 沒有正確實現DoCancel() 127
6.9.5 忽略錯誤處理 127
6.9.6 在RunL()中使用宏TRAP 127
6.9.7 在自我析構的RunL()中調用異常退出代碼 127
6.9.8 用operator=()賦值TRequestStatus 127
6.9.9 異常退出異步函數 128
6.9.10 從異步函數返回錯誤值 128
6.10 狀態機 128
6.11 長時間運行任務和活動對象 131
6.12 小結 135
第7章 文件和文件系統 136
7.1 基於文件的應用程序 136
7.2 驅動盤和文件類型 137
7.3 文件系統服務 137
7.3.1 文件規範 137
7.3.2 操作文件名 138
7.3.3 文件服務器會話 138
7.3.4 140
7.3.5 文件 141
7.3.6 共享文件句柄 142
7.3.7 RFileBuf 143
7.3.8 結論 144
7.4 流 145
7.4.1 基類 145
7.4.2 使用操作符<<和>> 146
7.4.3 內部化和外部化 146
7.4.4 寫入和讀取流函數 148
7.5 存儲 150
7.5.1 創建持久性存儲 152
7.5.2 讀取持久性存儲 153
7.5.3 永久性存儲 154
7.5.4 嵌套存儲 155
7.5.5 存儲和應用程序架構 157
7.6 詞典存儲和ini文件 159
7.7 小結 160
第8章 進程間通信機制 162
8.1 概述 162
8.1.1 客户端—服務器會話IPC 162
8.1.2 發佈和訂閲IPC 163
8.1.3 消息隊列IPC 165
8.2 客户端—服務器IPC 166
8.2.1 建立會話 167
8.2.2 啓動服務器 167
8.2.3 使用會話 168
8.2.4 清理 170
8.2.5 會話和子會話 170
8.3 發佈和訂閲IPC 171
8.3.1 擁有屬性 171
8.3.2 使用屬性 172
8.3.3 決定性 173
8.4 消息隊列IPC 173
8.4.1 創建消息隊列 174
8.4.2 使用消息隊列 174
8.5 應該使用哪種IPC機制 175
8.5.1 客户端—服務器 175
8.5.2 發佈和訂閲 175
8.5.3 消息隊列 176
8.6 小結 176
第9章 平台安全和應用程序發佈 178
9.1 釋放應用程序 178
9.2 平台安全的工作方式 178
9.2.1 能力 179
9.2.2 通過Symbian簽名授權 179
9.2.3 不帶Symbian簽名授權 179
9.2.4 一次性授予 180
9.3 如何支持平台安全 180
9.3.1 項目定義文件 180
9.3.2 安全標識 180
9.3.3 數據鎖定 181
9.4 準備發佈應用程序 181
9.4.1 生成應用程序 181
9.4.2 產生打包文件 182
9.4.3 生成**終的SIS文件 183
9.5 Symbian簽名概述 184
9.5.1 測試標準 184
9.5.2 簽名或者不簽名 185
9.5.3 開發者證書 186
9.5.4 簽名流程 187
9.6 安裝SIS文件 188
9.7 能力列表 188
9.8 小結 189
第 10章 調試和仿真器 190
10.1 使用仿真器 190
10.1.1 磁盤映射 191
10.1.2 仿真器按鍵 192
10.1.3 通信 192
10.2 仿真器調試 194
10.2.1 Carbide.c++ IDE 194
10.2.2 CodeWarrior IDE 195
10.2.3 仿真器調試鍵 196
10.2.4 仿真器設置 197
10.2.5 仿真器測試證書 198
10.2.6 儘可能發揮仿真器日誌文件的作用 198
10.2.7 日誌 200
10.2.8 使用eshell 201
10.2.9 使用D_EXC工具 202
10.2.10 內存測試 203
10.3 聯機調試 205
10.3.1 聯機調試代理 205
10.3.2 仿真器調試與聯機調試 205
10.4 其他工具 206
10.5 小結 207
第 11章 應用程序框架 208
11.1 Symbian 操作系統應用程序框架 208
11.2 S60和UIQ平台應用程序框架 209
11.3 圖形化的“Hello World!”程序 210
11.3.1 類結構 210
11.3.2 產生示例代碼 211
11.3.3 項目描述文件 211
11.3.4 應用程序入口 213
11.3.5 Application類 213
11.3.6 Document類 214
11.3.7 應用程序UI 215
11.3.8 應用程序視圖 217
11.3.9 資源文件 219
11.3.10 註冊文件 220
11.4 小結 221
第 12章 簡單圖形應用程序 222
12.1 在S60上實現遊戲 223
12.1.1 應用程序類 223
12.1.2 文檔類 224
12.1.3 應用程序UI類 224
12.1.4 控制器類 227
12.1.5 引擎類 230
12.1.6 視圖類 231
12.1.7 命令菜單 237
12.2 UIQ 3的不同 239
12.2.1 應用程序UI類 239
12.2.2 視圖類 240
12.2.3 命令 243
12.2.4 持久性 246
12.3 小結 247
第 13章 資源文件 248
13.1 為什麼需要針對Symbian的資源編譯器 248
13.2 資源文件語法 248
13.2.1 STRUCT語句 249
13.2.2 RESOURCE語句 250
13.2.3 ENUM語句 251
13.2.4 NAME語句 251
13.3 位圖和圖標 251
13.3.1 轉換位圖 253
13.3.2 bmconv工具 254
13.3.3 可分級的向量圖形 254
13.4 更新資源文件 255
13.5 應用程序註冊文件 255
13.6 可本地化的字符串 256
13.7 多資源文件 258
13.8 編譯資源文件 259
13.9 已編譯資源文件的內容 260
13.10 讀取資源文件 262
13.10.1 通過CCoeEnv 262
13.10.2 通過BAFI 262
13.11 小結 263
第 14章 視圖和視圖架構 264
14.1 視圖架構 264
14.1.1 UIQ視圖 265
14.1.2 S60視圖 266
14.1.3 移植性 266
14.1.4 應用程序UI的角色 266
14.1.5 默認視圖 267
14.1.6 觀察器 268
14.2 MCoeView接口 268
14.2.1 視圖ID 268
14.2.2 構造 269
14.2.3 激活和禁用 269
14.3 實例應用程序的介紹 269
14.3.1 歷史視圖 270
14.3.2 額外的S60考慮 275
14.4 創建和管理視圖 275
14.4.1 構造和註冊 275
14.4.2 激活和禁用 276
14.5 實現MCoeView接口 277
14.5.1 視圖ID 277
14.5.2 激活視圖 277
14.5.3 禁用視圖 279
14.5.4 構造視圖 279
14.5.5 歷史視圖內容 280
14.6 命令菜單 282
14.6.1 對UIQ做出的改變 282
14.6.2 對S60作出的改變 284
14.7 小結 287
第 15章 控件 288
15.1 什麼是控件 288
15.2 控件類型 289
15.2.1 簡單控件 289
15.2.2 複合控件 290
15.3 控件佈局 292
15.4 處理鍵和觸筆事件 294
15.4.1 鍵事件 294
15.4.2 焦點 298
15.4.3 觸筆事件 299
15.5 觀察控件 301
15.6 繪製控件 302
15.7 備份窗口 307
15.8 後台備份窗口 308
15.9 變灰控件和不可見控件 309
15.10 小結 310
第 16章 對話框 311
16.1 對話框 311
16.2 簡單對話框 312
16.2.1 簡單單頁對話框 312
16.2.2 標準對話框 313
16.3 複雜對話框 314
16.3.1 焦點更改 314
16.3.2 狀態更改 315
16.4 單頁對話框 315
16.5 多頁對話框 316
16.5.1 UIQ變形 316
16.5.2 S60變形 318
16.6 對話框API 321
16.6.1 資源規範 321
16.6.2 框架函數 322
16.7 對話框的常用控件 324
16.8 對話框中的定製控件 325
16.9 小結 327
第 17章 圖形顯示 328
17.1 繪圖基礎 328
17.1.1 控件 329
17.1.2 獲取圖形上下文 329
17.1.3 繪製矩形 330
17.1.4 繪製文本 330
17.1.5 垂直對齊 331
17.2 CGraphicsContext API 331
17.2.1 座標類 332
17.2.2 區域相關類 332
17.2.3 設置圖形上下文 333
17.2.4 繪製函數 333
17.3 繪製和重繪 335
17.3.1 模型、視圖和控制器模式 336
17.3.2 Draw()約定 337
17.4 繪製控件 339
17.4.1 繪製到視圖的一部分 339
17.4.2 DrawNow()模式 341
17.5 屏幕共享 342
17.5.1 CONE 342
17.5.2 擁有窗口和寄宿控件 343
17.5.3 複合控件 345
17.5.4 繪製的更多知識 346
17.6 CCoeControl的繪製支持 350
17.6.1 控件環境 350
17.6.2 擁有窗口和寄宿控件 351
17.6.3 組件控件 352
17.6.4 控件位置與大小 352
17.6.5 繪製函數 353
17.7 特殊效果 354
17.7.1 動畫 354
17.7.2 Uikon調試鍵 355
17.7.3 控件上下文 356
17.7.4 滾動 356
17.7.5 透明窗口 357
17.8 窗口服務器功能 357
17.8.1 無閃爍重繪 357
17.8.2 重繪存儲 358
17.9 與設備和尺寸無關的圖形 359
17.9.1 開發人員對於設備無關代碼的探索 360
17.9.2 應用程序中與尺寸和目標無關的繪製 360
17.9.3 與設備無關的繪製 362
17.9.4 深入介紹GDI 370
17.10 小結 376
第 18章 圖形交互 378
18.1 按鍵、觸筆和命令的基礎知識 378
18.2 對於交互的用户需求 379
18.3 一些基本抽象 380
18.3.1 程序員需求 380
18.3.2 複合控件 381
18.3.3 鍵分佈和焦點 381
18.3.4 變灰和可見性 381
18.3.5 驗證 382
18.3.6 控件觀察器 382
18.3.7 容器 384
18.4 處理鍵事件 384
18.4.1 控件棧 385
18.4.2 焦點 386
18.4.3 文本光標 387
18.5 處理觸筆事件 387
18.5.1 交互範例 387
18.5.2 選取相關性 387
18.5.3 抓取觸筆按下控件 388
18.5.4 捕獲觸筆 388
18.5.5 獲得高分辨率的觸筆事件 388
18.5.6 如何處理觸筆事件 389
18.6 窗口服務器和控件環境API的更多知識 390
18.6.1 應用程序與窗口服務器的通信 390
18.6.2 窗口類型 391
18.7 小結 393
第 19章 插件和擴展性 395
19.1 系統服務 395
19.1.1 通信和消息服務 395
19.1.2 多媒體服務 395
19.1.3 RDBMS 396
19.1.4 任務調度器 396
19.1.5 EZLIB 396
19.1.6 XML框架 396
19.1.7 系統服務的更多參考 397
19.2 什麼是插件 397
19.2.1 即時消息發送客户端應用程序如何工作 398
19.2.2 多態性 398
19.2.3 打包二進制 399
19.2.4 加載多態DLL 400
19.2.5 管理插件DLL 401
19.3 ECOM庫 402
19.3.1 使用ECOM插件 402
19.3.2 設計插件接口類 403
19.3.3 編寫ECOM插件 403
19.3.4 集成到一起 406
19.3.5 REComSession::FinalClose() 407
19.3.6 ECOM的使用 408
19.3.7 參考文獻 408
19.4 Symbian操作系統中的插件 408
19.4.1 消息MTM 408
19.4.2 通信擴展模塊 408
19.4.3 ETel擴展模塊 409
19.4.4 ESOCK協議模塊 409
19.5 小結 409
第 20章 通信和消息發送服務 410
20.1 連三子游戲中的通信 410
20.2 控制器和傳輸間的通信 411
20.3 串口通信 413
20.3.1 打開串口連接 414
20.3.2 通過串口連接交換數據 415
20.3.3 紅外上的串口通信 416
20.3.4 藍牙上的串口通信 417
20.4 基於套接字的通信 417
20.4.1 套接字服務器 418
20.4.2 基於套接字的紅外連接 418
20.4.3 基於套接字的藍牙連接 420
20.4.4 使用藍牙連接兩個手機 421
20.5 消息發送 429
20.5.1 消息服務器 429
20.5.2 消息樹 430
20.5.3 使用Send As服務器發送消息 430
20.5.4 接收消息 431
20.5.5 email 432
20.5.6 短消息服務(SMS) 433
20.5.7 多媒體消息服務(MMS) 434
20.6 安全性 438
20.6.1 數據驗證 439
20.6.2 平台安全 440
20.7 小結 440
第 21章 多媒體服務 441
21.1 多媒體框架 441
21.1.1 對媒體格式的支持 442
21.1.2 API概述 442
21.1.3 音頻剪輯播放 445
21.1.4 通知音頻資源的可用性 447
21.1.5 音頻剪輯錄制 448
21.1.6 音頻流化 452
21.1.7 音調播放 455
21.1.8 視頻播放 456
21.1.9 視頻錄製 457
21.1.10 使用DevSound 458
21.1.11 編寫控制器插件 460
21.2 圖像轉換庫 462
21.2.1 API概述 462
21.2.2 圖像解碼 463
21.2.3 圖像編碼 467
21.2.4 圖像變換 472
21.3 照相機API 472
21.3.1 選擇相機 473
21.3.2 配置照相機 473
21.3.3 顯示取景器 474
21.3.4 捕獲靜態圖像 475
21.4 調諧器API 477
21.4.1 調諧 477
21.4.2 調諧器音頻播放 480
21.4.3 調諧器音頻錄製 480
21.4.4 使用RDS數據 481
21.5 小結 482
第 22章 SQL RDBMS介紹 483
22.1 RDBMS概述 483
22.2 SQL基礎 484
22.2.1 基本SQL術語 484
22.2.2 更多的SQL功能 485
22.2.3 使用多數據庫 486
22.2.4 存儲過程、事件和觸發器 487
22.2.5 SQL語法 488
22.3 Symbian SQL服務器組件架構 492
22.3.1 客户端API 493
22.3.2 從語句中返回數據庫 500
22.3.3 平台安全 506
22.4 Symbian操作系統錯誤碼 508
22.5 小結 509
附錄A 開發人員資源 510
術語表 514
參考文獻 516
參考資料