Symbian和C++ SDK開發入門之概述
我們假定你已經安裝了Series 60軟件開發工具包(SDK),并安裝了自己選擇的集成開發環境(IDE)。這兩項安裝都非常容易。
本文的主題包括:
開發過程概述——在模擬器或目標設備上定義、建立和運行Series 60項目過程的詳細說明,還有很多IDE的指南,以及開發者可以使用的編譯選項。
Series 60模擬器——Series 60模擬器的特性和布局,同時包含了調試版本和發放版本。它包含了模擬器和真實的Series 60設備之間的相似性和不同點。
在模擬器上建立程序——如何使用不同廠商的IDE和PC命令提示符為模擬器建立HelloWorld項目。
運行模擬器-——啟動模擬器的多種方法,以及如何定位和運行示例HelloWorld應用程序。
在目標設備上建立程序——如何為Series 60設備建立HelloWorld示例應用程序,把它編譯為ARM二進制可執行文件。
在目標設備上部署程序——如何把應用程序的多個組件打包,選擇某種方法把它傳輸到Series 60設備上,接下來如何定位并執行它。
開發過程的一步一步的概述將為你演示基本的步驟。這是使用Series 60 C++程序建立工具和多種IDE的快速指導。你會看到如何為Series 60模擬器建立和運行“Hello World”應用程序,以及如何在目標設備上建立、部署和運行該應用程序。本文提供了建立和運行HelloWorld示例的所有信息。
Series 60 C++軟件開發工具包(SDK)
Symbian OS廣泛地應用于智能電話平臺,例如Series 60、Series 80和Series 90就是三種來自Nokia和UIQ(UIQ技術公司的UI平臺)的UI平臺。
Series 60 SDK建立在Symbian公司發布的Symbian OS C++ SDK的某種版本之上。SDK包含了大量的工具、API、類庫和文檔,它允許你開發新的應用程序。
作為開發人員,你可能需要使用Series 60 SDK的多個版本的(甚至來自于不同的Symbian OS UI平臺的SDK)。最重要的問題是為你選擇的Series 60產品選擇正確的SDK版本。
Nokia或Series 60獲得許可發布了用于Series 60平臺特定版本開發的SDK。也就是說,每個Series 60產品都是基于特定平臺版本的,SDK版本被定制成在某個平臺版本上開發。特定的SDK版本也可能適合前面版本的平臺。這種“向后兼容性”依賴于用作版本基礎的Symbian OS版本、應用程序開發者使用的API、以及不同的平臺版本之間的API所發生的改變。特殊的獲得許可者也可能引入的產品專用的API,以允許開發者訪問它們的Series 60與其它的產品不同的特性。例如,Siemens SX1智能電話包含了FM收音機,因此相應的SDK可以包含“附加的”API來維護收音機。為了***化不同產品之間的兼容性,你可能希望避免使用這類產品專用的API。你甚至會選擇限制對通用API的使用,只使用某種平臺版本的選定范圍的通用的、不會發生變化的API。
使用多個SDK
使用一個Symbian OS SDK非常容易,而且安裝過程會使它立即可用。但是,開發者通常需要使用Series 60的多個不同版本的SDK,甚至于不同用戶界面平臺的SDK。你可以把多個SDK安裝在開發的PC上,對于在哪兒安裝它們、如何選擇使用作出一些限制。
開發過程概述
SDK提供了基于PC平臺的模擬器,因此大多數開發和測試操作都可以在沒有目標硬件設備的情況下完成。我們可以為模擬器和目標硬件設備建立不同的調試(debug)或發布(release)版本的Series 60項目可執行文件(盡管目前目標設備上的調試版本還有一些限制)。此外,為目標設備進行編譯的時候,還可以建立不同二進制格式(例如ARMI、ARM4 和Thumb)的可執行代碼。編譯和鏈接的過程可以使用命令行工具或在多種IDE中進行。本文談論到的IDE包括微軟Visual C++ 6、Metrowerks CodeWarrior、Borland C++Builder 6移動版和Borland C++BuilderX移動版。
Symbian設計了一種用平臺無關的(platform-neutral)方式描述開發項目的方法。在Symbian中會建立兩個全局文件(projectname.mmp和bld.inf),其中projectname是將要開發的組件或應用程序的名稱(示例項目中是 HelloWorld)。這兩個文件可以作為任何建立應用程序選項、IDE和平臺的出發點。
bld.inf指定了將要建立的所有項目組件的名稱,并且每個組件都在自己的.mmp文件中說明。這兩個文件都是純文本的,通常你只擁有一個.mmp 文件,它定義了將要建立的應用程序。如果項目包含多個組件,例如包含應用程序本身和特定的函數庫,那么每個組件都將擁有自己的.mmp文件。每個程序庫和應用程序都有一個.mmp文件,并且每個文件名都列舉在項目的bld.inf文件中。
在HelloWorld例子中有兩個項目說明文件:bld.inf和helloworld.mmp。使用這兩個文件可以建立我們所需要的任何特定平臺的項目和命令文件。
典型情況下,你使用一個叫做bldmake的Symbian工具,把項目的兩個說明文件作為輸入來生成一個叫做abld.bat的命令文件;接著你可以在命令行中使用abld.bat,來執行大量的項目相關的操作。例如,abld.bat可以用于生成特定平臺和特定IDE的項目組成文件(makefiles)。如果項目源代碼存在,或者已經完成了,我們可以使用abld為一個或多個平臺編譯該項目。
由于大多數開發的項目都在某個IDE中建立和運行,你一般只需要建立適合的IDE項目文件。
在使用微軟Visual C++的時候,你將在命令行中使用abld建立HelloWorld.dsp和HelloWorld.dsw項目文件。.dsw是在IDE中打開的工作空間文件,它可以指向一個或多個.dsp文件。
對于Metrowerks CodeWarrior,你既可以使用普通的方式在IDE中建立項目文件,也可以把.mmp文件直接導入IDE中。導入過程將建立CodeWarrior的特定項目(HelloWorld.mcp)所需要的文件。
類似地,Borland C++ Builder移動版IDE能夠執行與Metrowerks IDE類似的導入事務,但是它是導入bld.inf文件而不是.mmp文件。例如Borland C++BuilderX將建立叫做HelloWorld.cbx的項目文件。
打開特定IDE的項目文件將允許你開發、建立、運行和調試該應用程序,并擁有IDE的全面支持。
對于寧可在命令行層次工作的開發者來說,abld也可以用于在命令提示符下進行編譯和鏈接。
建立特定IDE項目文件的所有方法要點將在本文后面的部分談到。此外,圖顯示了使用兩個通用的Symbian OS項目文件生成我們所需要的特定平臺的項目文件(通過IDE導入選項或使用Symbian工具)。
【編輯推薦】