symbian开发培训-symbian系统简介

上传人:aa****6 文档编号:48655697 上传时间:2018-07-19 格式:PPT 页数:36 大小:269KB
返回 下载 相关 举报
symbian开发培训-symbian系统简介_第1页
第1页 / 共36页
symbian开发培训-symbian系统简介_第2页
第2页 / 共36页
symbian开发培训-symbian系统简介_第3页
第3页 / 共36页
symbian开发培训-symbian系统简介_第4页
第4页 / 共36页
symbian开发培训-symbian系统简介_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《symbian开发培训-symbian系统简介》由会员分享,可在线阅读,更多相关《symbian开发培训-symbian系统简介(36页珍藏版)》请在金锄头文库上搜索。

1、Symbian系统简介概述Symbian系统结构 Symbian线程 Symbian内存管理 Window Server Symbian系统性能优化 S60版本差异分析Symbian系统结构EKA2介绍 Symbian系统模块 Symbian硬件模块EKA2简史EPOC8操作系统 1984年第一款Psion掌上电脑诞生 基于8位处理器 封闭式操作系统 EPOC16 1990年开发完成 支持Intel8086 CPU 提供了基于C语言的软件接口 带来了诸多问题EKA2简史(2)EKA1 EPOC32_1 1997年Psion S5掌上电脑 32位操作系统 设计中考虑到了硬件平台移植性 硬件移植性

2、问题未得到根本解决 新硬件的支持必须对内核代码从新编译 EKA2 2003年开发完成并被手机厂商应用 将硬件平台特性与内核彻底分离EKA2特性系统模块化 单用户系统 实际硬件几乎一致的模拟器 支持单核移动通讯平台 更好的内存管理 更灵活的设备驱动程序结构Symbian系统模块Nanokernel 初始内核 提供最基本的功能来启动GSM信号栈 硬件中断派发者 Symbian OS内核 线程与进程管理 动态库调用 等等、Symbian系统模块(2)ASSP和variant 硬件驱动 LDD: 逻辑硬件驱动程序 PDD: 物理硬件驱动程序 Extensions EUSER File Server W

3、indow ServerSymbian硬件模块Baseband Processor(BP) 手机modem管理 SIM卡管理 通话相关声音控制 Application Processor(AP) Symbian系统功能部分Symbian硬件模块(2)Symbian硬件(数据存储)RAM : 读写最快,成本高 SDRAM:低电耗,速度是RAM的1/4 Flash:成本低,读写相对较慢 NOR Flash NAND Flash线程与进程线程 执行(Execution)的最小单位 时间分片的受载体 进程 线程的集合 所属线程共享同段物理内存和其他系统资源用户模式线程iUserStackRunAddr

