Symbian OS C++ for Mobile Phones

副标题:无

作   者:( )Richard Harrison等著;周良忠译

分类号:

ISBN:9787115125927

微信扫一扫,移动浏览光盘

简介

  《Symbian OS C++手机应用开发》介绍了用SymbianOSC++进行手机开发的各方面知识。全书共分4部分,每一部分的第1章描述一个教学示例程序,其后各章根据这个例子提出的问题展开讨论。第1部分(第1~3章)简单介绍了SymbianOS。第2部分(第4~8章)解释了创建简单GUI(图形用户界面)应用程序所需的基本类、资源、API和编程约定。第3部分(第9~15章)介绍了编写重要独立应用程序的相关知识。第4部分(第16~20章)介绍了系统编程、通信和事件处理的相关知识。附录部分给出了示例项目、开发资源,以及和仿真器相关的有用信息。   《Symbian OS C++手机应用开发》适用于所有SymbianOS手机开发人员以及相关的管理人员。

目录

  第1章 起步 1
1.1 使用仿真器 1
1.1.1 启动仿真器 1
1.1.2 GUI样式 2
1.2 文本版本的Hello World 4
1.2.1 程序hellotext 4
1.2.2 项目定义文件 7
1.2.3 组件定义文件 8
1.2.4 从命令行生成 8
1.2.5 在Metrowerks IDE中生成 10
1.2.6 在目标机器上运行 10
1.3 小结 12

第2章 系统结构 13
2.1 硬件资源 13
2.2 软件基础知识 15
2.3 进程、线程和上下文切换 16
2.4 可执行程序 17
2.4.1 执行的位置 18
2.4.2 载入和共享 18
2.4.3 缩减大小 18
2.4.4 启动应用程序和服务器 19
2.5 电源管理 19
2.6 内核和E32 20
2.7 设备驱动程序 21
2.8 定时器 21
2.9 内存 22
2.9.1 进程和线程内存 23
2.9.2 在DLL中无可写静态数据 24
2.10 文件 25
2.11 事件处理 26
2.12 剖析事件处理 26
2.13 活动对象 27
2.14 多任务处理和抢占 28
2.15 服务器 29
2.16 线程产生作用的地方 30
2.17 本书涉及的API 31
2.18 小结 33

第3章 C++和面向对象 34
3.1 基本类型 34
3.2 命名约定 35
3.2.1 类名 36
3.2.2 数据名 36
3.2.3 函数名 37
3.2.4 宏名 37
3.2.5 版式 38
3.2.6 小结 38
3.3 函数 38
3.3.1 函数参数 39
3.4 API 39
3.4.1 函数类型 40
3.4.2 DLL和其他API元素 40
3.4.3 导出的函数 41
3.4.4 虚函数和API 41
3.5 模板 42
3.5.1 瘦模板 42
3.5.2 模板中的数字 43
3.6 类型转换 43
3.7 类 43
3.7.1 接口 44
3.7.2 不良做法 45
3.8 设计模式 45
3.9 类图和UML 46
3.9.1 描述API 46
3.9.2 描述类 47
3.9.3 描述类之间的关系 47
3.9.4 描述派生关系 48
3.9.5 基数 49
3.10 小结 49

第4章 简单图形应用程序 50
4.1 名字变更的意义 50
4.2 图形架构简介 50
4.3 应用程序结构 51
4.4 图形化的“Hello World!”程序 53
4.4.1 程序 53
4.4.2 项目规范文件 53
4.4.3 获得UID 54
4.4.4 生成应用程序 55
4.4.5 在CodeWarrior IDE中生成 56
4.4.6 源代码 56
4.5 资源文件 63
4.5.1 头 64
4.5.2 定义快捷键和菜单 64
4.5.3 字符串资源 66
4.6 实际应用 67
4.7 启动应用程序 67
4.8 命令和事件处理 68
4.8.1 从菜单栏中由指针生成的命令 68
4.8.2 菜单栏中的键盘生成命令 69
4.8.3 快捷键中的命令 69
4.9 终止应用程序 70
4.10 目标式调试 70
4.11 设置MetroTRK 70
4.11.1 配置 71
4.12 启动MetroTRK 71
4.13 设置CodeWarrior ID 71
4.14 调试应用程序 72
4.15 小结 72

