Symbian OS C++ for mobile phones.Volume 3

副标题:无

作   者:(美)Richard Harrison,(美)Mark Shackman著;曾严译

分类号:

ISBN:9787115204417

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

简介

《SymbianOSC++手机应用开发(第3卷)》深入介绍了Symbian操作系统C++手机开发的各方面知识,吸收了Symbian公司工程师的丰富经验,为使用Symbian操作系统v9.0及其以上版本的手机编写C++应用程序提供了完整的基础知识体系。《SymbianOSC++手机应用开发(第3卷)》在前两卷的基础上,对Symbian操作系统v8.0以上版本的新特性进行了有效的补充,并全面介绍了平台安全和应用程序发布、插件和可扩展性以及Symbian操作系统上的数据库管理等方面的知识。 对于从事与Symbian操作系统相关工作的读者来说,《SymbianOSC++手机应用开发(第3卷)》将引导你成为一名高效的Symbian操作系统的开发者,并且让你对Symbian操作系统的基本原则有深刻的理解。对于期待使用Symbian技术开发移动解决方案的程序员或者管理人员,以及考虑使用Symbian操作系统技术从事相关活动的咨询师和培训师,《SymbianOSC++手机应用开发(第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


已确认勘误

次印刷

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

Symbian OS C++ for mobile phones.Volume 3
    • 名称
    • 类型
    • 大小

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

    意见反馈

    14:15

    关闭

    云图客服:

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

    或者您是想咨询:

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

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

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

    loading icon