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