第5章 字符串和描述符 73
5.1 字符串与内存 74
5.1.1 C中的字符串 74
5.1.2 Symbian OS中的字符串 74
5.2 修改字符串 77
5.2.1 修改C字符串 77
5.2.2 修改Symbian OS的字符串 78
5.2.3 修改HBufC 78
5.2.4 描述符类型小结 80
5.2.5 在接口中使用抽象类 81
5.2.6 再论文字 81
5.3 标准描述符函数 82
5.3.1 基本函数 83
5.3.2 比较 83
5.3.3 搜索 83
5.3.4 提取 83
5.3.5 清除和设置 84
5.3.6 操作数据 84
5.3.7 字母操作 84
5.3.8 修剪和对齐 84
5.3.9 格式化 84
5.4 更多的文本API 84
5.5 Unicode和字符转换 85
5.6 二进制数据 86
5.7 小结 88

第6章 错误处理和清理 89
6.1 错误类型 89
6.2 处理内存不足的错误 91
6.2.1 Uikon 调试键 91
6.2.2 Memorymagic应用程序 92
6.2.3 分配、销毁和堆平衡 93
6.2.4 堆失败 97
6.2.5 异常退出的工作方式 98
6.2.6 清理栈 101
6.2.7 两阶段构造 104
6.3 清理规则小结 108
6.4 C类和T类 109
6.5 R类 110
6.5.1 作为成员变量的R类 111
6.5.2 错误码返回与L函数 112
6.5.3 清理栈上的R类 112
6.6 用户错误 113
6.7 严重提示的更多知识 114
6.8 测试引擎和库 115
6.9 小结 116

第7章 资源文件 118
7.1 为什么需要针对Symbian的资源编译器 118
7.1.1 资源文件语法 118
7.1.2 可本地化字符串 120
7.1.3 多资源文件 122
7.1.4 编译资源文件 122
7.1.5 已编译资源文件的内容 124
7.2 小结 127

第8章 基本API 128
8.1 几个优秀的API 128
8.1.1 User类 128
8.1.2 动态缓冲 129
8.1.3 集合 132
8.1.4 区域设置 135
8.1.5 数学 136
8.1.6 变量参数表 136
8.1.7 字符串格式化 137
8.1.8 RDebug类 137
8.2 C标准库 138
8.2.1 移植问题 138
8.2.2 移植多线程程序 140
8.2.3 全局数据 141
8.2.4 结论 143
8.3 小结 144

第9章 独立应用程序 145
9.1 战舰游戏 145
9.2 综述 146
9.2.1 程序结构 146
9.2.2 引擎 147
9.2.3 控制器 147
9.3 引擎类 148
9.3.1 舰船类 149
9.3.2 舰队类 150
9.3.3 游戏引擎类 154
9.4 视图类 155
9.4.1 构建视图 156
9.4.2 绘制视图 156
9.4.3 处理事件 161
9.5 换算和缩放 162
9.6 控制器 166
9.6.1 访问GUI环境 167
9.6.2 缩放 167
9.7 应用程序UI 169
9.8 持久性存储 171
9.8.1 作为基于文件的应用程序的
Solo Ships 172
9.8.2 存储和还原 172
9.8.3 创建默认文档 175
9.8.4 应用程序UI和文档 176
9.9 双人战舰游戏 176
9.9.1 视图架构 176
9.9.2 双人战舰游戏视图 178
9.9.3 舰队视图 178
9.9.4 隐藏器视图 182
9.9.5 视图测试程序 182
9.9.6 声音效果 183
9.10 小结 184

第10章 对话框和具体控件 186
10.1 对话框介绍 186
10.1.1 查询对话框 186
10.1.2 单页对话框 187
10.1.3 多页对话框 188
10.1.4 提示文本 188
10.1.5 控件 189
10.1.6 对话框处理 189
10.1.7 模态 190
10.1.8 小结 190
10.2 一些简单对话框 190
10.2.1 资源文件定义 192
10.2.2 对话框代码 193
10.2.3 只读对话框 196
10.2.4 简单对话框处理 197
10.3 对话框API 200
10.3.1 资源规范 200
10.3.2 添加按钮 200
10.3.3 基本函数 201
10.4 对话框常用控件 203
10.4.1 按钮 204
10.4.2 列表 205
10.4.3 编辑器 205
10.4.4 在对话框中使用控件 206
10.4.5 访问控件 206
10.4.6 对话框中的自定义控件 207
10.5 标准对话框 208
10.5.1 警报 208
10.5.2 查询 208
10.5.3 其他标准对话框 209
10.6 小结 209

