symbian 应用程序框架浅析

symbian 应用程序框架浅析

ID:9682203

大小:51.00 KB

页数:3页

时间:2018-05-05

symbian 应用程序框架浅析_第1页
symbian 应用程序框架浅析_第2页
symbian 应用程序框架浅析_第3页
资源描述:

《symbian 应用程序框架浅析》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Symbian应用程序框架浅析  S60应用程序的运行依赖于大量的OS组件,例如屏幕绘图和应用程序数据持久性等,可以直接使用OS的窗口服务器或者文件服务器即可。    应用程序核心框架类  应用程序框架由一套核心类组成,这些类是所有应用程序框架的基础。这些类封装了应用程序和所需OS服务器之间的相互作用。  第一层:CBase和CActive两个基类,其中CActive也是派生于CBase,而CActive又被第二层的CConEnv派生  第二层:包含两个基本组件:AppArc和CONE。AppArc代表应用程序架构,这些类提供了基本的应用程序结构、将系统信息提交到应用程序的机制,以及

2、使用文件服务器持久化数据。其中的类在命名时都带有前缀*Apa。CONE是控制环境的缩写,在这个组件中的类提供用于处理用户输入并创建用户界面的机制--这些类主要用于和窗口服务器进行交互,其中的类在命名时都带有前缀*Coe。这一层中的许多类都是抽象类,仅仅定义了一个API的接口。  第三层:Uikon组件。这是具有丰富功能、非抽象框架类的一般性设备无关实现,并且提供了一个在所有symbianOS上公用的UI库层。一些具体的UI控件(比如列表框和滚动条等)都可以在该层创建,这些控件有时也被称为Eikon控件。UIkon组件中的类在命名时都带有前缀*Eik。添加了一个公共的symbianOS

3、实现,和其他SymbianOSUI平台共享。  第四层:由Avkon类组成,这些类提供了核心的S60UI功能,例如菜单支持。Avkon控件的类在命名时都带有前缀*Akn。在框架上添加S60特有的实现。  第五层:针对应用程序的层,设计自己的应用程序,添加自定义应用程序实现。  以上提到的这些类简单来说就是:视图(Vieent)、应用程序(Application)、应用程序UI(ApplicationUI)。那么一个S60UI应用程序是如何用这些类来实现其有机程序呢,这个就涉及到一个应用程序框架的初始化问题。  应用程序框架初始化  必须创建下面的每个方法,才能提供最小的S60应用程序

4、:  a、框架入口:所有S60UI都实现一个全局函数E32DLL()(非UI类的全局入口函数为E32Main),当应用程序启动时,框架将首先调用该函数,该函数也称为DLL入口点,应用程序必须存在该函数。每个S60UI应用程序都是一个多态DLL。  b、新建应用程序实例:让框架调用NebianOS常见的nemp文件中指定的UID值,该值可用于确定应用程序的实例是否正在运行。如果一个应用程序正在运行,而要启动这个程序的另一个实例,这时该运行的程序就会被切换到前台,而不是重新生成一个。  d、新建文档实例:框架通过框架调用应用程序类实例的CreateDocumentL()函数获取指向新创建

5、的Document类实例的指针。通过文档实例指针,框架就可以调用文档实例的某些功能,同时文档实例也通过调用自身的Nebian的异常处理机制有关,而之所以设计成静态函数我现在也还不是很清楚)来创建自己。  e、是否装入文件:框架重新调用AppDllUid()来观察是否要从文件系统中装入一个文件。(似乎这里跟某些永久存储信息有关,目前项目还没用到这个功能,我也不知道这个该怎么用)  f、新建AppUi和Vie事件框架就可以通过窗口服务器调用Vie事件一般指程序启动、应用程序获得焦点或者选项菜单消失等等。在这里需要注意的是编程开发者并不能直接调用DraandL()函数,并传递一个参数ama

6、nd,它指明了用户所选择的命令,HandlemandL()会据此来判断不同的命令以分别调度执行。在此处还有一个必须注意的地方是如果要程序的View实例也回应用户的按键,则必须将View实例通过AppUi的AddToStackL()函数加入到AppUi实例的控件堆栈(controlstack)中。  对于上面的调用方式实现说明,个人觉得有必要再将AppUi的几个重要事件处理方法罗列一下:  HandleWsEventL()用于处理窗口服务器传递的事件,它的作12下一页——感谢阅读这篇文章,..,用使框架调用下面这些具体事件处理方法;  HandKeyEvent()用于处理用户按键事件(

7、此函数在控件堆栈为空时调用,否则框架将会调用OfferKeyEventL()函数);  HandleForegroundEventL()当应用程序切换到前台或从前台切换到后台时调用该函数,默认的实现可以处理键盘焦点的改变;  HandleSystemEventL()用于处理由窗口服务器生成的事件;  HandleApplicationSpecificEventL()用于处理自己定义的自定义事件。默认的实现可以处理颜色方案改变的通知;  Handlemand

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。