WEB开发网
开发学院手机开发Symbian 开发 Symbian S60 基本程序的框架 阅读

Symbian S60 基本程序的框架

 2010-05-31 20:02:00 来源:WEB开发网   
核心提示:本文主要介绍了Sybmian S60基本程序的框架,这里详细阐述了当程序运行时,Symbian S60 基本程序的框架,发生在各对象之间的交互顺序,下面就来剖析一个典型的hello world框架,我们在设计程序之前必须对它的框架有更清晰的了解,各类之间的关系也需更明确的理解,1.下图显示了一个标准应用程序所使用的类的

本文主要介绍了Sybmian S60基本程序的框架,这里详细阐述了当程序运行时,发生在各对象之间的交互顺序。

下面就来剖析一个典型的hello world框架。

1.下图显示了一个标准应用程序所使用的类的家族图

2.这里详细阐述了当程序运行以及用户选择菜单选项时,发生在各对象之间的交互顺序。下面做成了一个图,按顺序进行了逐一的阐释。

3.下面就图上标注的消息来一一说明:

1、应用程序启动,框架装入应用程序DLL,E32Dll method被调用。

2-3、框架调用函数NewApplication,这里生成了一个HelloWorldBasicApplication类的实例,并返回一个指向它的指针。接下来框架会使用这个指针来完成程序的构造。

4、框架调用AppDllUid以获得实际程序的UID,这个UID做什么用的那,例如,如果一个程序正在运行,而要启动这个程序的另一个实例,这时该运行的程序就会被切换到前台,而不是重新生成一个。

5- 8、框架在调用CHelloWorldBasicApplication对象的CreateDocumentL函数,这就生成了一个应用程序文档并返回一个指向它的指针。从而使得框架可以直接调用Document的某些功能。而文档对象也通过调用自己的静态函数NewL获得创建。

9、框架调用AppDllUid,来观察是否要从文件系统中装入一个文件。这里的示例不需要永久存储某些信息,因此不需要与之相关的东西。

10-11、框架调用文档对象的CreateAppUi方法,从而生成了一个App UI对象并返回一个指向它的指针。

12、框架通过调用App UI对象的ContructL函数来完成其构造,事实上在这里完成了App UI想做的所有初始化。

13、ContructL函数首先调用的是App UI基类的BaseContructL函数,这里处理了一些相关事宜,如读入一个与该程序相关的资源文件。

14-16、AppUi调用了AppView类的NewL函数来生成其实例,这里也是用的双重构造。

17、框架调用了Draw函数,怎么调用的还不是因为它从Application->Document->Ui->View不管是直接拥有还是间接拥有,framework到现在都有了无限的调度权利,呵呵。这样调用Draw后就绘制了view。

18-20、无论用户何时选择一个菜单选项,HandleCommandL都被框架所调用,并传递一个参数aCommand,它指明了用户所选择的命令。在这里示例中App UI生成了一个Information note,并显示了它。

4.总结

本章节所介绍的carbide c++的基本结构,我们在设计程序之前必须对它的框架有更清晰的了解,各类之间的关系也需更明确的理解,这需要我们多读代码以熟悉框架。

Tags:Symbian 基本 程序

编辑录入:coldstar [复制链接] [打 印]
赞助商链接