第11章 图形显示 210
11.1 绘图基础 210
11.1.1 控件 211
11.1.2 Draw()概览 211
11.2  CGraphicsContext API 213
11.2.1 坐标类 214
11.2.2 设置图形上下文 215
11.2.3 绘图函数 216
11.3  绘图和重绘 218
11.3.1 模型、视图和控制器模式 219
11.3.2 Draw()契约 220
11.4 无闪烁重绘 222
11.4.1 绘制一切 223
11.4.2 状态视图更新 224
11.4.3 命中报告 225
11.4.4 光标移动 226
11.5 屏幕共享 227
11.5.1 CONE 227
11.5.2 自主窗口和寄宿控件 228
11.5.3 复合控件 231
11.5.4 绘图的更多知识 232
11.6 CCoeControl的绘图支持 236
11.6.1 控件环境 237
11.6.2 自主窗口和寄宿 238
11.6.3 组件 239
11.6.4 位置与大小 239
11.6.5 绘图 240
11.7 特殊效果 241
11.7.1 阴影 242
11.7.2 后台备份 242
11.7.3 动画 242
11.7.4 Uikon调试键 243
11.7.5 控件上下文 244
11.7.6 滚动 244
11.8 小结 244

第12章 交互图形 246
12.1 键、指针和命令基础知识 246
12.1.1 处理键事件 247
12.1.2 处理指针事件 248
12.1.3 将事件转换成命令 250
12.2 对话框中的交互 251
12.2.1 用户需求 251
12.2.2 一些基本抽象 252
12.2.3 程序员需求 253
12.2.4 复合控件 253
12.2.5 键分布和焦点 253
12.2.6 变暗和可见性 254
12.2.7 验证 255
12.2.8 控件观察者 255
12.2.9 容器 257
12.3 键处理过程回顾 258
12.3.1 焦点 260
12.3.2 文本光标 261
12.4 指针处理回顾 261
12.4.1 交互范例 261
12.4.2 选取相关性 262
12.4.3 抓取指针按下控件 262
12.4.4 捕获指针 262
12.4.5 获得高分辨率的指针事件 263
12.4.6 处理指针事件 263
12.4.7 自定义指针和键声音 264
12.5 窗口服务器和控件环境API的更多知识 264
12.5.1 应用程序与窗口服务器的通信 264
12.5.2 窗口类型 265
12.5.3 标准窗口 266
12.5.4 窗口组 267
12.6 shell 268
12.7 小结 268

第13章 文件、流和存储 269
13.1 基于文件的应用程序 269
13.1.1 用户和系统文件 270
13.1.2 UIQ应用程序文件位置 271
13.1.3 命名和位置约定小结 271
13.2 API引论 272
13.3 文件服务器 272
13.3.1 文件服务器会话 273
13.3.2 当前目录 274
13.3.3 驱动器、文件系统和存储介质 274
13.3.4 文件 275
13.3.5 目录 275
13.3.6 文件名解析 276
13.4 streams程序 277
13.4.1 与文件服务器建立连接 278
13.4.2 文件写入 279
13.4.3 回读 283
13.4.4 文件名解析 284
13.4.5 文件API小结 285
13.5 流 285
13.5.1 内部格式和外部格式 285
13.5.2 外部化和内部化数据的途径 286
13.5.3 流类型 291
13.6 存储 292
13.6.1 直接文件存储 292
13.6.2 嵌入式存储 294
13.6.3 永久性文件存储 295
13.7 存储类型 297
13.8 字典存储和.ini文件 298
13.9 UIQ应用程序架构 299
13.10 小结 300

