Series 60 SDKs 由Symbian公司發(fā)布的指定版本的Symbian OS C++ SDKs構(gòu)建。一個(gè)SDK包含工具、應(yīng)用程序接口、類庫和文檔等,以方便開發(fā)者能夠開發(fā)新的應(yīng)用程序。
每個(gè)Series60的產(chǎn)品都建立在特定發(fā)布平臺(tái)之上,而開發(fā)人員經(jīng)常需要在不同版本的Series 60 的SDKs上工作,或?yàn)榱瞬煌挠脩艚涌谄脚_(tái),使用不同的SDKs。
大部分的開發(fā)和測(cè)試工作可以通過PC平臺(tái)上的模擬器來完成,盡管在目標(biāo)機(jī)上的調(diào)試有所限制。此外,為了能夠?yàn)槟繕?biāo)設(shè)備構(gòu)建可執(zhí)行程序,有幾種二進(jìn)制格式(如ARMI,ARM4,Thumb)。編譯和鏈接的過程可以通過命令提示符工具或其他IDE工具完成。
有兩個(gè)通用的項(xiàng)目文件:projectname.mmp和bld.inf文件。這兩個(gè)文本文件將作為構(gòu)建選項(xiàng)的起始點(diǎn),指定IDE、平臺(tái)變量等。
bld.inf文件指定了項(xiàng)目中所有組件的名稱,以及每個(gè)組件對(duì)應(yīng)的自己的.mmp文件。如果一個(gè)工程有多個(gè)組件構(gòu)成,如除了應(yīng)用程序自身外,還有其他的指定的函數(shù)庫,則每個(gè)組件都有其自己的mmp文件,每個(gè)庫加上應(yīng)用程序都有一個(gè)mmp文件,而每個(gè)文件名稱將會(huì)列舉在項(xiàng)目的bld.Inf文件中。
從一般symbian文件生成IDE和特定平臺(tái)的項(xiàng)目文件的流程如下圖所示:

圖 2-2-1-1
下面來看“hello world”的例子。
1. 項(xiàng)目中有bld.inf和helloworld.mmp。用這兩個(gè)文件作為輸入,通過symbian的bldmake工具,可以生成abld.bat命令文件。然后就可以用abld.bat文件在命令提示符中執(zhí)行項(xiàng)目相關(guān)的動(dòng)作。如下圖所示:

執(zhí)行后就會(huì)在目錄中生成相應(yīng)的

2. 很多時(shí)候項(xiàng)目是在IDE中構(gòu)建和運(yùn)行的,這時(shí)你就要為你選擇的IDE創(chuàng)建相關(guān)的文件。這里我們主要來看一下VC++。我們可以用abld在命令提示符中創(chuàng)建Hellowrold.dsp和Helloworld.dsw文件。但從網(wǎng)上說3rd不支持VC6,具體原因等深入了看能不能解決,如下圖所示:

