1 / 60

Symbian OS 介绍

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

uma-garza
Download Presentation

Symbian OS 介绍

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Symbian OS介绍 概述 第一部分

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

  3. 背景

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

  5. Symbian 之前 - Psion 八十年代中期——硬件 • 基于6301的位Organiser (1984) —— 14cm x 9cm, 2K RAM, 4K ROM, 8K 数据包, 6个月电池寿命! • Organiser II (1986) —— 世界上第一款严格意义上的PDA • 创建Organiser II 的各个变体 —— 一直到64k内存,4行屏幕解析度,以及扩展硬件 • 十来年总共销售50万台

  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

  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

  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

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

  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

  11. Symbian OS C++

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

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

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

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

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

  17. Python Ruby Runtimes Hardware FlashLite C++ Java Symbian OS Web Flash Python Managed code Java P.I.P.S. 开发的容易性 Symbian C++ Native code 功能及性能 其他语言支持 Symbian OS 也支持 • Java • Flash Lite • 运行时语言,如Python, Ruby, Visual Basic • OPL (直到v9)

  18. 体系结构

  19. Licensee UI Platform UI Framework Application Services Symbian OS OS Services Kernel & H/W Interface Licensee H/W Services Hardware Symbian OS 体系结构 Symbian OS 将UI与引擎和服务分离,从而允许被授权人(像Nokia)为手机开发它们自己的UI

  20. Symbian OS 体系结构 详细一点

  21. Symbian OS 体系结构 更加详细!

  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/

  23. 用户界面(UI)平台

  24. UI 平台 不同的UI平台运行在Symbian OS上 • Nokia的S60 • UIQ科技(Sony Ericsson 的一部分)的UIQ • 在日本NTT DoCoMo为FOMA™ 3G网络设计的MOAP UI 这些平台提供 • 图形用户界面(GUI)并扩展了Symbian提供的应用程序和中间件 每个平台都有不同的外观 • 支持使用该平台的手机的特性

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

  26. UI平台外观实例 Nokia S60 Sony Ericsson UIQ

  27. 课程

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

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

  30. 培训练习 现有类型: 测试你的知识回答不同的问题,例如找出代码中的错误或者解释概念 Repetition Form 对以前写好的源代码进行扩展一个小框架标有许多“可编辑”位置的,它们对单个的任务进行介绍 Exercise 更自由,更多说明不再是很多已定义好的小任务,tutorials包含了更详细的解释,以帮助你完成模块. Tutorial 真正的挑战在课程的最后,你应当承担Symbian OS项目,它将帮助你复习很多的基础,也可以进入更多高级的课题 Project

  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)

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

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

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

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

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

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

  38. 两阶段构造与对象销毁 练习本模块中,你将看见Symbian OS中两阶段构造如何工作,以及如果你不正确的实现它,会发生什么。 Repetition Form Tutorial

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

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

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

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

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

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

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

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

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

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

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

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

More Related