Symbian是一個(gè)操作系統(tǒng),C++是其原生編程語言。它為軟件開發(fā)人員提供了操作系統(tǒng)的全面功能。當(dāng)然對(duì)C++的熟悉程度直接影響了開發(fā)人員對(duì)其的使用,因?yàn)镾ymbian OS下的開發(fā)會(huì)廣泛運(yùn)用C++的高級(jí)特征和面向?qū)ο笤O(shè)計(jì)。我們暫且認(rèn)為大家對(duì)C++都有了相應(yīng)的了解,而且已經(jīng)親身經(jīng)歷了某些項(xiàng)目開發(fā),因此,以后文中如使用到C++范疇中的概念詞匯,不會(huì)對(duì)其做特殊解釋說明。
1. 了解Symbian OS
目前,市場上的Symbian Os手機(jī)都是基于3種針對(duì)C++程序員開發(fā)的用戶界面:Nokia Series 80、60以及UIQ(當(dāng)然還有幾年之前的當(dāng)紅明星s40)所有這些都支持Java編程,因此,C++也就不顯得那么孤單。基于Series 60平臺(tái)的機(jī)器像Nokia 3650、7650,Nokia 9210則使用的是S80平臺(tái),這類手機(jī)顯著的特點(diǎn)就是具有完整的手機(jī)鍵盤,完全可以模擬pc操作;UIQ平臺(tái)的手機(jī)一般屏幕比較大,而且可配備一數(shù)字小鍵盤,在移動(dòng)時(shí)可使用觸筆交互,像Sony Ericsson P800。說這么多,其實(shí)無論是什么手機(jī)平臺(tái),關(guān)鍵之處就是了解Symbian下開發(fā)的主要特征。以下慢慢逐一道來
2. 準(zhǔn)備工作
下載相應(yīng)的sdk:可以從Nokai的開發(fā)論壇上下載http://forum./sch/index.html。
可以根據(jù)自己的需要選擇下載sdk的版本。
使用Symbian OS還需要兩個(gè)工具就是Java的運(yùn)行庫和ActivePerl,這兩個(gè)工具也有版本的區(qū)別,需要你在下載之前了解相應(yīng)的版本需求。
我所使用的如下(下面文中如未加特殊聲明都是在此環(huán)境下開發(fā))
window 2000 sp4、vc++6.0
------------------------------
Java2Run Time.SE v1.3.1 v1.4.1_02
ActivePerl build 518 5.6.1
Series 60 SDK 2.1 2.2Beta
------------------------------
注意:安裝順序本人一般采用Java runtime/ActivePerl/Series 60sdk,而且需要注意的是ActivePerl這個(gè)編譯工具最好裝在C:\下(一般我采用的就是不論系統(tǒng)盤是什么,所有的都裝在C:\下,一來比較容易管理,二來省去了很多不必要的麻煩)!
安裝完畢,接著,我們就來熟悉Symbian的各個(gè)目錄吧。
首先在使用過程中,感覺Symbian OS Sdk處理盤符和目錄時(shí)實(shí)在不便,所以在開發(fā)過程中很多麻煩都來源于盤符和目錄問題。因?yàn)槲也捎玫拈_發(fā)工具是VC++6.0 英文版,所以為了開發(fā)方便,可以這么做:將目錄..\Symbian\7.0s\Series60_v21_C\Series60Tools\appwizard中的文件拷貝到VC的安裝目錄..\Microsoft Visual Studio\Common\MSDev98\Template中,這樣做的好處就是在你使用VC時(shí),當(dāng)使用new命令新建一個(gè)項(xiàng)目時(shí),Series 60就會(huì)出現(xiàn)在Appwizard對(duì)話框的項(xiàng)目欄中。
下面我們來了解一下一個(gè)Symbian OS項(xiàng)目的目錄結(jié)構(gòu):
大家首先要熟悉的是BUILD目錄,這個(gè)目錄是專門為存放各種不同平臺(tái)的 工程文件的。大家執(zhí)行了abld makefile vc6或者abld makefile cw_ide 之后就會(huì)相應(yīng)的在這個(gè)目錄下生成ms vc6或者cw的工程文件,注意,cw的 工程文件是一個(gè)xml。要在cw里面通過import...導(dǎo)入。
第二個(gè)目錄是data目錄。這個(gè)目錄存儲(chǔ)編譯之后UI程序的資源文件rss。 Series 70 SDK一般把rss拷貝到\epoc32\data\z\system\apps\工程目錄名 中。大家如果想使用MMC卡測試你開發(fā)好的程序,應(yīng)該從上述目錄中拷貝 *.rss與你的*.app一同放到MMC卡中的\system\apps\工程目錄名 中。
第三個(gè)目錄是gcc這個(gè)目錄下存放的大多都是系統(tǒng)需要的資源,像一些.lib和.h,這個(gè)一般我們不需要過多關(guān)心。
第四個(gè)目錄是include這個(gè)目錄下多數(shù)都是系統(tǒng)的頭文件,當(dāng)然,系統(tǒng)在build UI程序的時(shí)候會(huì)把xxx.rsg文件放到這個(gè)目錄下, 這個(gè)文件中大家用UE看一下就知道了。還有一個(gè)子目錄就是 include 下面的libc。這里面封裝了標(biāo)準(zhǔn)C的兼容函數(shù)庫。
第五個(gè)目錄是release。這個(gè)目錄主要存放各個(gè)平臺(tái)相關(guān)的模擬器和庫。Windows下模擬器的位置:
\epoc32\release\wins\udeb\epoc.exe
以及
\epoc32\release\wins\urel\epoc.exe
同時(shí)編譯之后的可執(zhí)行文件也會(huì)被存放在armi,thumb的目錄下。
第六個(gè)目錄是wins下面一般只有c一個(gè)目錄。這個(gè)目錄表示手機(jī)的存儲(chǔ)器。S70 的 MMC 卡 目錄是d??墒悄憔退憬藗€(gè)d目錄,你的S90 模擬器也認(rèn)不出來,你還需要 改data目錄下的一個(gè)epoc.ini文件。加入下面這行:
_epoc_drive_d \epoc32\wins\d ,然后S70的模擬器就可以認(rèn)出d盤,也就是MMC卡了。
接下來是工程目錄,Symbian OS下工程目錄和VC里工程的目錄結(jié)構(gòu)不同,看下面的示例及介紹:一般說來項(xiàng)目中一般有如下folder
helloworldbasic
├─group 通常放組件定義文件、項(xiàng)目定義文件,編譯時(shí)一定來這里
├─inc 工程項(xiàng)目的頭文件
├─sis .pkg,用于制作安裝包
└─src 工程項(xiàng)目的源文件,.cpp
對(duì)Symbian OS下工程的管理一般都是在上述文件夾中完成的。比如:
編譯工程:首先在vc里新建一個(gè)symbian s60項(xiàng)目,假設(shè)是c:\sample,打開命令提示符,進(jìn)入到目錄c:\sample\group中,鍵入命令
bldmake bldfiles
這個(gè)命令會(huì)在group目錄下生成一個(gè)abld.bat的批處理文件,并且會(huì)在..\Symbian\7.0s\Series60_v21_C\Epoc32\BUILD下生成相應(yīng)工程的文件夾里面還有很多make文件,接著鍵入
abld build wins udeb
..\Symbian\7.0s\Series60_v21_C\Epoc32\Release\wins\UDEB目錄下生成我們的sample,當(dāng)運(yùn)行模擬器時(shí),我們的工程就顯示出來了。這個(gè)命令里wins代表的是windows系統(tǒng)下模擬應(yīng)用,如果是真實(shí)Symbian設(shè)備,這個(gè)參數(shù)還可以是armi或thumb;最后一個(gè)udeb代表Unicode-debug版當(dāng)然urel就是Unicode-release版了。
最后鍵入命令
abld makefile vc6
這個(gè)命令會(huì)產(chǎn)生vc6使用的.dsw和.dsp文件,這樣我們就可以在vc++6.0下進(jìn)行編碼了。