Symbian UI 架构分类
2009-03-30 18:22
302 查看
Symbian OS的UI架构主要分成三种:
1. 传统的Symbian系统架构
2. 基于对话框的架构
3. 视图架构
下面将分开讨论三种架构的特点和优缺点:
1.传统的Symbian系统架构
如图所示程序中框架类主要继承自Avkon Framework的CAknApplication, CAknDocument和CAknAppui,另外容器类继承自CONE的CCoeControl。
使用Carbide C++建立一个包含UI的工程,默认的配置中所使用的架构就是这个传统的Symbian系统架构。
其中,CAknApplication是S60应用程序的基类,主要存储应用程序的属性,比如,可以通过重写OpenIniFileLC()的方式存储.ini配置文件等。
CAknDocument为文档类的基类。
CAknAppUi负责处理各种事件,比如HandleCommandL()。
在CMyContainer中可以包含一个或多个控制控件,实现界面的交互,并负责窗体描画事件。
优点是:
比较简单和清楚的框架,并且可以加入自定义的控制和交互,比较灵活。
缺点是:
没有系统提供的视图的管理方式。
在UIQ中与上述类对应的类是:
CQikApplication,CQikDocument,CQikAppUi
2. 基于对话框的架构
这种架构和第一种架构的区别是,使用了一个非模式窗体类CAknDialog来作为主窗体,窗体的设计可以在资源文件中定义,并且可以在不重新编译C++程序的前提下,通过改变资源文件的定义的方式,重新设计窗体。在实践中,这种架构的应用并不多。
3. 视图架构
这种架构的应用最为广泛,在SDK中也有一个叫MyView的例子程序,结合上图仔细读懂这个例子,应该就会清楚很多。
与前两种架构所不同的是,视图类继承自CAknView,并且可以在运行时生成和添加多个视图,并由系统所提供的ViewServer进行管理,在制作稍微复杂一些,尤其是画面比较多的应用程序时,非常有用。但是在Carbide C++中并没有提供默认的工程向导模板,不过可以自己制作一个以方便将来使用。
需要注意的是,与前两种架构不同的是,CMyViewAppUi继承自CAknViewAppUi,他的功能同样是负责接收各种事件,并进行处理,而且可以在这个类中进行各种View的切换和更新激活视图。每个View有自己独立的ID,CAknViewAppUi利用这个ID在ViewServer中注册相关的窗体,并调用不同的窗体,这种架构更面向对象,并且每个视图中封装了属于自己的数据和方法,实现了更灵活的应用。
1. 传统的Symbian系统架构
2. 基于对话框的架构
3. 视图架构
下面将分开讨论三种架构的特点和优缺点:
1.传统的Symbian系统架构
如图所示程序中框架类主要继承自Avkon Framework的CAknApplication, CAknDocument和CAknAppui,另外容器类继承自CONE的CCoeControl。
使用Carbide C++建立一个包含UI的工程,默认的配置中所使用的架构就是这个传统的Symbian系统架构。
其中,CAknApplication是S60应用程序的基类,主要存储应用程序的属性,比如,可以通过重写OpenIniFileLC()的方式存储.ini配置文件等。
CAknDocument为文档类的基类。
CAknAppUi负责处理各种事件,比如HandleCommandL()。
在CMyContainer中可以包含一个或多个控制控件,实现界面的交互,并负责窗体描画事件。
优点是:
比较简单和清楚的框架,并且可以加入自定义的控制和交互,比较灵活。
缺点是:
没有系统提供的视图的管理方式。
在UIQ中与上述类对应的类是:
CQikApplication,CQikDocument,CQikAppUi
2. 基于对话框的架构
这种架构和第一种架构的区别是,使用了一个非模式窗体类CAknDialog来作为主窗体,窗体的设计可以在资源文件中定义,并且可以在不重新编译C++程序的前提下,通过改变资源文件的定义的方式,重新设计窗体。在实践中,这种架构的应用并不多。
3. 视图架构
这种架构的应用最为广泛,在SDK中也有一个叫MyView的例子程序,结合上图仔细读懂这个例子,应该就会清楚很多。
与前两种架构所不同的是,视图类继承自CAknView,并且可以在运行时生成和添加多个视图,并由系统所提供的ViewServer进行管理,在制作稍微复杂一些,尤其是画面比较多的应用程序时,非常有用。但是在Carbide C++中并没有提供默认的工程向导模板,不过可以自己制作一个以方便将来使用。
需要注意的是,与前两种架构不同的是,CMyViewAppUi继承自CAknViewAppUi,他的功能同样是负责接收各种事件,并进行处理,而且可以在这个类中进行各种View的切换和更新激活视图。每个View有自己独立的ID,CAknViewAppUi利用这个ID在ViewServer中注册相关的窗体,并调用不同的窗体,这种架构更面向对象,并且每个视图中封装了属于自己的数据和方法,实现了更灵活的应用。
相关文章推荐
- Symbian应用程序UI架构的设计方法
- 【转】Symbian UI 架构
- 软件架构分类(转载)
- Symbian S60 5th 切换程序UI方向为横屏或竖屏
- Model/View框架总体架构 分类: QT学习实践 2015-05-11 22:05 34人阅读 评论(0) 收藏
- 【unity】深入剖析NGUI的游戏UI架构
- 转 Unity3D-深入剖析NGUI的游戏UI架构
- 大数据架构和模式(一)大数据分类和架构简介 大数据架构和模式(二)如何知道一个大数据解决方案是否适合您的组织
- Android进程等级分类、UI线程操作方式
- JEECG V3.0版本 (工作流在线定义+UI快速开发库+代码生成器) 全新架构技术,漂亮的界面+智能代码生成+智能工作流
- Unity3D-深入剖析NGUI的游戏UI架构 --主要讲了UIWiget,UIDrawCall,UINode,UIPanel
- Eclipse插件开发系列二-应用界面(UI)架构
- Symbian上往UI框架应用程序发送消息
- Symbian 实现基于传统架构场景切换动画
- Symbian应用程序常用架构(来自风生水起)
- UIResponder【响应】及其分类属性和方法
- 知识管理系统中知识分类架构的作用与创建原则
- 转:谈谈UI架构设计的演化
- iOS仿微信联系人界面中联系人按姓名首字母分类UILocalizedIndexedCollation
- iOS项目的架构分类