本文一步步的介紹了如何利用工具快速搭建一個(gè)Symbian開(kāi)發(fā)平臺(s60_fp2_sc+vc6)。如果想了解如何手動(dòng)的生成工程并編譯運行,請參考SDK文檔。
一、什么是Symbian OS
Symbian OS是一個(gè)為移動(dòng)設備而定制的操作系統。在全球智能手機操作系統的市場(chǎng)份額中,處于領(lǐng)先地位。緊隨其后的是windows Mobile、Palm OS和Linux。智能手機和PDA是兩個(gè)概念,Symbian主要針對智能手機,不過(guò)二者已經(jīng)逐漸出現了融合的趨勢。Symbian OS由Symbian組織負責維護和發(fā)展,該組織由許多不同背景的公司組成。其中最主要的推動(dòng)力量是Nokia。
Symbian OS系統按照人機界面交互大致分為Series60、Series80、Series90、UIQ,其中Series90會(huì )逐步的并入Series80。對應的Nokia的手機產(chǎn)品線(xiàn)則分為Series40(底端,非智能平臺)、Series60(中端,逐步代替Series40)、Series80(高端)。
S60手機是智能手機中最常見(jiàn)的,市場(chǎng)份額最大。S60也有眾多的版本存在,一些版本的變更還帶來(lái)了二進(jìn)制代碼的兼容性問(wèn)題。因此,要查閱官方資料了解目標手機對應的版本,再選擇正確的SDK。
Series 60版本:
l Series 60第一版 對應Symbian OS 6.1
l Series 60第二版 對應Symbian OS 7.0s
l Series 60第二版Pack 1 對應Symbian OS 7.0s
l Series 60第二版Pack 2 對應Symbian OS 8.0a
l Series 60第二版Pack 3 對應Symbian OS 8.1a
l Series 60第三版 對應Symbian OS 9.1
關(guān)于各個(gè)版本的差異,請參考Nokia forum。
二、環(huán)境配置
2.1安裝SDK
第一步,到Nokia論壇下載SDK,
http://www.forum.nokia.com/main/0,6566,034-4,00.html,這里選擇的是S60 2nd Feature Pack 2 簡(jiǎn)體中文版。請注意不同的版本對應的IDE也各不相同,參考上述頁(yè)面中的說(shuō)明。例如,S60 2nd Feature Pack 2支持Microsoft Visual Studio 6 和Microsoft Visual Studio .NET 2003 Professional。
J 如果你下載的不是這個(gè)版本,可能這篇文章并不完全適合你。因為幾乎Symbian的每個(gè)版本的安裝都有細微變化,參考安裝文件下的realeasenotes.txt
第二步,下載Perl和Java的運行時(shí)環(huán)境,SDK需要他們的支持。到
http://www.activestate.com 網(wǎng)站下載最新的Active Perl Script 安裝程序。S60 2nd Feature Pack 2需要Active Perl 5.6.1 build 531。到
http://www.java.com/下載J2RE,1.4.1_02版本以上。事實(shí)上還需要MSXML4.0,不過(guò)大部分windows已經(jīng)自帶。
第三步,安裝Perl和J2RE。
第四步,安裝SDK,最好安裝到獨立目錄,例如D:\Symbian。
第五步,安裝VC6,打好SP5補?。ㄗ钌賁P3)。VC的安裝和SDK的安裝是獨立的,沒(méi)有先后順序的要求。坦率的說(shuō)對于Symbian開(kāi)發(fā),VC6不是一個(gè)非常好的IDE,不過(guò)開(kāi)發(fā)者(至少我)對其相當的熟悉。如果你采用其他的IDE,比如VC.net或CodeWarrior,請參考SDK的文檔。
2.2 配置環(huán)境
也許你之前已經(jīng)看了一些手動(dòng)環(huán)境變量的文章。手動(dòng)配置環(huán)境的一個(gè)缺點(diǎn)是當你安裝了不同版本的SDK后,在這些版本間做切換變得十分麻煩,盡管可以利用Sbset命令做磁盤(pán)影射來(lái)巧妙的解決這一問(wèn)題。對于新手,可以使用Symbian\8.0a\S60_2nd_FP2_SC\Series60Tools下的environmentswitch工具來(lái)配置環(huán)境。該工具利用一個(gè)XML來(lái)配置多種環(huán)境下的變量,并提供了一個(gè)任務(wù)欄上的常駐圖標來(lái)切換不同的環(huán)境。如圖有兩個(gè)環(huán)境,一個(gè)是我配置的Series 60 2nd Ed. SDK,另一個(gè)是系統自帶的Demo?;钣眠@個(gè)工具可以幫助你。
點(diǎn)擊Setup…將打開(kāi)settings.xml文件。
<settingsfile>
<environment name="Series 60 2nd Ed. SDK for Symbian OS, FP 2 - Chinese version(VC6)">
<env key="PATH" action="prepend" value="C:\Perl\bin;"/>
<env key="PATH" action="prepend" value="D:\Symbian\8.0a\S60_2nd_FP2_SC\Epoc32\Tools\;"/>
<env key="PATH" action="prepend" value="D:\Symbian\8.0a\S60_2nd_FP2_SC\epoc32\gcc\bin;"/>
<env key="PATH" action="prepend" value="C:\Program Files\Common Files\Symbian\tools;"/>
<env key="PATH" action="append" value=";D:\Microsoft Visual Studio\VC98\Bin;D:\Microsoft Visual Studio\Common\MSDev98\Bin"/>
<env key="EPOCROOT" action="replace" value="\Symbian\8.0a\S60_2nd_FP2_SC\"/>
<command value="devices -setdefault @S60_2nd_FP2_SC:com.nokia.series60" binding="entry"/>
<command value="epoc.exe" binding="menu" caption="Emulator UDEB"/>
<command value="epoc.exe -rel" binding="menu" caption="Emulator UREL"/>
</environment>
<environment name="Demo">
<testwindow on="Entered empty Demo environment" off="Goodbye"/>
</environment>
</settingsfile>
environment元素
一個(gè)environment元素代表一個(gè)環(huán)境,name代表在任務(wù)欄上顯示的名稱(chēng)。
env元素
env元素是environment的子元素,代表了一個(gè)環(huán)境變量。key是名字,value是值,action代表動(dòng)作??蛇x的動(dòng)作有"prepend"、"append"、"replace",分別代表前置、后置和替換。
在上面的例子中,首先是配置Path:分別配置了Perl、VC、Symbain的Path路徑,請參考你的安裝目錄進(jìn)行配置。配置Path一般不要使用" replace "作為Action。如果使用" prepend ",請確保Value的最后一個(gè)字符是";"。如果使用"append",請確保Value的第一個(gè)字符是";"。
配置EPOCROOT,也就是SDK的根目錄,value="\Symbian\8.0a\S60_2nd_FP2_SC\"。這個(gè)參數要以"\"開(kāi)始,以"\"結尾,不能包含驅動(dòng)器號。
command元素
command元素是environment的子元素,代表了一個(gè)命令。命令元素包含以下屬性:
‘value‘ 屬性(必需) – 執行的命令
‘directory‘屬性- 工作目錄
‘binding‘屬性- 何時(shí)執行,可選值有:
"entry" –環(huán)境被選擇時(shí)執行。
"exit" –退出環(huán)境時(shí)執行 (當EnvironmentSwitch退出或用戶(hù)切換到別的環(huán)境)。
"middlebutton" – 鼠標中鍵雙擊時(shí)執行,很方便的功能哦。
"doubleclick" – 鼠標左鍵雙擊時(shí)執行。
"menu" – EnvironmentSwitch菜單被選中時(shí)執行,這個(gè)最常使用。
‘caption‘ attribute – 如果‘binding‘為menu,代表菜單上顯示的名稱(chēng)
舉個(gè)例子代表在菜單中我們配置了一個(gè)調用模擬器的命令。
三、使用ApplicationWizard創(chuàng )建目標工程
ApplicationWizard是一個(gè)輔助工具用于為不同的IDE建立Symbian的工程。該工具位于Symbian\8.0a\S60_2nd_FP2_SC\Series60Tools下。如果使用environmentswitch,請確保切換到正確的環(huán)境下。
運行wizard.bat開(kāi)啟ApplicationWizard。
設定好工程的目錄。接下來(lái)一路Next下去,設置好一系列的附加選項。使用默認的也可以。在IDE中選擇你使用的IDE,這里僅僅安裝了一個(gè)VC6所以只有一個(gè)選項,點(diǎn)擊Generate,生成工程。最后會(huì )提示你是否打開(kāi)VC6,編輯工程。
打開(kāi)VC6編譯工程,并手動(dòng)開(kāi)啟模擬器Debug版(通過(guò)開(kāi)始也可,通過(guò)剛剛配置的environmentswitch命令也可)。在模擬器的底部可以看到剛剛編譯好的程序。如果對代碼作適當修改后要重新運行,則應首先關(guān)閉模擬器并rebuild工程,再次打開(kāi)模擬器運行程序,過(guò)程顯得比較麻煩。
編譯過(guò)后,會(huì )在\Symbian\8.0a\S60_2nd_FP2_SC\epoc32\release\wins\udeb\z\system\APPS下生成你的工程文件,如果需要從模擬器中刪除已經(jīng)生成的工程,只要在這里刪除相應目錄就可。如果要徹底移除工程,則在\Symbian\8.0a\S60_2nd_FP2_SC\下搜索工程名稱(chēng),將檢索到的所有內容刪除。
CodeWarrior(CW)是
Metrowerks公司的產(chǎn)品,對Symbian的支持非常好,s60 fp3及以后的版本都優(yōu)先支持CW,該IDE支持不用重啟模擬器就可重新編譯程序,并可以設置端點(diǎn)進(jìn)行調試,很方便。如果有朋友拿到License可以試用一下。
如果對安裝配置還有問(wèn)題,請參考SDK的文檔,該文檔位于:D:\Symbian\8.0a\S60_2nd_FP2_SC\Series60Doc\S60_SDK_Help.chm,想比晦澀難懂的MSDN,這份文檔要有友好很多。即使沒(méi)有太好的英文基礎的朋友也可以流暢的閱讀,并且圖文并茂。初學(xué)者80%的問(wèn)題都能在這里得到解答。