Symbian应用程序框架共分为4层,第一层是应用程序架构,它提供了基本的应用程序结构、系统信息的处理以及数据持久化方面的内容;第二层是Symbian的Uikon组件层,提供了Symbian平台通用的UI组件库;第三层针对不同的界面,提供了特定的实现方式,例如Series 60 下的Avkon层,对Uikon层的通用界面组件进行了特定的实现;第四层是针对应用程序的层,由程序员对第三层的组件进行派生,实现特定的应用程序的实现。
Symbian应用程序的架构类似于MFC的架构,其基本部分由4个基本类组成。以Series 60为例,这四个类分别由 CAknApplication、CAknDocument、CAknAppUI、CCoeControl派生而来。在Series 60第三版之前的版本,每个应用程序都是作为一个DLL存在的。入口点是 GLDEF_C TInt E32Dll( TDllReason ),返回一个KErrNone。然后框架调用 NewApplication( ),返回一个指向当前应用程序的指针,之后调用CreateDocumentL( )创建一个文档类的对象。文档类通过调用CreateAppUiL( )创建用户界面。UI类在二次构造中实例化一个容器。
UI类中有两个比较重要的函数,一个是HandelCommandL( ),用于处理菜单事件;还有一个是HandelKeyEventL( ),用于处理键盘事件。
Symbian也支持多视图,视图类从CAknView派生而来,也具有上述两个函数,用于在视图中处理相应的事件。同时Symbian还有一种基于对话框的架构。程序员可以根据需要而选择不同的应用程序架构。