应用程序架构(Application Framework)
1、S60应用程序架构
S60平台在底层Uikon应用程序框架上添加了一个用户界面层(Avkon)。Avkon提供了一套特别为S60设计的UI组件和应用程序框架。
1.1、S60应用程序结构
1.1.1、模型(Model)—视图(View)—控制器(Controller)模式(MVC)
MVC模式在S60 UI应用程序中是一个通用的设计模式。应用程序被分离成不同的逻辑部分;它们包装了应用程序的不同方面。每个部分都用特殊的任务。MVC模式分离了应用程序设计,使模型(Model)的代码得到重用。
模型(Model):
-
封装了应用程序的状态和功能。
-
通知视图(View)进行切换。
-
响应来自视图(View)的状态查询。
视图(View):
-
呈现模型 (View)。
-
接收来自模型 (Model)的视图更新通知。
-
将用户的输入发送给控制器(Controller)。
控制器(Controller):
-
定义了应用程序的行为。
-
将用户操作与模型 (Model)更新相映射。
-
响应视图 (View)切换请求。
1.1.2、S60应用程序结构和MVC
S60应用程序通常分离成两大部分,引擎(Engine)和UI。应用程序引擎,也就是应用程序模型,用来处理逻辑运算和数据结构表示。应用程序UI,用来在屏幕上显示应用程序的数据和全部的行为。在基于S60应用程序框架下,实现引擎和UI分离模式有三种方式:传统的Symbian OS应用程序构架、对话框构架、视图切换构架。不同的构架只反映UI的实现,应用程序类(CAknApplication继承类)和文档类(CAknDocument)并没有区别。
应用程序UI的组成:
CAknApplication继承类:
-
应用程序框架的启动对象。
-
定义了应用程序的性质。
-
创建文档(CAknDocument)类。
CAknDocument继承类:
-
创建AppUi(Controller)。
-
提供了应用程序数据的持久化功能。
CAknAppUi或CAknViewAppUi继承类(Controller):
-
基类的选择依赖于应用程序架构。
-
处理应用程序事件。
-
控制应用程序模型(Model)。
-
负责切换视图 (View)。