书籍详情
Series 60应用程序开发
作者:(美)Leigh Edwards,(美)Richard Barker,EMCC软件公司著;周良忠译
出版社:人民邮电出版社
出版时间:2005-07-01
ISBN:9787115134639
定价:¥75.00
购买这本书可以去
内容简介
Series 60是在Symbian OS下进行智能手机应用程序开发的主要平台,它拥有广大的用户群。本书是诺基亚与EMCC软件公司共同推出的一本Series 60开发的权威参考书,为Symbian OS下的C++编程提供全面指导。 全书共13章,循序渐进地讲解Symbian OS基础、Series 60 GUI应用程序设计基础、应用程序各种UI控件、移动通信和多媒体开发知识,以及应用程序的调试与测试等。全书包含了60个实例应用程序,每个都有完整的C++代码和安装脚本,涵盖了Series 60开发的方方面面。 本书适用于所有Symbian OS手机应用开发人员:初学者通过本书可以打下牢固基础,掌握必须的技能;有经验的开发人员则可以通过本书获得丰富的、有价值的参考资料。
作者简介
译者:周良忠畅销图书《C++实践之路》的译者周良忠,1970年生。本科毕业于武汉化工学院计算机应用专业。1995毕业于中国科学院武汉岩土力学研究所,获硕士学位,1997年获得博士学位。1998年创办云巅工作室(http://www.cloudcrown.com),为个人、中小企业提供专业软件定做服务。近几年开发了多款广受欢迎的共享软件。精通C++、C#、Java、Perl等开发语言。2001年开始从事计算机科技图书的创作和翻译工作,最新翻译力作有《C#PrimerPlus中文版》、《C++实践之路》等。SymbianOS软件开发开发:应用C++开发智能手机应用程序入门>>更多作品
目录
第1章 起步 1
1.1 Series 60 C++软件开发包(SDK) 2
1.2 开发过程概述 3
1.3 Series 60模拟器 5
1.4 模拟器上的生成 7
1.4.1 从命令行生成 7
1.4.2 从IDE生成 8
1.5 运行模拟器 9
1.5.1 模拟器可执行文件位置 11
1.5.2 模拟器调试模式 11
1.5.3 从命令提示符运行模拟器 11
1.5.4 从Visual C++ IDE运行模拟器 12
1.5.5 从Borland C++ Builder 6和C++ BuilderX IDE运行模拟器 12
1.5.6 从CodeWarrior IDE运行模拟器 12
1.5.7 定位和运行应用程序 12
1.5.8 调试应用程序 13
1.5.9 使用IDE的进一步帮助 13
1.6 目标Series 60设备的生成 13
1.7 在目标设备上的部署 15
1.7.1 生成SIS安装文件 15
1.7.2 SIS文件安装 15
1.7.3 在目标设备上运行 16
1.8 小结 16
第2章 开发参考 17
2.1 SDK版本和选择 18
2.1.1 Series 60 1.x SDK 18
2.1.2 Series 60 2.x SDK 19
2.2 HelloWorld GUI应用程序 20
2.2.1 HelloWorld bld.inf 20
2.2.2 HelloWorld.mmp 20
2.2.3 生成和运行 24
2.2.4 HelloWorld GUI的可执行文件和运行库文件 25
2.2.5 HelloWorld项目文件和位置 26
2.2.6 HelloWorld GUI源文件 27
2.2.7 资源编译器 28
2.2.8 应用程序和资源的本地化 29
2.2.9 AIF文件 30
2.3 控制台应用程序 32
2.3.1 Hello World控制台应用程序 32
2.3.2 生成和运行控制台应用程序 33
2.3.3 HelloWorldCon.mmp 34
2.3.4 HelloWorldCon模拟器可执行文件 34
2.3.5 HelloWorldCon目标可执行文件 34
2.4 Symbian安装系统 35
2.4.1 SIS文件生成工具 36
2.4.2 .pkg文件的格式 37
2.4.3 生成SIS文件 41
2.5 额外的开发工具 41
2.5.1 多位图和位图转换器Bmconv 41
2.5.2 Series 60应用程序向导 43
2.5.3 其他SDK工具 44
2.5.4 更多的工具和实用程序 45
2.6 Series 60 SDK和IDE的安装技巧 46
2.6.1 Microsoft Visual Studio .NET 46
2.6.2 模拟器配置 46
2.6.3 模拟器中的应用程序严重错误 48
2.7 高级应用程序部署和生成指南 48
2.7.1 平台UID 48
2.7.2 设备标识UID 49
2.7.3 资源文件版本和压缩 50
2.7.4 针对ARM目标的生成 50
2.8 小结 52
第3章 Symbian OS基础 53
3.1 命名约定 54
3.1.1 T类 55
3.1.2 S类 55
3.1.3 C类 55
3.1.4 R类 56
3.1.5 M类 56
3.1.6 命名空间 57
3.2 基本类型 58
3.3 异常处理和资源管理 59
3.3.1 异常、异常退出、严重错误和捕获 60
3.3.2 异常退出问题和清除栈 63
3.3.3 两阶段构造 65
3.3.4 Symbian OS构造方法 69
3.3.5 清除栈的高级使用 69
3.4 描述符 70
3.4.1 层次结构 70
3.4.2 不可修改的API 72
3.4.3 可修改的API 73
3.4.4 文字 73
3.4.5 使用描述符 74
3.4.6 作为参数和返回类型的描述符 77
3.4.7 包描述符 79
3.5 集合类 80
3.5.1 RArray和RPointerArray类型 81
3.5.2 CArray类型 86
3.6 结合使用异步服务和活动对象 94
3.6.1 活动规划器 95
3.6.2 活动对象 96
3.6.3 实现活动对象 97
3.6.4 实例 98
3.6.5 常见的活动对象缺陷 106
3.7 文件、流和存储 107
3.7.1 文件 107
3.7.2 RFs API 108
3.7.3 RFile API 111
3.7.4 流 113
3.7.5 存储 118
3.8 客户/服务器架构 124
3.8.1 服务器会话 125
3.8.2 服务器会话和进程间通信 125
3.8.3 服务器综述 127
3.8.4 子会话 128
3.9 小结 129
第4章 应用程序设计 130
4.1 应用程序框架 131
4.2 应用程序架构 133
4.2.1 核心应用程序类 133
4.2.2 应用程序初始化 134
4.2.3 重要的AppUi方法 136
4.2.4 设计应用程序UI 137
4.2.5 基于控件的传统Symbian OS架构 138
4.2.6 基于对话框的架构 142
4.2.7 Avkon视图切换架构 144
4.2.8 选择适当的应用程序架构 149
4.2.9 文件处理 151
4.3 分离应用程序UI和引擎 152
4.4 ECom 156
4.4.1 ECom的概念性概述 157
4.4.2 ECom接口 158
4.4.3 ECom DLL 159
4.5 国际化 161
4.5.1 用于开发人员的一般指导原则 161
4.5.2 本地化的OS支持 163
4.6 良好的应用程序行为 164
4.6.1 采用怀疑的和批评的开发方法 164
4.6.2 处理Window服务器生成的事件 165
4.6.3 总是恰当地退出应用程序 165
4.6.4 在保存数据前检查磁盘空间 166
4.6.5 其他提示和技巧 166
4.7 小结 167
第5章 应用程序的UI组件 168
5.1 控件 169
5.1.1 控件和窗口 169
5.1.2 简单控件和复合控件 169
5.1.3 窗口的所有权 171
5.1.4 创建简单控件 172
5.1.5 创建复合控件 174
5.1.6 建立控件间的关系 177
5.2 皮肤 178
5.2.1 强制性支持皮肤的控件 178
5.2.2 选择性支持皮肤的控件 179
5.2.3 沿用皮肤的控件 179
5.2.4 不识别皮肤的控件 179
5.2.5 定义识别皮肤的控件 179
5.3 事件处理 180
5.3.1 按键事件 180
5.3.2 重绘事件 182
5.3.3 观察器 183
5.4 资源文件 184
5.4.1 资源文件的语法 184
5.4.2 资源文件的结构 186
5.5 菜单 191
5.5.1 子菜单 192
5.5.2 菜单基础 192
5.5.3 动态菜单 196
5.5.4 上下文敏感菜单 197
5.6 面板 199
5.6.1 状态面板 199
5.6.2 标题面板 203
5.6.3 上下文面板 206
5.6.4 导航面板 208
5.6.5 主面板 218
5.6.6 软键面板 218
5.7 小结 218
第6章 对话框 219
6.1 对话框的共性 219
6.2 标准对话框 220
6.2.1 创建简单对话框 220
6.2.2 多页对话框 225
6.2.3 为对话框定义菜单 227
6.2.4 在对话框中使用自定义控件 227
6.3 窗体 229
6.3.1 窗体行 230
6.3.2 窗体软键 230
6.3.3 在应用程序中创建窗体 232
6.4 通知 235
6.4.1 包装式通知 236
6.4.2 自定义通知 237
6.4.3 等待通知 239
6.4.4 进度通知 242
6.4.5 全局通知 246
6.5 查询 247
6.5.1 数据查询 248
6.5.2 列表查询 250
6.5.3 使用全局查询 252
6.6 列表对话框 254
6.7 小结 257
第7章 列表 258
7.1 列表基础 259
7.2 竖向列表 259
7.2.1 选择列表 260
7.2.2 菜单列表 260
7.2.3 可标记列表 261
7.2.4 多选列表 261
7.2.5 列表选项和字段 261
7.2.6 在列表中查找选项 262
7.3 使用竖向列表 262
7.3.1 基本列表 262
7.3.2 动态列表 268
7.3.3 可标记列表 270
7.3.4 弹出菜单列表 272
7.4 网格 275
7.4.1 月历网格 276
7.4.2 收藏夹网格 276
7.4.3 GMS网格 277
7.5 使用网格 277
7.5.1 网格基础 277
7.5.2 可标记网格 283
7.6 设置列表 284
7.7 使用设置列表 286
7.8 小结 296
第8章 编辑器 297
8.1 文本编辑器 298
8.1.1 尺寸和输入容量 300
8.1.2 过滤键盘输入 300
8.1.3 提供对附加字符的映射 301
8.1.4 属性 303
8.1.5 配置无格式文本编辑器 303
8.1.6 配置多格式文本编辑器 307
8.1.7 使用样式 313
8.2 数值编辑器 313
8.3 密码编辑器 317
8.4 多字段数值编辑器 318
8.4.1 IP地址编辑器 319
8.4.2 数字编辑器 319
8.4.3 范围编辑器 319
8.4.4 时间编辑器 319
8.4.5 日期编辑器 319
8.4.6 时间和日期编辑器 320
8.4.7 持续期编辑器 320
8.4.8 时间偏移量编辑器 320
8.4.9 使用MFNE 320
8.5 小结 321
第9章 通信基础知识 323
9.1 串行通信 324
9.2 套接字 329
9.2.1 Series 60的套接字 329
9.2.2 客户端和服务器 329
9.2.3 断开式和连接式套接字 330
9.2.4 连接式套接字 330
9.2.5 安全套接字 338
9.3 TCP/IP 342
9.3.1 IPv6 342
9.3.2 Series 60的TCP/IP编程 343
9.3.3 CommDB 343
9.3.4 多重连接 343
9.4 红外线 348
9.4.1 IrDA栈 348
9.4.2 Series 60设备上的红外线编程 349
9.5 蓝牙 351
9.5.1 蓝牙概述 351
9.5.2 蓝牙应用程序实例 353
9.5.3 服务发布 353
9.5.4 蓝牙安全 356
9.5.5 设备和服务的搜寻 357
9.5.6 蓝牙套接字通信 361
9.6 小结 362
第10章 高级通信技术 363
10.1 HTTP 364
10.2 WAP 372
10.2.1 WAP架构 373
10.2.2 Series 60实现 373
10.3 消息传送 377
10.3.1 消息传送的重要概念 378
10.3.2 关键消息类及数据类型 380
10.3.3 消息传送API 381
10.3.4 使用Client MTM API 382
10.3.5 使用Send-As API 392
10.3.6 使用CSendAppUi 396
10.3.7 监视到达的信息 403
10.4 通话 406
10.4.1 使用ETel API 406
10.4.2 起始工作 407
10.4.3 建立通话 408
10.4.4 接听电话 410
10.4.5 获取上次拨打的号码 412
10.5 小结 413
第11章 多媒体:图形和音频 414
11.1 Series 60图形架构概述 415
11.1.1 窗口服务器 415
11.1.2 字体位图服务器 417
11.1.3 窗口服务器与字体位图服务器 417
11.1.4 多媒体服务器 417
11.2 绘图基础 418
11.2.1 屏幕的坐标和几何学 420
11.2.2 图形设备和图形上下文 421
11.2.3 颜色和显示模式 422
11.2.4 画笔和画刷 424
11.2.5 窗口中的视图及其与CCoeControl的关系 424
11.3 字体和文本 425
11.3.1 文本和字体度量 426
11.3.2 核心字体类和函数 427
11.3.3 使用核心字体类枚举所有可用字体 427
11.3.4 文本效果 428
11.4 图形 429
11.4.1 矩形 430
11.4.2 椭圆 430
11.4.3 弧和扇形 430
11.4.4 多边形 431
11.5 位图 432
11.5.1 为应用程序生成位图 432
11.5.2 装载和绘制位图 434
11.5.3 位图遮罩 434
11.5.4 位图函数 435
11.6 动画 435
11.6.1 动画架构 436
11.6.2 离屏位图和双缓冲 438
11.6.3 客户端方式处理动画 439
11.7 直接屏幕访问 440
11.7.1 架构概述 441
11.7.2 直接屏幕访问的关键类 442
11.7.3 实现上的考虑 444
11.8 图像处理 445
11.8.1 图像转换 445
11.8.2 图像旋转 451
11.8.3 图像缩放 452
11.9 音频 453
11.9.1 录音 454
11.9.2 音频声音 457
11.9.3 音频数据 458
11.9.4 流化 459
11.10 小结 461
第12章 使用应用程序视图、引擎和关键系统API 462
12.1 使用标准应用程序视图 463
12.1.1 电话簿视图切换 464
12.1.2 日历视图切换 465
12.1.3 照相机视图切换 465
12.1.4 相册视图切换 466
12.1.5 个人资料视图切换 466
12.1.6 消息视图切换 466
12.1.7 不可切换的应用程序 466
12.2 应用程序引擎 467
12.2.1 日志引擎 468
12.2.2 照相机API 470
12.2.3 电话簿引擎 473
12.2.4 压缩商业卡和 vCard 478
12.2.5 日历引擎的访问 479
12.2.6 相册引擎 485
12.3 使用系统功能 487
12.3.1 硬件抽象层 487
12.3.2 系统代理 489
12.3.3 振动API支持 490
12.4 小结 491
第13章 测试和调试 492
13.1 质量保证 493
13.1.1 编码标准 493
13.1.2 防御性编程 494
13.2 测试 497
13.2.1 测试策略 498
13.2.2 测试工具和测试技术 500
13.2.3 在目标机和模拟器上的测试区别 506
13.2.4 测试装置 509
13.3 调试 513
13.3.1 在模拟器上调试应用程序 514
13.3.2 在目标机上调试应用程序 518
13.4 小结 521
附录 模拟嚣快捷键 522
术语表 525
参考文献 537
1.1 Series 60 C++软件开发包(SDK) 2
1.2 开发过程概述 3
1.3 Series 60模拟器 5
1.4 模拟器上的生成 7
1.4.1 从命令行生成 7
1.4.2 从IDE生成 8
1.5 运行模拟器 9
1.5.1 模拟器可执行文件位置 11
1.5.2 模拟器调试模式 11
1.5.3 从命令提示符运行模拟器 11
1.5.4 从Visual C++ IDE运行模拟器 12
1.5.5 从Borland C++ Builder 6和C++ BuilderX IDE运行模拟器 12
1.5.6 从CodeWarrior IDE运行模拟器 12
1.5.7 定位和运行应用程序 12
1.5.8 调试应用程序 13
1.5.9 使用IDE的进一步帮助 13
1.6 目标Series 60设备的生成 13
1.7 在目标设备上的部署 15
1.7.1 生成SIS安装文件 15
1.7.2 SIS文件安装 15
1.7.3 在目标设备上运行 16
1.8 小结 16
第2章 开发参考 17
2.1 SDK版本和选择 18
2.1.1 Series 60 1.x SDK 18
2.1.2 Series 60 2.x SDK 19
2.2 HelloWorld GUI应用程序 20
2.2.1 HelloWorld bld.inf 20
2.2.2 HelloWorld.mmp 20
2.2.3 生成和运行 24
2.2.4 HelloWorld GUI的可执行文件和运行库文件 25
2.2.5 HelloWorld项目文件和位置 26
2.2.6 HelloWorld GUI源文件 27
2.2.7 资源编译器 28
2.2.8 应用程序和资源的本地化 29
2.2.9 AIF文件 30
2.3 控制台应用程序 32
2.3.1 Hello World控制台应用程序 32
2.3.2 生成和运行控制台应用程序 33
2.3.3 HelloWorldCon.mmp 34
2.3.4 HelloWorldCon模拟器可执行文件 34
2.3.5 HelloWorldCon目标可执行文件 34
2.4 Symbian安装系统 35
2.4.1 SIS文件生成工具 36
2.4.2 .pkg文件的格式 37
2.4.3 生成SIS文件 41
2.5 额外的开发工具 41
2.5.1 多位图和位图转换器Bmconv 41
2.5.2 Series 60应用程序向导 43
2.5.3 其他SDK工具 44
2.5.4 更多的工具和实用程序 45
2.6 Series 60 SDK和IDE的安装技巧 46
2.6.1 Microsoft Visual Studio .NET 46
2.6.2 模拟器配置 46
2.6.3 模拟器中的应用程序严重错误 48
2.7 高级应用程序部署和生成指南 48
2.7.1 平台UID 48
2.7.2 设备标识UID 49
2.7.3 资源文件版本和压缩 50
2.7.4 针对ARM目标的生成 50
2.8 小结 52
第3章 Symbian OS基础 53
3.1 命名约定 54
3.1.1 T类 55
3.1.2 S类 55
3.1.3 C类 55
3.1.4 R类 56
3.1.5 M类 56
3.1.6 命名空间 57
3.2 基本类型 58
3.3 异常处理和资源管理 59
3.3.1 异常、异常退出、严重错误和捕获 60
3.3.2 异常退出问题和清除栈 63
3.3.3 两阶段构造 65
3.3.4 Symbian OS构造方法 69
3.3.5 清除栈的高级使用 69
3.4 描述符 70
3.4.1 层次结构 70
3.4.2 不可修改的API 72
3.4.3 可修改的API 73
3.4.4 文字 73
3.4.5 使用描述符 74
3.4.6 作为参数和返回类型的描述符 77
3.4.7 包描述符 79
3.5 集合类 80
3.5.1 RArray和RPointerArray类型 81
3.5.2 CArray类型 86
3.6 结合使用异步服务和活动对象 94
3.6.1 活动规划器 95
3.6.2 活动对象 96
3.6.3 实现活动对象 97
3.6.4 实例 98
3.6.5 常见的活动对象缺陷 106
3.7 文件、流和存储 107
3.7.1 文件 107
3.7.2 RFs API 108
3.7.3 RFile API 111
3.7.4 流 113
3.7.5 存储 118
3.8 客户/服务器架构 124
3.8.1 服务器会话 125
3.8.2 服务器会话和进程间通信 125
3.8.3 服务器综述 127
3.8.4 子会话 128
3.9 小结 129
第4章 应用程序设计 130
4.1 应用程序框架 131
4.2 应用程序架构 133
4.2.1 核心应用程序类 133
4.2.2 应用程序初始化 134
4.2.3 重要的AppUi方法 136
4.2.4 设计应用程序UI 137
4.2.5 基于控件的传统Symbian OS架构 138
4.2.6 基于对话框的架构 142
4.2.7 Avkon视图切换架构 144
4.2.8 选择适当的应用程序架构 149
4.2.9 文件处理 151
4.3 分离应用程序UI和引擎 152
4.4 ECom 156
4.4.1 ECom的概念性概述 157
4.4.2 ECom接口 158
4.4.3 ECom DLL 159
4.5 国际化 161
4.5.1 用于开发人员的一般指导原则 161
4.5.2 本地化的OS支持 163
4.6 良好的应用程序行为 164
4.6.1 采用怀疑的和批评的开发方法 164
4.6.2 处理Window服务器生成的事件 165
4.6.3 总是恰当地退出应用程序 165
4.6.4 在保存数据前检查磁盘空间 166
4.6.5 其他提示和技巧 166
4.7 小结 167
第5章 应用程序的UI组件 168
5.1 控件 169
5.1.1 控件和窗口 169
5.1.2 简单控件和复合控件 169
5.1.3 窗口的所有权 171
5.1.4 创建简单控件 172
5.1.5 创建复合控件 174
5.1.6 建立控件间的关系 177
5.2 皮肤 178
5.2.1 强制性支持皮肤的控件 178
5.2.2 选择性支持皮肤的控件 179
5.2.3 沿用皮肤的控件 179
5.2.4 不识别皮肤的控件 179
5.2.5 定义识别皮肤的控件 179
5.3 事件处理 180
5.3.1 按键事件 180
5.3.2 重绘事件 182
5.3.3 观察器 183
5.4 资源文件 184
5.4.1 资源文件的语法 184
5.4.2 资源文件的结构 186
5.5 菜单 191
5.5.1 子菜单 192
5.5.2 菜单基础 192
5.5.3 动态菜单 196
5.5.4 上下文敏感菜单 197
5.6 面板 199
5.6.1 状态面板 199
5.6.2 标题面板 203
5.6.3 上下文面板 206
5.6.4 导航面板 208
5.6.5 主面板 218
5.6.6 软键面板 218
5.7 小结 218
第6章 对话框 219
6.1 对话框的共性 219
6.2 标准对话框 220
6.2.1 创建简单对话框 220
6.2.2 多页对话框 225
6.2.3 为对话框定义菜单 227
6.2.4 在对话框中使用自定义控件 227
6.3 窗体 229
6.3.1 窗体行 230
6.3.2 窗体软键 230
6.3.3 在应用程序中创建窗体 232
6.4 通知 235
6.4.1 包装式通知 236
6.4.2 自定义通知 237
6.4.3 等待通知 239
6.4.4 进度通知 242
6.4.5 全局通知 246
6.5 查询 247
6.5.1 数据查询 248
6.5.2 列表查询 250
6.5.3 使用全局查询 252
6.6 列表对话框 254
6.7 小结 257
第7章 列表 258
7.1 列表基础 259
7.2 竖向列表 259
7.2.1 选择列表 260
7.2.2 菜单列表 260
7.2.3 可标记列表 261
7.2.4 多选列表 261
7.2.5 列表选项和字段 261
7.2.6 在列表中查找选项 262
7.3 使用竖向列表 262
7.3.1 基本列表 262
7.3.2 动态列表 268
7.3.3 可标记列表 270
7.3.4 弹出菜单列表 272
7.4 网格 275
7.4.1 月历网格 276
7.4.2 收藏夹网格 276
7.4.3 GMS网格 277
7.5 使用网格 277
7.5.1 网格基础 277
7.5.2 可标记网格 283
7.6 设置列表 284
7.7 使用设置列表 286
7.8 小结 296
第8章 编辑器 297
8.1 文本编辑器 298
8.1.1 尺寸和输入容量 300
8.1.2 过滤键盘输入 300
8.1.3 提供对附加字符的映射 301
8.1.4 属性 303
8.1.5 配置无格式文本编辑器 303
8.1.6 配置多格式文本编辑器 307
8.1.7 使用样式 313
8.2 数值编辑器 313
8.3 密码编辑器 317
8.4 多字段数值编辑器 318
8.4.1 IP地址编辑器 319
8.4.2 数字编辑器 319
8.4.3 范围编辑器 319
8.4.4 时间编辑器 319
8.4.5 日期编辑器 319
8.4.6 时间和日期编辑器 320
8.4.7 持续期编辑器 320
8.4.8 时间偏移量编辑器 320
8.4.9 使用MFNE 320
8.5 小结 321
第9章 通信基础知识 323
9.1 串行通信 324
9.2 套接字 329
9.2.1 Series 60的套接字 329
9.2.2 客户端和服务器 329
9.2.3 断开式和连接式套接字 330
9.2.4 连接式套接字 330
9.2.5 安全套接字 338
9.3 TCP/IP 342
9.3.1 IPv6 342
9.3.2 Series 60的TCP/IP编程 343
9.3.3 CommDB 343
9.3.4 多重连接 343
9.4 红外线 348
9.4.1 IrDA栈 348
9.4.2 Series 60设备上的红外线编程 349
9.5 蓝牙 351
9.5.1 蓝牙概述 351
9.5.2 蓝牙应用程序实例 353
9.5.3 服务发布 353
9.5.4 蓝牙安全 356
9.5.5 设备和服务的搜寻 357
9.5.6 蓝牙套接字通信 361
9.6 小结 362
第10章 高级通信技术 363
10.1 HTTP 364
10.2 WAP 372
10.2.1 WAP架构 373
10.2.2 Series 60实现 373
10.3 消息传送 377
10.3.1 消息传送的重要概念 378
10.3.2 关键消息类及数据类型 380
10.3.3 消息传送API 381
10.3.4 使用Client MTM API 382
10.3.5 使用Send-As API 392
10.3.6 使用CSendAppUi 396
10.3.7 监视到达的信息 403
10.4 通话 406
10.4.1 使用ETel API 406
10.4.2 起始工作 407
10.4.3 建立通话 408
10.4.4 接听电话 410
10.4.5 获取上次拨打的号码 412
10.5 小结 413
第11章 多媒体:图形和音频 414
11.1 Series 60图形架构概述 415
11.1.1 窗口服务器 415
11.1.2 字体位图服务器 417
11.1.3 窗口服务器与字体位图服务器 417
11.1.4 多媒体服务器 417
11.2 绘图基础 418
11.2.1 屏幕的坐标和几何学 420
11.2.2 图形设备和图形上下文 421
11.2.3 颜色和显示模式 422
11.2.4 画笔和画刷 424
11.2.5 窗口中的视图及其与CCoeControl的关系 424
11.3 字体和文本 425
11.3.1 文本和字体度量 426
11.3.2 核心字体类和函数 427
11.3.3 使用核心字体类枚举所有可用字体 427
11.3.4 文本效果 428
11.4 图形 429
11.4.1 矩形 430
11.4.2 椭圆 430
11.4.3 弧和扇形 430
11.4.4 多边形 431
11.5 位图 432
11.5.1 为应用程序生成位图 432
11.5.2 装载和绘制位图 434
11.5.3 位图遮罩 434
11.5.4 位图函数 435
11.6 动画 435
11.6.1 动画架构 436
11.6.2 离屏位图和双缓冲 438
11.6.3 客户端方式处理动画 439
11.7 直接屏幕访问 440
11.7.1 架构概述 441
11.7.2 直接屏幕访问的关键类 442
11.7.3 实现上的考虑 444
11.8 图像处理 445
11.8.1 图像转换 445
11.8.2 图像旋转 451
11.8.3 图像缩放 452
11.9 音频 453
11.9.1 录音 454
11.9.2 音频声音 457
11.9.3 音频数据 458
11.9.4 流化 459
11.10 小结 461
第12章 使用应用程序视图、引擎和关键系统API 462
12.1 使用标准应用程序视图 463
12.1.1 电话簿视图切换 464
12.1.2 日历视图切换 465
12.1.3 照相机视图切换 465
12.1.4 相册视图切换 466
12.1.5 个人资料视图切换 466
12.1.6 消息视图切换 466
12.1.7 不可切换的应用程序 466
12.2 应用程序引擎 467
12.2.1 日志引擎 468
12.2.2 照相机API 470
12.2.3 电话簿引擎 473
12.2.4 压缩商业卡和 vCard 478
12.2.5 日历引擎的访问 479
12.2.6 相册引擎 485
12.3 使用系统功能 487
12.3.1 硬件抽象层 487
12.3.2 系统代理 489
12.3.3 振动API支持 490
12.4 小结 491
第13章 测试和调试 492
13.1 质量保证 493
13.1.1 编码标准 493
13.1.2 防御性编程 494
13.2 测试 497
13.2.1 测试策略 498
13.2.2 测试工具和测试技术 500
13.2.3 在目标机和模拟器上的测试区别 506
13.2.4 测试装置 509
13.3 调试 513
13.3.1 在模拟器上调试应用程序 514
13.3.2 在目标机上调试应用程序 518
13.4 小结 521
附录 模拟嚣快捷键 522
术语表 525
参考文献 537
猜您喜欢