symbian os 介绍

60
Copyright © 2001-2007 Symbian Software Ltd. Symbian OS 基基 Symbian OS 基基 基基 基 基基

Upload: uma-garza

Post on 15-Mar-2016

181 views

Category:

Documents


13 download

DESCRIPTION

Symbian OS 介绍. 概述 第一部分. 前言. 本讲是整个课程的导言 Symbian 公司的背景 Symbian OS C++ 特色语言 Symbian OS 的体系结构 本课程覆盖内容 相关资源. 背景. Symbian 之前 - Psion. Psion 成立于 1980 年 为基于 Z80 的 Sinclair 系列,如 ZX81 和 ZX Spectrum ,开发游戏和软件 产品包括 飞行模拟器, “ 豪斯滑雪 ” , Psion 象棋,太空奇袭和其他游戏 其中为 ZX81 开发的 Psion 象棋只占用 1K 内存 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Symbian OS 介绍

Copyright © 2001-2007 Symbian Software Ltd.

Symbian OS 基础

Symbian OS 介绍概述 第一部分

Page 2: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 2

前言

本讲是整个课程的导言• Symbian 公司的背景• Symbian OS C++ 特色语言• Symbian OS 的体系结构• 本课程覆盖内容• 相关资源

Page 3: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 3

背景

Page 4: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 4

Symbian 之前 - Psion

Psion 成立于 1980 年• 为基于 Z80 的 Sinclair 系列,如 ZX81 和 ZX Spectrum ,开发游戏和软件产品包括• 飞行模拟器,“豪斯滑雪”, Psion 象棋,太空奇袭和其他游戏• 其中为 ZX81 开发的 Psion 象棋只占用 1K 内存• 为 Sinclair QL 开发的办公套件 (1983)

Page 5: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 5

Symbian 之前 - Psion

八十年代中期——硬件• 基于 6301 的位 Organiser (1984) —— 14cm x 9cm, 2K RAM, 4K ROM, 8K 数据

包 , 6 个月电池寿命 !• Organiser II (1986) —— 世界上第一款严格意义上的 PDA• 创建 Organiser II 的各个变体 —— 一直到 64k 内存, 4 行屏幕解析度,以及扩展硬

件• 十来年总共销售 50 万台

Page 6: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 6

Symbian 之前 - Psion

1989 - MC400 膝上电脑 • 16 位 “ EPOC” 操作系统 —— 多任务、 GUI 和内置应用程序• 独特的电源管理和屏幕技术1991 - Series 3, 1993 - Series 3a, 1996 Series 3c/Siena, Series 3mx• 硬壳 organisers, 内置应用程序 , 支持 OPL, 最大 2MB 内存• 基于 EPOC 构建• 销售 150 多万单元1997 - Series 5• 32 位操作系统 “ EPOC32” (EPOC -> EPOC16 -> SIBO)• 滑出式 QWERTY 键盘 , 触摸屏 , 4MB/8MB• 用 C++ 实现

http://3lib.ukonline.co.uk/historyofpsion.htm

Page 7: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 7

Symbian 历史1998 – Symbian 由 Psion, Nokia, Ericsson 和 Motorola 创建• Matsushita 于 1999 年加入 , Sony Ericsson & Siemens 于 2002 年加入 ,

Samsung 2003 加入• Motorola 在 Symbian 的股份于 2003 年售出• Psion 股份于 2004 年售出• EPOC32 后来更名为 Symbian OS

第一款 Symbian OS 手机与 2000 年发布 (Ericsson R380)• Nokia 9210 Communicator 于 2001 年发布——它是第一款“开放”的手机2.5G 手机于 2002 年早期出现• Nokia 7650

3G 手机在 2002 年 12 月发布• Fujitsu 的 3G FOMA F2051

Page 8: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 8

Symbian 历史其他值得注意的里程碑• EKA2 (EPOC 内核体系结构 2) 于 2004 年宣布• 2005 年 Symbian OS v9 引入了安全平台• Symbian OS 于 2007 年通过 P.I.P.S 向非移动开发者社区开放

P.I.P.S 代表 “ P.I.P.S Is POSIX on Symbian OS” – 一个 POSIX 兼容 API

Page 9: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 9

Symbian 所有权到 2007 夏季, Symbian 的股东情况

Page 10: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 10

一些统计

到 2007 年 3 月 31 日• 成长的公司 —— 2007 年第一季度, Symbian 授权厂家交货的手机达 1590 万台,比 2006 年第一季度增长 35.9% (2006 年第一季度为 1170 万台 )• Symbian 智能手机累计交货达 1 亿 2600 万个单元• 自从 2003 年 3G Symbian 模块交货以来,日本累计 Symbian手机单元交货量已经达到了 2000 万的里程碑• Symbian OS C++ 开发者已经供不应求 !• 更多的统计见

