Symbian的体系架构小节

来源:互联网 发布:公司业务员定位软件 编辑:程序博客网 时间:2024/05/16 11:42

 Application、Document、AppUi、ViewApplication属于应用程序的启动对象.

CWinApp类,它定义了应用程序的属性,这个类也创建文档。本应用类的基类就是

CAknApplication。
Document是做为程序用来存储数据用的,一个应用程序必须有一个Document文档

类的实例,可能是用来被加载AppUi的唯一要求,这个类的基类是CAknDocument.

AppUi,负责处理与应用有关的事件,比如说是options菜单选项、文件的打开和

关闭等。

注意它将图形绘制和基于屏幕的交互操作委派给自己所拥有的Views,也负责这些

views之间的切换。AppUi的基类是CAknAppUi或者CAknViewAppUi.

比较复杂点的是View,它主要是负责显示屏幕上那些可以与用户交互的数据,并

且把用户的操作反馈给AppUi,这个正如上面所说的,是处理与应用有关的事件。
view可以继承自CCoeControl或CAknDialog或者是CAknView,看出来没有,三种基

本结构view都是唱主角的。这个很重要,反正显示的任务就交给它了,甭管是传

统、对话框还是视图结构。

应用程序外观,它可以分为三种体系结构:传统的symbianOS控制体系结构、基于

对话框的体系结构、视图体系结构。运用什么样的界面取决于程序和界面布局的

需要。只是不管你使用哪种,都是从一个基类继承而来的,就好象是CView一样。
SymbianOS应用程序是在CCoeControl类的基础上派生出我们自己的view controls

,这些都存放在应用程序的control stack中,也就是我们应用程序的视图。这些

controls会根据应用程序的需要来创建释放或显示隐藏,以产生相应的操作。
如果主体应用是对话框,那我们更应该使用这样的体系结构,使用dialogs的好处

是我们光可以靠改变resource文件来修改内容和布局,而不需要重新编译那c++代

码。
使用view的应用程序每次只能有一个活动的view,当另一个view要激活时,当前

的view就要被释放。当一个view被释放后,所以的菜单,对话框以及包含的应用

都将被关闭。每个view都被当作一个应用UI对待,它必须提供一个Id() 函数以便

为系统所标识,它也要重载DoActivateL(), DoDeactivate

(),HandleForegroundEventL(),HandlCommandL(),HandleStatusPaneSizeChange

()函数以处理各种事件。

原创粉丝点击