后來我把默認(rèn)設(shè)備改為2.0版本的,但仍然有其他問題,通過網(wǎng)上查詢,說是路徑?jīng)]有安裝在系統(tǒng)盤目錄的緣故。
不過用VS2005很方便,可以直接通過mmp文件或inf文件進(jìn)行導(dǎo)入。
3. 用指定的IDE打開項(xiàng)目文件,將允許你在IDE的完全支持下,進(jìn)行開發(fā)、構(gòu)建、運(yùn)行和調(diào)試。對(duì)于習(xí)慣用命令提示符的開發(fā)人員,abld仍然能滿足你編譯和鏈接的要求。
4. 可能是我的計(jì)算機(jī)性能比較差的原因,用VC2005運(yùn)行Symbian9.2自帶的helloworld程序,模擬器出現(xiàn)過后,半天才有反應(yīng)。一開始還以為哪兒又出問題了,怎么結(jié)果出不來。
關(guān)于VC6成功編譯Helloworld的例子:
按照上面的做法,始終沒有成功,心中老是有疙瘩,于是決定用2nd版本進(jìn)行嘗試,最后終于成功,寫下流程供大家參考:
1. 準(zhǔn)備工作。首先保證Series60_v20安裝在系統(tǒng)盤,即C盤。我一開始安裝在了D盤,不過直接拷貝到C盤去仍然能用,所以不用再重新安裝了。設(shè)置環(huán)境變量:
環(huán)境變量名
|
環(huán)境變量值
|
備注
|
EPOCROOT
|
\Symbian\7.0s\Series60_v20\
|
該變量值不能有驅(qū)動(dòng)盤符號(hào)
|
VC6_ROOT
|
D:\Program Files\Microsoft Visual Studio
|
我的VC6的安裝路徑,用在環(huán)境變量path中,可不用,path中直接寫路徑即可。
|
path
|
%VC6_ROOT%\Common\Tools\WinNT;%VC6_ROOT%\Common\MSDev98\Bin;%VC6_ROOT%\Common\Tools;%VC6_ROOT%\VC98\bin;C:\Symbian\7.0s\Series60_v20\Epoc32\tools;C:\Symbian\7.0s\Series60_v20\Epoc32\gcc\bin;…
|
其中前一部分是VC6相關(guān)目錄的路徑,后一部分是Series60_v20相關(guān)的路徑。其余跟symbian開發(fā)不相關(guān)的路徑,我用省略號(hào)省略了
|
其次若電腦上裝有多個(gè)設(shè)備的話,要確保當(dāng)前設(shè)備為Series60_v20版本的。下面我們來看查看設(shè)備和設(shè)置默認(rèn)設(shè)備的相關(guān)命令。查看可獲得的設(shè)備,用命令devices。如下圖所示:

更改默認(rèn)設(shè)備的命令如下:

2. 運(yùn)行cmd,改變當(dāng)前目錄到.inf文件和.mmp文件的目錄,我這兒是目錄“C:\Symbian\7.0s\Series60_v20\Examples\basics\helloworld”。
3. 輸入【bldmake bldfiles】,回車產(chǎn)生文件“ABLD.BAT”。
4. 輸入【abld build wins udeb】,則為模擬器構(gòu)建工程,含有可執(zhí)行二進(jìn)制的調(diào)試信息。若要為VC6構(gòu)建工程文件,可輸入【abld makefile vc6】。則會(huì)生成vc6的.dsw文件和.dsp文件,文件的位置依賴于你電腦上SDK的位置,我這兒文件產(chǎn)生的位置為“C:\Symbian\7.0s\Series60_v20\Epoc32\BUILD\SYMBIAN\7.0S\SERIES60_V20\EXAMPLES\BASICS\HELLOWORLD\HELLOWORLD\WINS”
5. 找到.dsw文件,打開工程,運(yùn)行輸出Helloworld,如下圖所示:

圖 2-2-1-2
1.1.1.2. 模擬器
用模擬器進(jìn)行開發(fā)、調(diào)試、測(cè)試的好處就不多說了,模擬器的外觀主要依賴于目標(biāo)平臺(tái)、所用的Series 60 的版本和選擇的IDE。雖然模擬器給我們學(xué)習(xí)symbian開發(fā)帶來了很多方便,但是由于模擬器和真機(jī)之間的某些不同無法克服,像攝像頭、震動(dòng)、精確的時(shí)間、程序性能、內(nèi)存管理等等,所以在某種意義上,開發(fā)和測(cè)試仍需要用真機(jī)。
S60的顯示器,邏輯上可以劃分為三個(gè)區(qū)域:狀態(tài)區(qū)、主區(qū)域、控制區(qū)。狀態(tài)區(qū)顯示當(dāng)前程序的信息、設(shè)備的一般信息,如信號(hào)強(qiáng)度、電量。主區(qū)域主要顯示程序數(shù)據(jù)。而控制區(qū)域是指屏幕下方的兩個(gè)按鍵標(biāo)簽,用于指示選擇進(jìn)行響應(yīng)的操作。其實(shí)就跟手機(jī)一樣。我們來看一下3rd_FP1的模擬器界面,如下圖所示:

圖 2-2-1-3