本系列文章是基于Nokia Series 60和Symbian OS技術,指導開發者在現在的Series 60移動電話終端上開發高級的移動游戲。
注意:本文檔中討論的技術路線都是以Symbian OS GT 6.1作為Series 60平臺的基本操作系統。這適用于Series 60平臺v1.x。Series 60平臺v2.0基于Symbian OS GT 7.0s。本文檔主要適用于Series 60 v1.x版,所以可能會有部分不兼容Series 60 v2.0版。
Symbian操作系統簡介
Symbian操作系統是所有Symbian OS電話共享的應用編程接口( API)技術的公共核心。 這個核心被命名為"通用技術"(generic technology,簡稱為GT),它被分成不同的版本。 GT包括一個多任務核心、通訊、數據管理和圖表中間件,低級圖形用戶界面框架和應用程序引擎。
象智能電話這樣的小型手持設備,通常是資源非常緊張的設備。 這種設備的尺寸和制造費用限制了可用的存儲器,處理速度和電池壽命。 盡管以上這些資源缺乏,但是這些設備還是需要能夠穩定運行相當長的一段時間,甚至數個月。 一旦出現資源溢出的錯誤,對于系統來說重要的事情就是返回到前一個穩定的狀態,而不失去任何重要的數據。 這使得完全地捕捉和處理每個運行錯誤對于系統和應用程序來說是非常重要的。
由于資源溢出而出現的錯誤,和所有的運行期錯誤一樣被稱為異常。 在標準的C++中,這些異常是使用try-catch-throw機制處理的,但是因為它造成了代碼長度的負面影響,所以Symbian OS提供了它自己的稱為trap harness的機制。
Symbian開發他們自己的異常處理程序的另一個原因是開發Symbian OS的時候,try - catch - throw機制還不是C++標準的一部分。trap- harness的概念是使用一個TRAP宏把可能引發異常的函數封裝起來。這個宏可用于捕獲多個函數,并且這些函數可以嵌套。萬一出現一個異常,導致異常的函數的執行就會通過User::Leave函數終止,相當于標準的C++異常處理中的throw。這被稱為一個leave(離開),它將返回程序執行到結束的TRAP宏,在那里相應的恢復動作可以被執行。
Symbian OS還提供一個工具,以便清除異常。一個cleanupstack被用于引用只被一個自動變量引用,并且如果出現一個leave的時候需要被釋放的對象。TRAP宏將銷毀cleanupstack中自動變量分配的內存。
Symbian OS提供一個用于在單一線程之內非搶先式多任務處理技術的系統。這個包括活動對象和活動調度程序的系統的設計目標是降低運行時間成本和解決與優先計劃線程沖突的同步問題。Symbian OS中的每個應用程序由一個活動調度程序和一個或多個活動對象組成。這個調度程序封裝一個需要異步的服務和依照它們的優先權安排活動對象的等待循環?;顒訉ο蠓庋b實際的異步服務。
新聞熱點
疑難解答