4、essiSupervisorStackNano-Thread用户栈内核栈Symbian线程分类初始线程 系统启动时第一个创建的线程 在系统中是唯一的 内核线程 只存在于内核模式 用户线程 大部分时间在用户模式线程创建RThread:Creat - DThread:Creat(SThreadInfo TInt iType; TThreadFunction iFunction; TAny* iPtr; TAny* iSupervisorStack; TInt iSupervisorStackSize; TAny* iUserStack; TInt iUserStackSize; TInt iIni

5、tialThreadPriority; TPtrC iName; TInt iTotalSize; ;线程状态Created Dead Ready WaitSemaphore WaitSemaphoreSuspended WaitMutex WaitMutexSuspended HoldMutexPendingSymbian线程-Cleanup队列每个线程拥有一个Cleanup队列 class TThreadCleanup : public TPriListLink public: IMPORT_C TThreadCleanup(); void ChangePriority(TInt aNew

6、Priority); IMPORT_C void Remove(); virtual void Cleanup()=0; public: DThread* iThread; ;线程同步对象信号量(Semaphore) 标准信号量机制 Wait:计数器减,如果计数器为负,线程等待 Signal:计数器加,如果不为负,下一个等待线 程开始运行 互斥(Mutex) 用于多个线程共享资源 可多次复用线程同步对象(2)Condition Variable 用于等待某共享资源达到某一条件时触发 须与互斥联合使用 避免Polling, 提高效率 RConVar类线程同步对象(3)Condition Vari

7、ables 实例: 发送线程与接受线程共享消息队列 发送线程在队列满时阻塞 接收线程在消息空时阻塞 mutex.Wait(); while(queue.empty()condvar.Wait(mutex); mutex.Signal线程间通讯ClientServer 消息队列(Message Queues) 异步消息传递机制 Publish/Subscribe 用户层和内核层数据交互机制 Shared Chunk 线程间内存共享Publish/SubscribeIdentityTypeSecurity1 WORD/多字节categorykey写读PublisherSubscriberPubli

8、sherTFileName n; RProcess().Filename(n); TInt r=RProperty:Set(KMyPropertyCat,EMyPropertyName,n); User:LeaveIfError(r); / retrieve the first 10 characters of the name value TBuf name; r=RProperty:Get(KMyPropertyCat,EMyPropertyName,name); if (r!=KErrOverflow) User:LeaveIfError(r); / retrieve and publi

9、sh a new value using the attached counter / property TInt count; r=counter.Get(count); if (r=KErrNone) r=counter.Set(+count); User:LeaveIfError(r);Subscribervoid CPropertyWatch:RunL() / resubscribe before processing new value to prevent / missing updates iProperty.Subscribe(iStatus); SetActive(); /

10、property updated, get new value TFileName n; if (iProperty.Get(n)=KErrNotFound) / property deleted, do necessary actions here. NameDeleted(); else / use new value . RHeap简单的内存分配实现 在一块线形内存区域里分块管理 内存分配与释放算法简单,但效率不是最 好 有内存碎片的问题,导致效率下降Window Server两大功能 屏幕显示管理 系统事件管理Window TreeRoot Window 树的起点 每个Screen D

11、evice都会有一个 Group Window 窗口分组的起始节点 不直接参与显示 Top Client Window Client WindowsWindow类Direct screen access绘制不经过Window Server 有可能污染屏幕上其他的窗口 CDirectScreenAccess实例效率优化优化目标 程序自身执行速度 程序对外部事件的响应速度 优化方法 避免小循环 优化通用代码 减少小调用 线程优先级调整 内存管理优化避免小循环TInt trivial_checksum(TInt8* aBlock, TInt aLen) TInt i=0; TInt8* j; for

12、 (j=aBlock; jaBlock+aLen; j+)i+=*j; return i; 慢避免小循环TInt trivial_checksum_unrolled(TInt8* aBlock, TInt aLen) TInt i=0; TInt8* j, endptr; endptr=aBlock+aLen; for (j=aBlock; jendptr; ) if (jendptr) i+=*j+; else break; if (jendptr) i+=*j+; else break; if (jendptr) i+=*j+; else break; if (jendptr) i+=*j

13、+; else break; Return 1; 快线程优先级调整将执行代码分段处理 常用或耗时的任务调高优先级 将单线程改为多线程处理 以空间换时间内存管理优化方法对重要执行代码避免进行动态内存分配, 改以程序启动时分配静态内存 替换RHeap算法 固定大小内存块,提高分配速度S60版本差异分析Symbian VersionNew FeatureFlash LiteWeb RuntimeS60 v5.0Symbian 9.4Home Screen Publish API, Sensor API, new controls for Touch Screen, touch feedback AP

14、IFlash 3.0 + new ActionScript for native service accessSupport widget + JavaScript extension to access S60 services(Calendar, contacts, Logs and messaging)S60 v3.0Symbian 9.1SIP,DRM and IM API, Open C and Open C+, Location APIs, Web Services API, OMA DRM v2.0, OMA Data Synchronization 1.2, Light API

15、, Bluetooth 1.2, Find Item API, Exchangeable Image File API.Flash Lite 1.1Web Browser for S60 is an optionS60 v3.0 FP1Symbian 9.2OCR, OpenGL V1.1, FOTA, Nokia Push to Talk, Gallary Content Listing API, Central Repository Notification Handler API, Profile Engine API, Screen Mode API, Telnet API, App Framework Animation APIFlash Lite 2.0Web browser becoming standard browserS60 v3.0 FP2Symbian 9.3Seamless connection transition, A unified message editor, Connection Setting and its UI API, Version Infor APIFlash Lite

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号