首 页 | 新 闻 | Symbian | Android| Windows Mobile | J2ME | 下载中心 | 游戏策划招聘与求职 | 购书指南 | 视频教程
您现在的位置: 开发视界 >> Symbian >> Symbian开发 >> 正文
symbian与uiq开发教程[完整版](六)
作者:未知    文章来源:loveunix.net    更新时间:2005-11-19 17:27:26
下面介绍symbian的系统结构

//=======================================================
//
// 第二部分:系统结构
//
//=======================================================
CODE

在symbian os上运行的四种软件
 应用程序
 服务
 引擎
 内核
symbian系统使用活动对象与客户-服务器对事件处理系统进行了优化
硬件资源:
 一个cpu,32位arm
 一个rom(只读存储器),里面有操作系统与内建的中间件和应用程序
 ROM盘被映射到z:盘,所有的文件都可以通过Z:盘访问。
 系统RAM.系统RAM用于两个方面,一是被当前活动的程序和系统核心使用,另一个是当成"C"盘的磁盘空间。这两个部分的大小是变化的,不可以保留某个的大小。由于RAM通常只有8MB到16MB,所以内存可能用完,因此经常出现内存越界错误或是(写文件时)磁盘已满错误
 IO设备,包括带数字笔输入的触摸屏,键盘,记忆卡(被当成D盘),rs232串口,红外口,蓝牙。
 电源,包括电池与外接电源

symbian os与pc系统的区别如下:
 资源限制:cpu太慢与太少内存
 没有硬盘,不能使用写到硬盘的虚拟内存,不能保证有足够的空间保存程序或是数据文件
 电源条件严格.


symbian软件环境如下:

server  |   server| Application|  Application | Application     Dll
     |         |            -----------------------    boundary
     |         |            |              |
     |         |            |  Enghine     |  Engine
-------------------------------------------------   Privilege
                                                             boundary
                 Kernel


kernel工作在高级别,管理机器所有硬件资源。对其它软件模块提供访问这些硬件资源的接口
其它应用程序工作在用户模式
上面如果理解普通操作系统如linux的话,那跟普通操作系统没有区别
应用程序是一个有用户界面的程序,在独立的进程中运行
这与普通操作系统也没有区别
服务是没有用户界面的程序.服务管理一个或多个资源,并提供api,让客户可以访问它的服务.服务的客户可以是一个程序或是其它服务.每个服务也运行在独立的进程空间中。
在symbian中,使用服务的形式提供类似其它操作系统上用驱动程序或是内核程序提供的功能。如文件系统的访问也是客户/服务类型的。(微内核:P)
引擎是一个应用程序中操作数据而不是与用户交互的部分.通常你可以把一个程序分成引擎部分和一个GUI部分,多部symbian内带的程序都是这样做的。
一个应用程序引擎可以是一个独立的代码模块或是一个独立的dll,或是几个dll.
引擎和应用程序间的边界是模块或dll的边界。

所以在symbian中有四个组件类型与三个边界类型。dll或是模块组件对交叉引用来说很方便。它们使系统模块化与保持封装。
权限边界对交叉引用比较费资源,但是保证系统对用户太程序隐藏内核与设备
进程边界是所有的交叉中最昂贵的,它们保证在ram中分开每个程序


CODE

可执行文件的格式
在symbian中有两种类型的可执行文件:
exe,每个程序都有一个主入口E32main()(看上面的例子),它在独立的进程中运行
dll,提供多个入口,由系统或是已存在的线程(进程)调用
有两种类型的dll,
共享库dll,为一个或多个程序提供固定的api,这些dll多数后缀是.dll,当程序启动时就被读到内存中。
多态dll,这些dll实现抽象的api,如一个打印机驱动,socket协议或是一个应用程序。它们的扩展名多不是.dll,而是.prn或.prt或.app等。它们从与dll相关的类继承,并通常只有在程序需要它们时才读入。

从技术上看起来与普通系统上动态库的静态载入与动态载入没有区别
但是从功能上看就不一样了,一种是实现某种特殊功能的,从某个相关类继承的dll,另一个是普通dll
相关文章:
安装到特定手机中要如何设定应用程序
Symbian OS v9上信息摘要算法的实现(MD5/SHA1)
symbian学习的开始
Symbian 应用软件开发、测试与S60 平台安全常见问题问答
Symbian 认证启用新 CA 颁发的认证证书常见问题问答
小试Python for Symbian
Symbian开发环境设置(Microsoft Visual Studio.Net 2003工具)已测试通过
Symbian OS Internals——Symbian OS模拟器
 

站点地图 | 加入收藏 | 联系站长 | 广告服务 |
QQ:280529124  Tel:0592-8271361 辽ICP备05021703号