第14章 收尾工作 302
14.1 添加按钮 302
14.1.1 创建位图 303
14.1.2 位图转换 304
14.1.3 修改资源文件 305
14.1.4 生成应用程序 307
14.1.5 bmconv工具的补充说明 307
14.2 添加应用程序图标 308
14.2.1 创建图标 309
14.2.2 添加标题 309
14.2.3 重新生成应用程序 310
14.2.4 aiftool的补充说明 310
14.3 为应用程序提供安装支持 311
14.3.1 安装文件的安全保护 312
14.3.2 生成包文件 313
14.3.3 生成最终的SIS文件 315
14.3.4 SIS文件的安装 315
14.3.5 SIS文件的检查和卸载 316
14.3.6 应用程序的发行 316
14.4 UIQ应用程序的设计原则 317
14.4.1 GUI规划 317
14.4.2 设计列表视图和详细视图 318
14.4.3 设计菜单和文件夹 318
14.4.4 标准菜单项 319
14.4.5 创建对话框 319
14.4.6 考虑文本输入 319
14.4.7 提供文本和消息 319
14.4.8 使用滚动箭头和滚动条 320
14.4.9 适应各种缩放比例 320
14.4.10 应用程序间的链接 320
14.5 数据处理 320
14.6 小结 321

第15章 与设备和尺寸无关的图形 323
15.1 应用中与尺寸和目标无关的绘图 323
15.1.1 与设备无关的绘图 326
15.1.2 使用视图 330
15.1.3 管理缩放因子 331
15.1.4 视图和重用 332
15.1.5 设备无关绘图的小结 334
15.2 深入介绍GDI 334
15.2.1 位图传送和位图 335
15.2.2 深入介绍字体 337
15.2.3 关于打印的更多知识 338
15.2.4 色彩 339
15.2.5 Web浏览 341
15.3 开发人员对于设备无关代码的探索 341
15.4 GUI系统 342
15.4.1 Symbian OS GUI系统的发展 342
15.4.2 主要GUI组件 345
15.5 小结 346

第16章 多用户应用程序 347
16.1 Symbian OS中的通信 347
16.2 不带通信的Battleships 348
16.2.1 视图和菜单技巧 350
16.2.2 面向对象管道技术 351
16.2.3 不同的通信 352
16.3 TOGS 352
16.3.1 TOGS的形式 353
16.3.2 起点--数据报和对话 353
16.3.3 GSDP:游戏会话数据报协议 354
16.3.4 BSP:Battleships协议 355
16.3.5 测试程序 355
16.3.6 模式重用 356
16.3.7 在TOGS上进行构建 357
16.4 使用游戏 357
16.4.1 实际玩游戏 358
16.4.2 RGCP中的可靠性 358
16.4.3 SMS 359
16.5 原理剖析 359
16.5.1 状态视图 361
16.5.2 处理攻击请求 361
16.5.3 检查条件 362
16.5.4 攻击处理完整过程 364
16.6 更深入介绍Battleships 368
16.6.1 更理想的Battleships 368
16.6.2 其他游戏 370
16.6.3 单人游戏 371
16.6.4 基础结构的改进 371
16.7 小结 373

第17章 活动对象 374
17.1 一个简单活动对象 374
17.1.1 构造和析构 376
17.1.2 请求和处理事件 377
17.1.3 取消请求 378
17.2 工作方式 378
17.2.1 取消请求的更多知识 379
17.2.2 错误处理 381
17.2.3 非抢占和优先级 381
17.2.4 启动和终止规划器 382
17.2.5 在活动规划器中添加功能 383
17.2.6 框架小结 384
17.3 活动对象模式 387
17.3.1 维护未完成的请求 387
17.3.2 状态机 390
17.3.3 处理完成的接口 392
17.3.4 长期运行的任务和增量接口 393
17.3.5 区分优先级并维护响应灵敏度 394
17.4 小结 395

