background image

我们曾经向各位讲过《

Android UI

 

     

设计教程

 

 

》和《

MeeGo

 

     

设计教程

 

 

》,但是目前使用最

多的移动终端设备为

Symbian 操作系统。本文将向各位介绍一下《Symbian 开发之 UI

框架设计教程》。所谓 应用程序架构 是指应用程序框架类的集合。基于所需的

UI 设计,

应用程序可以具有稍微不同的架构,但是每种架构都有一些公共部分,称为 核心应用程序

一、先看一下

Symbian UI 设计基础

1)核心应用程序类.

◆所有的 S60 UI 应用程序都具有一些基本功能:
◆提供一个用户界面,用于显示信息并允许用户进行交互
◆响应各种用户启动的事件,比如用户选择一个菜单项
◆响应系统启动的不同事件,比如导致屏幕重绘的 window 服务器事件
◆能够保存和恢复应用程序数据
◆可以唯一性的向框架标志自身
◆向框架提供有关应用程序的描述性信息,比如图标和标题等
这些类是:视图(

View)、文档(Document)、应用程序(Application)、应用程序

UI(Application UI)。
一个程序只能有一个文档,可以有多个视图。

2)应用程序初始化

必须创建下面的每个方法,才能提供最小的

S60 应用程序:

a、所有 S60 UI 都实现一个全局函数 E32DLL(),当应用程序启动时,框架将首先调用
该函数,该函数也称为

DLL 入口点,应用程序必须存在该函数。每个 S60 UI 应用程序都

是一个多态

DLL。

b、让框架调用 NewApplication(),该函数是由 DLL 导出的唯一函数。
c、创建应用程序类的一个实例,并返回它的指针,以后框架使用该指针完成应用程序的创
建。

d、由框架调用 AppDllUid()返回应用程序的 UID。该函数必须返回在.mmp 文件中指
定的值,并且可用于确定应用程序的实例是否正在运行。

e、框架获取指向新创建 Document 类的指针,CreateDocumentL()。
f、NewL()具体去创建
g、矿见获取 AppUi 类的指针,CreateAppUiL()。
h、由 new (Eleave)CappUi()具体创建。
这样一个最简短直观的框架就创建完毕。

3)重要的 AppUi 方法:

AppUi 提供了许多方法,框架可以调用这些方法通知每个应用程序各种事件。
◆HandKeyEvent()用于处理用户按键
◆HandleForegroundEventL()当应用程序切换到前台或从前台切换到后台时调用该函
数,默认的实现可以处理键盘焦点的改变。

◆HandleSystemEventL()传递由窗口服务器生成的事件
◆HandleApplicationSpecificEventL()可以自己定义的自定义事件的通知。默认的实
现可以处理颜色方案改变的通知。

◆HandleCommandL()用于处理用户选择的菜单项