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