第18章 客户端-服务器框架 396
18.1 引言 396
18.1.1 处理常规请求 397
18.1.2 建立会话 398
18.1.3 启动服务器 399
18.1.4 处理异步请求 399
18.1.5 结束会话并在客户端消亡后清理 400
18.1.6 在服务器消亡后清理 400
18.1.7 处理一个会话中的多个对象 400
18.2 性能 401
18.2.1 客户端缓冲 402
18.2.2 高级事务 403
18.2.3 数据缓存 403
18.2.4 相同进程中的相关服务器 404
18.2.5 共享内存 405
18.3 服务器和线程 407
18.3.1 在线程间共享客户端对象 407
18.3.2 服务器中的多线程 408
18.3.3 时间起关键作用的服务器性能 408
18.3.4 线程优先级 409
18.4 客户端-服务器API 409
18.4.1 线程基础 410
18.4.2 线程间数据传输和数据包类 411
18.4.3 客户端对象 412
18.4.4 服务器端的对象 415
18.5 小结 419

第19章 GSDP服务器 420
19.1 软件结构 420
19.2 客户端接口 421
19.2.1 消息传递函数 423
19.2.2 监听和接收 424
19.2.3 连接和断开 426
19.2.4 作为DLL的客户端API 428
19.3 服务器实现 429
19.3.1 消息处理 430
19.3.2 发送数据报 435
19.3.3 使用ECOM框架 437
19.3.4 使用协议 438
19.3.5 接收数据报 445
19.3.6 启动和关闭 450
19.4 小结 456

第20章 GDP实现 457
20.1 任务、状态和状态机 457
20.1.1 GDP状态机 458
20.2 SMS实现 462
20.2.1 ESOCK和SMS的Symbian OS支持 462
20.2.2 GDP-SMS消息格式 463
20.2.3 GDP-SMS实现 463
20.3 蓝牙实现 471
20.3.1 蓝牙的Symbian OS支持 472
20.3.2 GDP-BT的协议映射 472
20.3.3 GDP-BT实现 472
20.4 小结 478

附录A 示例项目 480
A.1 独立项目 480
A.2 Battleships项目 481
A.3 TOGS项目 481

附录B 开发人员资源 482
B.1 Symbian开发人员网络 482
B.2 Symbian OS开发人员工具 482
B.2.1 AppForge 482
B.2.2 Borland 482
B.2.3 Forum Nokia 482
B.2.4 Metrowerks 483
B.2.5 Sun Microsystems 483
B.2.6 Texas Instuments 483
B.2.7 工具文档 483
B.3 Symbian OS SDK 483
B.3.1 Symbian OS v7.0 484
B.3.2 Symbian OS v6.1 484
B.3.3 Symbian OS v6.0 484
B.3.4 Symbian OS v5 484
B.4 其他SDK和SDK扩展 485
B.4.1 OPL 485
B.4.2 Visual Basic 485
B.4.3 Intel PCA开发包 485
B.4.4 Texas Instruments Innovator开发包 485
B.5 开发人员支持 485
B.5.1 Ericsson Mobility World 486
B.5.2 Forum Nokia 486

附录C TOGS指南和参考 487
C.1 GDP 487
C.1.1 Symbian OS的实现代码 488
C.1.2 GDP网络回送实现 489
C.1.3 GDP聊天 490
C.1.4 继续探讨GDP 490
C.2 GDSP 490
C.2.1 Symbian OS客户端实现 493
C.2.2 GSDP聊天 495
C.2.3 继续介绍GSDP 496
C.3 RGCP 496
C.3.1 协议综述 496
C.3.2 RGCP Symbian OS的实现 501
C.3.3 RGCP交谈 504
C.3.4 深入探讨RGCP 504
C.4 战舰协议 504
C.4.1 协议综述 505
C.4.2 游戏UI 508
C.4.3 程序结构 509
C.4.4 继续探讨BSP 509
C.5 小结 509

附录D 仿真器参考 510
D.1 仿真器内部 510
D.1.1 源代码兼容性 511
D.1.2 驱动盘映射 512
D.1.3 目录体系 513
D.1.4 仿真器启动 514
D.1.5 仿真器启动参数 515
D.1.6 仿真器命令行语法 515
D.1.7 键映射 516
D.1.8 通信 516
D.1.9 仿真器有多好 517
D.1.10 调试键 519

索引 520

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

Symbian OS C++ for Mobile Phones
    • 名称
    • 类型
    • 大小

    联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    亲爱的云图用户,
    光盘内的文件都可以直接点击浏览哦

    无需下载,可直接在线浏览

    loading icon