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