快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

优发国际 干什么的:Symbian 应用程序框架浅析



S60利用法度榜样的运行依附于大年夜量的OS组件,例如屏幕绘图和利用法度榜样数据持久性等,可以直接应用OS的窗口办事器或者文件办事器即可。

利用法度榜样核心优发国际 干什么的框架类

利用法度榜样框架由一套核心类组成,这些类是所有利用法度榜样框架的根基。这些类封装了利用法度榜样和所需OS办事器之间的互相感化。

第一层:CBase和CActive两个基类,此中CActive也是派生于CBase,而CActive又被第二层的CConEnv派生

第二层:包孕两个基础组件:AppArc和CONE。AppArc代表“利用法度榜样架构”,这些类供给了基础的利用法度榜样布局、将系统信息提交到利用法度榜样的机制,以及应用文件办事器持久化数据。此中的类在命名时都带有前缀“*Apa”。CONE是节制情况的缩写,在优发国际 干什么的这个组件中的类供给用于处置惩罚用户输入并创建用户界面的机制--这些类主要用于和窗口办事器进行交互,此中的类在命名时都带有前缀“*Coe”。这一层中的许多类都是抽象类,仅仅定义了一个API的接口。

第三层:Uikon组件。这是具有富厚功能、非抽象框架类的一样平常性设备无关实现,并且供给了一个在所有symbian OS上公用的UI库层。一些详细的UI控件(比如列表框和滚动条等)都可以在该层创建,这些控件无意偶尔也被称为Eikon控件。UIkon组件中的类在命名时都带有前缀“*Eik”。添加了一个公共的symbian OS实现,和其他Symbian OS UI平台共享。

第四层:由Avkon类组成,这些类供给了核心的S60 UI功能,例如菜单支持。Avkon控件的类在命名时都带有前缀“*Akn”。在框架上添加S60特有的实现。

第五层:针对利用法度榜样的层,设计自己的利用法度榜样,添加自定义利用法度榜样实现。

以上提到的这些类简单来说便是:视图(View)、文档(Document)、利用法度榜样(Application)、利用法度榜样UI(Application UI)。那么一个S60 UI利用法度榜样是若何用这些类来实现其有机法度榜样呢,这个就涉及到一个利用法度榜样框架的初始化问题。

利用法度榜样框架初始化

必须创建下面的每个措施,才能供给最小的S60利用法度榜样:

a、框架进口:所有S60 UI都实现一个全局函数E32DLL()(非UI类的全局进口函数为E32Main),当利用法度榜样启动时,框架将首先调用该函数,该函数也称为DLL进口点,利用法度榜样必须存在该函数。每个S60 UI 利用法度榜样都是一个多态DLL。

b、新建利用法度榜样实例:让框架调用NewApplication()优发国际 干什么的,该函数是由DLL导出的独一函数,认真创建利用法度榜样类优发国际 干什么的的一个实例,并返回它的指针,今后框架应用该指针完成利用法度榜样的创建。这里在堆上创建利用法度榜样实例应用的是“new”措施而不是Symbian OS常见的“new (ELeave)”措施,这是由于TRAP harness(陷阱捕捉)这时还没有创立。假如系统不能为新的实例分配内存,那返回的指针便是NULL,利用法度榜样框架能够反省到并处置惩罚这个问题。

c、返回UID:由框架调用AppDllUid()返回利用法度榜样的UID。该函数必须返回在.mmp文件中指定的UID值,该值可用于确定利用法度榜样的实例是否正在运行。假如一个利用法度优发国际 干什么的榜样正在运行,而要启动这个法度榜样的另一个实例,这时该运行的法度榜样就会被切换到前台,而不是从新天生一个。

d、新建文档实例:框架经由过程框架调用利用法度榜样类实例的CreateDocumentL()函数获取指向新创建的Document类实例的指针。经由过程文档实例指针,框架就可以调用文档实例的某些功能,同时文档实例也经由过程调用自身的NewL()和NewLC()双重静态构造函数(为什么是双重构造,这跟Symbian的非常处置惩罚机制有关,而之以是设计成静态函数我现在也还不是很清楚)来创建自己。

e、是否装入文件:框架从新调用AppDllUid()来察看是否要从文件系统中装入一个文件。(彷佛这里跟某些永远存储信息有关,今朝项目还没用到这个功能,我也不知道这个该怎么用)

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: