本文介紹建立、部署和運行擁有圖形化使用者介面(GUI)的Series 60應用程式範例的過程。
我們假定你已經安裝了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專案檔的所有方法要點將在本文後面的部分談到。此外,圖1-1顯示了使用兩個通用的Symbian OS專案檔產生我們所需要的特定平台的專案檔(通過IDE匯入選項或使用Symbian工具)。