http://www.symbian.com/about/fastfacts/fastfacts.html

Page 11: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 11

Symbian OS C++

Page 12: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 12

Symbian OS C++

Symbian OS C++ 被称为是 “特定领域的 C++ 语言 , 并附有用于构建 Symbian OS 及运行于其上的软件的框架”

Page 13: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 13

Symbian C++ 的演化

Symbian OS 设计 and C++ 考虑由如下因素推动 :• 能源 (电池寿命 ) • 用户响应• 移动设备“一直开启” 的特性• 有限资源 (RAM, ROM)• 框架的重用和定制• 可靠数据存储• 开放性

Page 14: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 14

Symbian C++ 的演化Symbian OS 的 C++ 也受到开发该操作系统时间的影响 :• 在 1994 年 - C++ 仍处于演化之中• 还没有被标准化这影响了 C++ 后来一些特性的选用 :• 模板• 异常• 命名空间• New casts• Boolean 类型• 其他不为工具链所支持或不成熟的特性 .

Page 15: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 15

Symbian C++ 的演化

一些特殊机制被发明出来,以弥补 C++ 中的不足,例如 • 异常退出 (Leaves)• 清除栈( The cleanup stack)• 描述符( Descriptors)没有采用 C++ 中的某些模式,因为 C++ 本身就是被设计成一种通用的系统语言• 它并没有针对小型、低内存、低功率设备进行优化

Page 16: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 16

通用模式

通用的 Symbian OS 模式• 多线程与抢先式多任务• 轻量级微内核 OS设计• 客户端 - 服务器 , 基于 session 的进程间通信 IPC ( 包括其他机制 ) • 异步服务,活动对象• 清除栈 , 异常退出 , 异常处理陷阱• 对应用程序、中间件和 GUI可重用的框架• 描述符• 命名规范在本课程中,我们将讨论这些以及更多的内容

Page 17: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 17

其他语言支持Symbian OS 也支持• Java• Flash Lite• 运行时语言,如 Python, Ruby, Visual Basic• OPL ( 直到 v9)

Hardware

Symbian OS

Java FlashLite

Runtimes

Python Ruby

C++

功能及性能

开发的容易性

Java

Flash

Symbian C++

WebPython

Managed code

Native code

P.I.P.S.

Page 18: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 18

体系结构

Page 19: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 19

Symbian OS 体系结构

Hardware

Kernel & H/W InterfaceOS Services

Application ServicesUI Framework

Licensee UI Platform

Licensee H/W Services

Sym

bian

OS

Symbian OS 将 UI 与引擎和服务分离,从而允许被授权人(像 Nokia)为手机开发它们自己的 UI

Page 20: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 20

Symbian OS 体系结构详细一点

Page 21: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 21

Symbian OS 体系结构更加详细!

Page 22: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 22

Symbian OS 体系结构

前一页显示的 Symbian 系统模型在如下地址可以访问到• http://developer.symbian.com/main/oslibrary/sys_models/index.jsp

或者参考 “ The Symbian OS Architecture Sourcebook”• http://developer.symbian.com/main/learning/press/

Page 23: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 23

用户界面( UI)平台

Page 24: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 24

UI 平台不同的 UI 平台运行在 Symbian OS 上• Nokia 的 S60• UIQ科技( Sony Ericsson 的一部分)的 UIQ• 在日本 NTT DoCoMo 为 FOMA™ 3G网络设计的 MOAP UI

这些平台提供• 图形用户界面 (GUI) 并扩展了 Symbian提供的应用程序和中间件每个平台都有不同的外观• 支持使用该平台的手机的特性

Page 25: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 25

UI 和引擎分离一般而论,被授权人在 UI 框架上构建系统• UI 框架由 Symbian OS提供• 我们在例子中会碰到一些 UI编程• 但是本课程的重点还是 Symbian 的特有模式与概念

UI Framework

ApplicationEngine

App UI & Views

EngineSupport

Base

Licensee UI

Page 26: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 26

UI 平台外观实例Nokia S60

Sony Ericsson UIQ

Page 27: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 27

课程

Page 28: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 28

先导知识

本课程需要的先导知识 :• C++ 编程• 面向对象设计基础推荐至少具有的背景知识 :• 操作系统理论• 基本通信协议

Page 29: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 29

课程

本课程是基于 Symbian 学院( Symbian Academy) Symbian OS 基础课程• Symbian OS 开发者的专业资格是基于本课程• 认证的 Symbian 开发者• 所有 Symbian 内部员工必须具有该资格• 本课程推荐用书 “ The Accredited Symbian Developer Primer: Fundamentals

of Symbian OS” ,由 Symbian 出版社 2006 出版

