第1章 Symbian OS概述 1
1.1 为什么要开发智能手机 1
1.2 为什么要使用Symbian 3
1.3 Symbian OS的历史 5
1.4 Symbian OS的界面 8
1.5 为什么选择Symbian C++ 9
1.6 Symbian移动应用的发展前景 11
本章小结 12
思考题 13
第2章 Symbian开发入门 14
2.1 Symbian开发环境 14
2.1.1 开发Symbian应用前的准备 14
2.1.2 Symbian开发环境的搭建方法和注意事项 18
2.1.3 初识Symbian开发环境 26
2.2 第一个应用程序——HelloWorld 30
2.2.1 HelloWorld的创建 30
2.2.2 HelloWorld的改进 34
2.3 Symbian应用程序的调试 40
2.3.1 模拟器调试 40
2.3.2 真机调试 41
2.4 Symbian应用程序的签名 44
2.4.1 自签名 44
2.4.2 开发者证书签名 45
2.5 Symbian应用程序的发布和部署 46
本章小结 47
思考题 47
第3章 Symbian工程的框架分析 49
3.1 Symbian工程的结构 49
3.1.1 Symbian C++应用程序类型 49
3.1.2 GUI应用程序框架 50
3.1.3 Symbian工程的目录结构 54
3.2 工程文件 56
3.2.1 bld.inf文件 56
3.2.2 mmp文件 58
3.3 资源文件 64
3.3.1 资源文件概述 64
3.3.2 界面资源文件 64
3.3.3 注册表资源文件 72
3.4 图标文件 76
3.4.1 BMP文件 76
3.4.2 SVG文件 77
3.5 打包配置文件 78
3.5.1 打包文件概述 78
3.5.2 打包文件的格式 78
3.6 SRC文件 84
3.6.1 SRC结构概述 84
3.6.2 SRC结构详解 86
3.7 应用程序的编译系统 92
3.7.1 Symbian Build System v1 93
3.7.2 Symbian Build System v2 95
3.8 安装文件 96
3.8.1 SA Package的安装文件 96
3.8.2 PA Package的安装文件 97
3.9 应用程序的启动分析 98
3.9.1 应用程序的启动流程 98
3.10 非GUI类型应用程序 100
3.10.1 DLL/Lib类型应用程序 100
3.10.2 Console/Services类型应用程序 102
本章小结 104
思考题 104
第4章 Symbian OS中的类 106
4.1 Symbian OS特性 106
4.1.1 Symbian OS中的类 106
4.1.2 存管理机制 106
4.1.3 描述符 107
4.1.4 动态数组 107
4.1.5 活动对象 107
4.2 基本数据类型 108
4.3 T、C、R、M类 109
4.3.1 T类 109
4.3.2 C类 110
4.3.3 R类 112
4.3.4 M类 113
4.4 静态类 116
4.5 Symbian C++类的设计原则 119
4.6 Symbian C++编码规范 121
本章小结 123
思考题 124
第5章 描述符和动态数组 126
5.1 描述符 126
5.1.1 抽象描述符 127
5.1.2 文字类描述符 130
5.1.3 派生类描述符 130
5.1.4 各个描述符类间的关系 135
5.2 动态数组 137
5.2.1 CArray动态数组 138
5.2.2 RArray和RPointerArray动态数组 139
本章小结 140
思考题 141
第6章 活动对象 142
6.1 操作系统基础 142
6.2 活动对象简介 143
6.3 活动对象工作原理 146
6.4 活动对象的应用 149
本章小结 152
思考题 152
第7章 Symbian资源管理 154
7.1 内存管理 154
7.1.1 Symbian中的存储资源 154
7.1.2 对象的生命周期 158
7.1.3 内存错误 161
7.2 异常与错误的处理策略 169
7.2.1 异常与错误的概念 169
7.2.2 标准C++中的异常处理策略 171
7.2.3 异常处理函数Leave-TRAP 176
7.2.4 清理栈 182
7.2.5 二阶段构造的应用 187
7.2.6 断言机制 193
7.2.7 Panic机制 196
本章小结 199
思考题 199
第8章 Symbian平台体系结构 202
8.1 Symbian平台架构 202
8.2 客户机与服务器模型 204
8.2.1 客户机/服务器模型原理 204
8.2.2 Symbian客户端服务器类分析 207
8.2.3 Symbian客户端服务器间通信 210
本章小结 217
思考题 218
第9章 Symbian的平台安全性 219
9.1 Symbian平台的安全机制概述 219
9.2 Symbian的安全模型 222
9.2.1 Symbian的信任模型 222
9.2.2 Symbian的能力模型 224
9.2.3 Symbian的数据安全模型 229
9.3 Symbian的证书认证原理 230
本章小结 232
思考题 233
第10章 Symbian UI设计 234
10.1 Symbian UI系统简介 234
10.2 手机应用的UI设计原则 237
10.3 UI控件 239
10.3.1 标签 239
10.3.2 编辑框 245
10.3.3 列表框 249
10.3.4 对话框 251
10.3.5 菜单 258
10.4 事件处理 258
10.4.1 按键事件 259
10.4.2 触摸屏事件 262
10.4.3 传感器事件 264
10.5 视图 264
10.5.1 视图的构建 264
10.5.2 视图的使用 266
10.6 自定义控件 269
本章小结 271
思考题 272
第11章 Symbian应用程序架构 273
11.1 Symbian应用程序架构基础 273
11.2 基于控件的应用程序架构 277
11.3 基于对话框的应用程序架构 278
11.4 基于视图的应用程序架构 279
11.5 MVC模式 282
本章小结 284
思考题 285
第12章 Symbian文件管理 286
12.1 文件系统 286
12.2 文件服务器 287
12.2.1 文件服务器类RFs 287
12.2.2 文件类RFile 291
12.3 流 294
12.4 存储 296
本章小结 301
思考题 301
第13章 Symbian通信应用开发 303
13.1 Symbian通信框架简介 303
13.1.1 传统的Symbian通信系统的架构 303
13.1.2 Symbian^3以及Symbian^4的通信系统的架构 304
13.2 Symbian网络通信 305
13.2.1 Socket编程 305
13.2.2 HTTP编程 316
13.3 Symbian Message传送 323
13.3.1 Symbian的消息框架 323
13.3.2 短信SMS 326
13.3.3 彩信MMS 331
13.4 Symbian通话 338
13.4.1 语音通话 339
13.4.2 视频通话 340
本章小结 341
思考题 341
第14章 Symbian多媒体应用开发 342
14.1 Symbian多媒体应用架构 342
14.1.1 移动多媒体应用的现状 342
14.1.2 Symbian^1以及之前的多媒体架构简介 343
14.1.3 Symbian^3以及之后版本对多媒体架构的改进 343
14.2 Symbian图形处理 344
14.2.1 图片的加载和使用 344
14.2.2 图片的拍摄 348
14.3 Symbian音频处理 349
14.3.1 音频的播放 350
14.3.2 音频的录制 354
14.4 Symbian视频处理 355
14.4.1 Symbian视频模块应用框架 355
14.4.2 视频的播放 356
14.4.3 视频的录制 359
14.5 Symbian流媒体处理 360
14.5.1 流媒体的概念 360
14.5.2 流媒体在Symbian中的应用 362
14.6 案例:移动流媒体系统 363
14.6.1 需求说明 363
14.6.2 系统架构 364
14.6.3 服务器端 365
14.6.4 Portal端 365
14.6.5 播放器 366
本章小结 366
思考题 367