Symbian UI 架構(gòu)分類
Symbian OS的UI架構(gòu)主要分成三種:
1. 傳統(tǒng)的Symbian系統(tǒng)架構(gòu)
2. 基于對話框的架構(gòu)
3. 視圖架構(gòu)
下面將分開討論三種架構(gòu)的特點和優(yōu)缺點:
1.傳統(tǒng)的Symbian系統(tǒng)架構(gòu)
如圖所示程序中框架類主要繼承自Avkon Framework的CAknApplication, CAknDocument和CAknAppui,另外容器類繼承自CONE的CCoeControl。
使用Carbide C++建立一個包含UI的工程,默認的配置中所使用的架構(gòu)就是這個傳統(tǒng)的Symbian系統(tǒng)架構(gòu)。
其中,CAknApplication是S60應用程序的基類,主要存儲應用程序的屬性,比如,可以通過重寫OpenIniFileLC()的方式存儲.ini配置文件等。
CAknDocument為文檔類的基類。
CAknAppUi負責處理各種事件,比如HandleCommandL()。
在CMyContainer中可以包含一個或多個控制控件,實現(xiàn)界面的交互,并負責窗體描畫事件。
優(yōu)點是:
比較簡單和清楚的框架,并且可以加入自定義的控制和交互,比較靈活。
缺點是:
沒有系統(tǒng)提供的視圖的管理方式。
在UIQ中與上述類對應的類是:
CQikApplication,CQikDocument,CQikAppUi
2. 基于對話框的架構(gòu)
這種架構(gòu)和***種架構(gòu)的區(qū)別是,使用了一個非模式窗體類CAknDialog來作為主窗體,窗體的設(shè)計可以在資源文件中定義,并且可以在不重新編譯C++程序的前提下,通過改變資源文件的定義的方式,重新設(shè)計窗體。在實踐中,這種架構(gòu)的應用并不多。
3. 視圖架構(gòu)
這種架構(gòu)的應用最為廣泛,在SDK中也有一個叫MyView的例子程序,結(jié)合上圖仔細讀懂這個例子,應該就會清楚很多。
與前兩種架構(gòu)所不同的是,視圖類繼承自CAknView,并且可以在運行時生成和添加多個視圖,并由系統(tǒng)所提供的ViewServer進行管理,在制作稍微復雜一些,尤其是畫面比較多的應用程序時,非常有用。但是在Carbide C++中并沒有提供默認的工程向?qū)0?,不過可以自己制作一個以方便將來使用。
需要注意的是,與前兩種架構(gòu)不同的是,CMyViewAppUi繼承自CAknViewAppUi,他的功能同樣是負責接收各種事件,并進行處理,而且可以在這個類中進行各種View的切換和更新激活視圖。每個View有自己獨立的ID,CAknViewAppUi利用這個ID在 ViewServer中注冊相關(guān)的窗體,并調(diào)用不同的窗體,這種架構(gòu)更面向?qū)ο螅⑶颐總€視圖中封裝了屬于自己的數(shù)據(jù)和方法,實現(xiàn)了更靈活的應用。
【編輯推薦】