Page 30: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd.

培训练习现有类型 :

30

测试你的知识回答不同的问题,例如找出代码中的错误或者解释概念

对以前写好的源代码进行扩展一个小框架标有许多“可编辑”位置的 , 它们对单个的任务进行介绍

更自由 , 更多说明不再是很多已定义好的小任务, tutorials 包含了更详细的解释,以帮助你完成模块 .

真正的挑战在课程的最后,你应当承担 Symbian OS项目,它将帮助你复习很多的基础,也可以进入更多高级的课题

Page 31: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 31

课程核心主题工具链 (Tool Chains)

Symbian OS 类型与声明 (Symbian OS Types & Declarations)

异常退出与清除栈 (Leaves and the Cleanup Stack)

两阶段构造和对象销毁 (Two-phase Construction and Object Destruction )

描述符 (Descriptors)动态数组 (Dynamic Arrays)

活动对象 (Active Objects)

系统结构 (System Structure)客户端 -服务器( Client Server)文件服务器,流集与流( File Server, Store & Streams)

套接字 (Socket)

平台安全 (Platform Security)

二进制兼容性 (Binaries Compatibility)

Page 32: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 32

工具链

介绍 Symbian OS 工具链和开发环境• 构建工具 (Build Tool)• 硬件构建 (Hardware Build)• 安装程序到手机硬件上• Symbian OS 模拟器

Page 33: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 33

Symbian OS 类型与声明介绍基本的 Symbian OS类型、命名规范、编码风格以及 Symbian OS 基本类的使用范例• T 类• C 类• R 类• M 类• 静态类• 创建 Symbian OS类时要考虑的因素• 为什么 Symbian OS 的命名规范很重要 ?

Page 34: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 34

Symbian OS 类型与声明练习第一个练习的目的是知道 Symbian OS 基本数据类型以及 Symbian OS 模拟器的控制台模式 .

Page 35: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 35

异常退出与清除栈

介绍清除栈以及标准 C++ 与 Symbian OS 在处理内存泄露和异常时的区别• 异常退出 : Symbian OS轻量级的异常• 如何用异常退出工作• 比较异常退出和致命错误 (Panics)• 什么是 TRAP?• 清除栈• 检测内存泄露

Page 36: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 36

异常退出与清除栈练习本模块提供一个 leave传递练习 , 以及如何用清除栈处理危险内存状况的不同方法 .

Page 37: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 37

两阶段构造与对象销毁

介绍 Symbia OS 中两阶段构造,安装创建对象与避免内存泄露• 两阶段构造• 对象销毁

Page 38: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 38

练习本模块中 ,你将看见 Symbian OS 中两阶段构造如何工作,以及如果你不正确的实现它,会发生什么。

两阶段构造与对象销毁

Page 39: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 39

描述符 介绍使用描述符的原因、如何使用缓冲区和指针描述符,以及何时使用包描述符类• Symbian OS 描述符的特点• Symbian OS 描述符类• 描述符类的继承层次• 使用描述符 API• 描述符作为函数参数• 正确使用动态描述符类• 描述符使用中常见的低效用法• 文字描述符• 描述符转换

Page 40: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 40

描述符练习本模块的两个部分练习都覆盖描述符的工作。通过不同的例子,你可以学会它们各自不同以及可用的操作方法 .

Page 41: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 41

动态数组分析 OS 动态数组的使用要优于标准 C++ 数组的地方,理解动态数组类的选择依赖于需要的用法和数组元素的特点• Symbian OS 中的动态数组• RArray, RPointerArray 还是 CArrayX?• 数组粒度• 数组排序和搜索• TFixedArray

Page 42: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 42

动态数组练习在本模块,你要写一个表示学生的类,它有名称和其他细节 .动态数组将被用于存储多个学生信息以及对其元素进行排序和查找 .

Page 43: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 43

活动对象分析为什么活动对象要优于线程和在什么条件下优于,介绍简单活动对象的使用和实现以及它们与活动调度器的关系• Symbian OS事件驱动的多任务处理• CActive类• 活动调度器( The Active Scheduler)• 取消已经发出的请求• 后台任务• 公共问题

Page 44: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 44

活动对象练习为了让活动对象这一主题更加有趣,本练习基于一个简单的控制台动作游戏 . 你将需要写两个活动对象以便为游戏引擎提供输入

Page 45: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 45

系统结构

分析 Symbian OS 的底层结构 , 包括线程,进程, DLLs 和内存管理• Symbian OS 中的 DLLs • 可写静态数据• ROM 和 RAM 中的可执行文件• 线程与进程• 进程间通信 (IPC)• 识别器• 致命错误与断言

Page 46: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 46

客户端 -服务器框架

