1 / 529

Symbian OS/C++ 移动应用 开发讲义

Symbian OS/C++ 移动应用 开发讲义. 何 锐 张锦锋 牛建伟 Niujianwei@buaa.edu.cn 北京航空航天大学计算机学院 • 分布与移动计算实验室. 主要内容. Symbian OS 概述 (1 上 ) Symbian SDK 及其开发环境 (1 上 ) Symbian 软件开发概述 (1 上 ) 内存管理 (1 下 ) Descriptors (2 上 ) 动态数组 (2 上 ) 活动对象 (2 下 ). 主要内容(续). 简单 GUI 编程 (3 上 ) 资源的使用 (3 上 )

neva
Download Presentation

Symbian OS/C++ 移动应用 开发讲义

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/C++移动应用开发讲义 何 锐 张锦锋 牛建伟 Niujianwei@buaa.edu.cn 北京航空航天大学计算机学院•分布与移动计算实验室

  2. 主要内容 • Symbian OS 概述 (1上) • Symbian SDK及其开发环境 (1上) • Symbian软件开发概述 (1上) • 内存管理 (1下) • Descriptors (2上) • 动态数组 (2上) • 活动对象 (2下) 北航分布与移动计算实验室

  3. 主要内容(续) • 简单GUI编程 (3上) • 资源的使用 (3上) • 对话框 (3下) • 视图及控件 (3下) • 中文化 (4上) • 多视图 (4上) • 文件及流操作(4下) • MMF入门 (5上) • 总结与考试 ( 5下 ) 北航分布与移动计算实验室

  4. Symbian OS 概述 北航分布与移动计算实验室

  5. 内容 • Symbian OS演变历史 • 关键特点 • 其它相关操作系统特点 • 基础概念 • 组件结构 北航分布与移动计算实验室

  6. Symbian OS 北航分布与移动计算实验室

  7. Symbian OS • 针对PDA及智能手机的,能够提供良好的软实时的操作系统 • 与之竞争的有Windows Mobile、PalmOS以及Linux,Brew • Symbian OS针对如下特点进行了优化 • 低功耗(电池供电) • 小型设备 • 长久运行、关键应用 • Symbian OS解决的问题 • 嵌入式软件 • 移动计算 • 电话 • 其他基于ROM的应用程序 北航分布与移动计算实验室

  8. 关键特点 • 主要特点: • 基于ROM • 针对电池供电 • 健壮性好 • 抢先式多任务微内核 • 基于组件 • 完全面向对象 • 因此: • 可靠性好 • 不会丢失用户数据 北航分布与移动计算实验室

  9. 通用技术 北航分布与移动计算实验室

  10. 当前的产品(S60平台) Nokia N-Gage Nokia 6630 Nokia 6670 Nokia 7650 Siemens Sx1 Panasonic X700 Nokia 7610 Nokia 6600 北航分布与移动计算实验室

  11. 当前的产品(S80和S90) Nokia 9500/9300 communicators Nokia 92xx communicators Nokia 7710 Nokia 7700 北航分布与移动计算实验室

  12. 当前的产品(UIQ) P908 P910 Motolora A1000 北航分布与移动计算实验室

  13. 北航分布与移动计算实验室

  14. 竞争者 • 平台 • Palm • Windows Mobile • RIM (BlackBerry) • Linux • 移动技术 • MIDP(J2ME) • WAP • Linux • Sim Toolkit • .NET (C#) 北航分布与移动计算实验室

  15. Windows Mobile • 最初是为比较大的设备设计的操作系统 • 优点:配置高,功能强 • 缺点:耗电大,硬件成本高 • 针对不同的设备族 • Pocket PC • Smart Phone • 封闭的环境 • MS提倡私有开发标准 • 很多的开发人员 • 易于使用 • 用户界面友好 北航分布与移动计算实验室

  16. PalmOS • 比SymbianOS还要普及一些 • 尤其是美国 • 市场表现在退步(Pocket PC) • 目前PalmOS销量不好 • 16/32位操作系统 • 第三方软件多 • 较多的开发人员 北航分布与移动计算实验室

  17. Linux • Linux在C/S模式下表现很好 • 为Intel架构的个人电脑设计 • 性能和健壮性优于Windows • 在服务器端有良好表现 • 比Symbian OS更开放 • 很容易定制 • 可以直接得到RTOS Linux • 大量专家级的开发者 • 免费使用 北航分布与移动计算实验室

  18. GEOS • GEOS是Nokia等公司内部使用的一个中低端手机操作系统,目前没有被广泛使用 • Nokia准备从GEOS过渡到Symbian平台 北航分布与移动计算实验室

  19. Symbian OS发展历史 • 1984 第一个版本-Psion Organizer II • 8位OS • 支持汇编语言和OPL(Organizer Programming Language) • 1991 Psion Series 3 • 16位Organizer(SIBO) • OS内核为EPOC • 应用程序和引擎分离 • X86 • 销售了1.5M SIBO机器 北航分布与移动计算实验室

  20. Symbian OS发展历史(续) • 1994发展称为32位可移植的操作系统 • 1996 成立了“Psion软件”公司 • 1997 第一个发布了Symbian OS版本 • 1998 Symbian公司成立: • Ericsson,Motorola,Nokia,Psion • 1999 Panasonic公司成为股东 • 销售2M Symbian平台设备 北航分布与移动计算实验室

  21. Symbian OS发展历史(续) • 2000 • Symbian OS授权Sony和Sanyo • 发布了世界上第一款Symbian智能手机, Ericsson R380 • 2001 • 许可证授权Siemens和Fujitsu • 发布Nokia 92xx • 第一款Series 60 手机 7650 • Symbian OS v6.1 北航分布与移动计算实验室

  22. Symbian OS发展历史(续) • 2002 • Siemens和Sony Ericsson变为新股东 • 许可证授权Samsung • Symbian OS v7.0发布 • Sony Ericsson发布P800 • 2003 • Symbian OS v7.0s发布 • Series 90, UIQ设备P908发布 • Samsung变为股东 • 2003前3季度销售 ~4M Symbian手机 北航分布与移动计算实验室

  23. Symbian OS发展历史(续) • 2004 • 发展势头迅猛,前景看好 • Nokia 9500发布 • LG和 Arima获得许可证 • Nokia购买了Psion 的股权 • Symbian OS v8.0发布 • 多个新新设备发布 • Motorola • Panasonic 北航分布与移动计算实验室

  24. Symbian OS授权使用者 北航分布与移动计算实验室

  25. Symbian OS股份分配 北航分布与移动计算实验室

  26. 基础概念 • 线程 • 一个线程是执行的单元。同一个进程的线程共享地址空间。调度器(schceduler)负责对线程(而不是进程)进行调度 • 进程 • 内存保护的单元。一个进程不能访问其他进程的内存空间。一个进程有一个或多个线程 • 抢先式多任务 • 线程根据它们的优先级进行调度。优先级高的线程能够抢先优先级低的线程的CPU资源 北航分布与移动计算实验室

  27. 内存地址空间分配图 北航分布与移动计算实验室

  28. 基础概念 • 上下文切换 • 当调度器在不同的线程之间进行切换时,就需要进行上下文切换。 • 将导致内存表、寄存器内容改变 • 根据线程是否属于同一个进程而耗时不同 • 活动对象 • Symbian OS用来处理异步方法调用的特殊对象 • 使得进行合作的多个线程能够更加有效的利用资源 • 堆/栈 • 线程使用的内存空间 • 堆必须显式的申请和释放 • 栈空间由OS负责管理 北航分布与移动计算实验室

  29. 基础概念 • Leave • Symbian OS的错误处理机制 • 与Trap Harness一起使用 • 与标准C++中的catch/throw机制类似 • Panic • 致命错误 • 退出应用程序 • Panics要么由OS触发,要么由一个出现了严重错误的用户线程触发,如栈溢出 北航分布与移动计算实验室

  30. Symbian OS体系结构 Symbian OS 北航分布与移动计算实验室

  31. 组件构架 北航分布与移动计算实验室

  32. 应用程序UI • 对于用户而言,Symbian OS就是一系列的视图 • Symbian应用程序UI包括: • 一个App UI对象,用户处理用户交互命令; • 由各种图形UI元素(Controls)组成的应用程序视图 (View); • 与设备无关的视图,负责将应用程序数据显示在控件中或打印出来。(可选) 北航分布与移动计算实验室

  33. 例子:Agenda视图 S90 UIQ S60 S80 北航分布与移动计算实验室

  34. App UI由GUI控件构造 • GUI系统 • Uikon Core + • Qikon on UIQ, or • Avkon on S60, or • Ckon on S80 and S90 北航分布与移动计算实验室

  35. UI例子 R380s TechView 北航分布与移动计算实验室

  36. 控件例子 TechView屏幕快照 北航分布与移动计算实验室

  37. UI与图形 • Qi/Av/Ckon提供了UI参考实现的某些功能 • 标准的EIKON是标准控件的工具集 • CONE: CONtrol Environment • Apparc: Application Architecture Component,定义了应用程序结构 北航分布与移动计算实验室

  38. GUI由图形库支持 • 图形基础 • 图形设备接口(GDI) • 设备无关 • UI图形 • 打印图形 • 所见即所得 • 字体、缩放、24位色 • 图形组件 • BITGDI:快速粘贴、缩放、旋转等 • Window Server共享屏幕 • 键盘与指针 • 保持所有应用程序的轨迹 • 发送重画请求 北航分布与移动计算实验室

  39. 数据管理 • 绝大多数的应用程序都具有分离的UI和引擎 • 引擎能够理解程序的核心算法和数据存储 • 而不知道数据的图形显示及UI • Symbian支持相同的引擎与不同的UI配合使用 • 客户/服务器的应用程序模式使得UI和引擎能够更好地分离 北航分布与移动计算实验室

  40. 支持库 • 能够被应用程序直接使用的复杂引擎 • Rich Text(ETEXT) • 文件存储工具(STORE) • 数据库工具(DBMS) • 音频 • 基本程序框架库(BAFL) • …… 北航分布与移动计算实验室

  41. Base提供了访问硬件的接口 • Symbian Base主要包含了4个部分 • Symbian Base为其他所有组件提供了基础服务和编程框架 北航分布与移动计算实验室

  42. Symbian Base • 用户可见的部分 • User Library • File Server • Kernel负责管理设备资源:CPU,内存,线程调度 • Device Drivers负责驱动硬件设备 • Device Drivers的代码包括两个部分,主要的部分在内核方,API部分在用户方 北航分布与移动计算实验室

  43. E32映象 • E32是Symbian OS的核心部分 • Kernel Executive和User Library可以看作是一个函数集合(库); • Kernel Executive运行在特权态(privileged processor state) • Kernel server也是处于特权态的线程 • User Processes是应用程序和系统服务器 北航分布与移动计算实验室

  44. 通信 • 通信是Symbian组件联系和消息传递的基础。提供了通信协议中通用的操作接口,如接收数据、发送数据、建立连接、配置网络等。 • Socket是通信的端点,Symbian提供了类似Berkley socket的socket API • Symbian还提供了例如主机名解析、服务解析、协议信息等访问方法 • 可用的协议包括IrDA,PPP,SLIP,GPRS,Bluetooth,TCP/IP以及RS232 • 通常通信是在应用程序引擎层访问的 服务器:C32,ESOCK,ETEL,NETDIAL 北航分布与移动计算实验室

  45. 移植到新设备 • 如果将系统应用到同一个系列的其他产品(如同属于S60),几乎不用修改 • 如果移植到不同的系列(S60->UIQ等),则还要修改GUI以及应用程序UI及视图 • 如果新的设备包含了新的硬件,则可能需要修改Base部分 Qikon: UIQ Avkon:S60 Ckon:S80/90 跨系列 北航分布与移动计算实验室

  46. Java • Symbian OS支持MIDP(CLDC1.1,MIDP2.0) • 及PersonalJava 北航分布与移动计算实验室

  47. Java 优缺点 • 在2006年以前所有智能手机都支持 • 广泛运行在各种手机上 • 一次编写,多处运行 • 性能和功能一直在提高 • 性能问题 • 依赖虚拟机 北航分布与移动计算实验室

  48. Java on Symbian OS • 第一个实现,1999,ER5 • JDK 1.1.4 • Personal Java, 2000, Symbian OS v6.0 • 内存占用少 • 提供了Javaphone API • J2ME,MIDP1.0, 2002, Symbian OS v7.0 • J2SE功能的一个子集 • 占用内存较少 • 提供了对MIDlet的支持 • MIDP2.0, Symbian OS V7.0s • UI 功能增强 • 安全 • 蓝牙 • 等等... 北航分布与移动计算实验室

  49. 问题 ? 北航分布与移动计算实验室

  50. 20 minutes break 北航分布与移动计算实验室

More Related