分析手机中客户端 /服务器模型的用例 , 使用该模型的系统组件,以及典型的服务器实现• 客户端 - 服务器模式• Symbian OS 客户端 - 服务器框架基础• Symbian OS 客户端 - 服务器类• 客户端 - 服务器数据传输• 客户端 - 服务器框架的影响

Page 47: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 47

文件服务器与流

介绍使用文件、流集 (Store) 、流 (Stream) 来存储持久性和暂时性数据• Symbian OS 文件系统• 流与流集

Page 48: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd.

练习你要创建一个基于 S60 平台的完全能够工作的音频播放器应用程序,它能够播放 mp3/aac/…等文件格式 . 为了完成这项工作,需要使用多媒体框架以及文件服务器,同时验证客户端服务器通信机制 .

48

客户端 -服务器框架文件系统与流

or

Page 49: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 49

套接字( Socket)

研究套接字服务器架构中的通信服务以及异步通信事件• 介绍套接字• Symbian OS 套接字架构• 使用 Symbian OS 套接字

Page 50: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 50

套接字练习本例要求你完成一个功能完全的多人游戏客户端的套接字部分,而不是通过套接字传递一些人为制造的数据 . 服务器是一个桌面应用程序,它允许许多( Symbian OS)客户端进行连接玩一个小行星游戏 .

Page 51: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 51

平台安全分析平台安全的三个核心概念 : 信任模型 , 能力和数据隔离。介绍Symbian OS v9 上的软件设计、开发与发布• 信任模型( The Trust Model)• 能力模型( Capability Model)• 数据隔离( Data Caging)• 安全标识符( Secure Identifier ) , 厂商标识符( Vendor Identifier)和唯一标识符( Unique Identifier)

• 基于安全平台的应用程序设计• 在 Symbian OS v9 上发布安全应用程序• 本地软件安装器

Page 52: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 52

兼容性

介绍二进制和源代码兼容性,以及相应的编程和设计技术,它对于维护代码模块和 API 的兼容性是需要的• 兼容性等级• 防止兼容性中断 — 什么不能改变 ?• 什么可以修改,而不会破坏兼容性 ?• 好习惯——为确保未来的兼容性进行设计

Page 53: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 53

项目课程材料中提供了多个不同难度的项目思想 . 对于大多数工程 ,推荐的小组人数为两人。为了给你足够的时间,题目应被尽快的分发到每个组中。为了完成项目,你需要显示你对 Symbian OS 基本原则的理解。通常,也要求对 Symbian OS S60 或 UIQ提供的许多 API进行研究 .

Page 54: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 54

资源

Page 55: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 55

推荐阅读C++ 参考书• Stroustrup, B. (2000) The C++ Programming Language (Special 3rd

Edition), Addison-Wesley Professional• Meyers, S. (2005) Effective C++: 55 specific ways to improve your

programs and designs, 3rd Edition, Addison Wesley

Symbian 书籍• Stichbury, J & Jacobs, M. (2006) The Accredited Symbian Developer Primer,

John Wiley & Sons • Jipping, M. (2007) Smartphone Operating System Concepts with Symbian

OS, John Wiley & Sons• Harrison, R. & Shackman M. (2007) Symbian OS C++ for Mobile Phones

Volume 3, John Wiley & Sons• Heath, C. (2006) Symbian OS Platform Security: Software development

using the Symbian OS security architecture, John Wiley & Sons• Morris, B. (2006) The Symbian OS Architecture Sourcebook: Design and

evolution of a mobile phone OS, John Wiley & Sons

Page 56: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 56

Symbian 出版社出版物

For information on other Symbian Press titles visit developer.symbian.com/main/learning/press

Page 57: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 57

区域书籍Symbian 出版社书籍中文版 (北邮出版社 )• http://www.ptpress.com.cn/

Symbian 出版社书籍在印度• http://www.wileyindia.com/

Symbian 出版社数据日文版• http://developer.symbian.com/main/learning/press/translated/japanese.jsp

Page 58: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 58

有用链接 s

Symbian 开发者网络• http://developer.symbian.com

Symbian 学院• http://developer.symbian.com/main/academy/

开发者工具与 SDK• http://developer.symbian.com/main/tools/

Nokia 论坛大学区• http://forum.nokia.com/main/forum_nokia_for_universities/index.html

Page 59: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 59

Symbian 出版社的精华小册子免费小册子 (可以以 pdf 的形式下载 )• http://developer.symbian.com/main/learning/press/essential/booklets_using.jsp

• 也有翻译后的版本 http://developer.symbian.com/main/learning/press/essential/booklets_translated.jsp

Page 60: Symbian OS 介绍

介绍

Symbian OS 基础Copyright © 2001-2007 Symbian Software Ltd. 60

祝好运、愉快!