第一章 環(huán)境搭建
Symbian是Nokia公司開發(fā)的一款智能手機(jī)操作系統(tǒng)。Nokia根據(jù)手機(jī)的屏幕大小和價格高低把手機(jī)分成了多個系列,現(xiàn)在使用的系列有:Series 40、Series 60、Series 80 和Series 90。60系列采用Symbian os 6.1,然后又根據(jù)手機(jī)屏幕的特點對UI做了一些修改,這個被修改了的Symbian就被稱為Nokia的60系列平臺。使用60系列的手機(jī)型號包括:Nokia 6670、 Nokia 6630、 Nokia 6260 、Nokia N-Gage QD™ 、Nokia 7610 、Nokia 6620 、Nokia 3620 、Nokia 3660 、Nokia 6600 、Nokia 3600、Nokia 3650、Nokia 7650、Nokia N-Gage™等。
下面我們就以60系列為例,介紹開發(fā)環(huán)境的安裝過程。
1 環(huán)境組成
Symbian開發(fā)環(huán)境一般分為兩大部分:集成開發(fā)環(huán)境(含編程語言)、專有開發(fā)工具。程序員在集成開發(fā)環(huán)境下按Symbian規(guī)范要求編寫程序代碼,然后用專有開發(fā)工具編譯、打包、發(fā)布Symbian平臺執(zhí)行程序。
為統(tǒng)一開發(fā)規(guī)范,Symbian開發(fā)環(huán)境和編程語言一律采用如下配置:
集成開發(fā)環(huán)境(IDE):Microsoft Visual Studio 6.0,C++
專有開發(fā)工具:Series 60 SDK for Symbian OS 2.1、Active Perl
2 安裝IDE
標(biāo)準(zhǔn)的Microsoft Visual Studio 6.0安裝步驟,這里不做說明。
注意:必須包含Visual C++,必須打SP3的補丁。(現(xiàn)在有SP6補丁,直接打SP6補丁就可以了)
3 安裝SDK
第一步:安裝SDK,推薦為Symbian開發(fā)單獨建一個目錄,統(tǒng)一為:“C:\Symbian”不允許其他的目錄出現(xiàn)。
第二步:安裝Active Perl和J2RE,安裝到默認(rèn)目錄即可。
第三步:檢查環(huán)境變量設(shè)定。打開系統(tǒng)環(huán)境變量tab,然后看看有沒有EPOCROOT,如果有的話,把它手動改成“\” 。改完之后應(yīng)該是這個樣子的:
EPOCROOT = \
然后,在系統(tǒng)PATH中加入 \epoc32\tools目錄以及\epoc32\gcc\bin目錄就可以了。
(這里實際操作時如果沒有EPOCROOT變量項則新建一個環(huán)境變量名為“EPOCROOT”使其變量值為“\Symbian\7.0s\Series60_v21_C\”,同時在PATH中的設(shè)置如上所述。)
4 配置VC
把
C:\Symbian\7.0s\Series60_v21_C\Series60Tools\ appwizard
目錄下的EpocAppWiz.awx和EPOCAPPWIZ.HLP文件拷貝到vc6的模板目錄
C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Template
下。這樣我們就可以在VC的新建工程中看到Series 60 AppWizard v 1.9這個選項。
至此,SYMBIAN的開發(fā)環(huán)境已經(jīng)全部搭建完畢。
注意:如果安裝了類似于ORACLE這樣自帶Perl和Java環(huán)境的軟件,需要修改環(huán)境變量才能正確編譯Symbian程序。具體要結(jié)合實際情況解決。
第二章 編譯與打包
【說明】由于Symbian中有很多新的概念和新的組織架構(gòu),這些基本的概念和組織架構(gòu)內(nèi)容較多,不便在這里展開,詳細(xì)地內(nèi)容需要參考Symbian方面的書籍。
1 新建立第一個項目
打開VC6開發(fā)環(huán)境,點擊“File”--〉“New”--〉“Projects”--〉“Series 60 AppWizard v
2 導(dǎo)入項目
如果要將已經(jīng)建立好的工程導(dǎo)入到VC6.0中,比如我們將SDK中的例子HelloWorld轉(zhuǎn)換成一個VC6的項目,我們首先進(jìn)入\Symbian\6.1\Series60\Series60Ex\HelloWorld目錄。在這里我們可以看到,在Symbian中,一個Project通常是按inc, src, group等目錄組織(目錄詳細(xì)說明參考Symbian方面的書籍),group目錄里通常放的是項目文件,所以編譯時要先到這里。用命令提示符模式進(jìn)入剛才說的那個目錄下,然后執(zhí)行:
bldmake bldfiles
這個命令會在group目錄下生成一個abld.bat的批處理文件,并且會在
c:\Symbian \7.0s\Series60_v21_C\Epoc32\BUILD
下生成
\Symbian\7.0s\Series60_v21_C\Epoc32\BUILD\SYMBIAN\6.1\SERIES60\SERIES60EX\HELLOWORLD\GROUP
這個目錄,并在最底層目錄下生成一堆 .make文件。
然后,我們在同一個目錄(……/GROUP)下執(zhí)行如下命令:
abld makefile vc6
這樣就會自動生成vc6的dsw文件,位置在
\Symbian\7.0s\Series60_v21_C\Epoc32\BUILD\SYMBIAN\7.0s\SERIES60_V21_C\SERIES60EX\HELLOWORLD\GROUP\HELLOWORLD\WINS
然后我們就可以在VC6種打開這個Symbian工程了。
【注】如果是采用第一種方式(新建)生成的項目,是不需要執(zhí)行這兩個命令的,所有相關(guān)文件會自動生成。(本人在實際工作中,發(fā)現(xiàn)用第一種方式(新建)生成的項目還是需要執(zhí)行如上這兩個命令的,否則沒有dsw文件存在)
3 編譯
對于如上兩種方法建立的項目,接下來就需要編譯生成目標(biāo)代碼了。
我們可以直接使用SDK提供的工具編譯Symbian工程,也可以使用VC6提供的集成環(huán)境來編譯轉(zhuǎn)化過的Symbian工程。編譯的結(jié)果存放在
\Symbian\7.0s\Series60_v21_C\Epoc32\Release\wins\UDEB\Z\SYSTEM\apps
目錄中。
3.1 使用SDK提供的工具編譯Symbian工程
我們在上一節(jié)的那個位置(……/GROUP)繼續(xù)輸入:
abld build wins udeb
這個命令會編譯我們的程序,最后在
\Symbian\7.0s\Series60_v21_C\Epoc32\Release\wins\udeb
目錄下生成我們的helloworld,然后我們可以從開始菜單里運行模擬器的debug版,在模擬其中就可以運行helloworld了。
3.2 使用VC6編譯Symbian工程
我們直接打開工程dsw文件,VC自動裝載轉(zhuǎn)化過的工程。按F7便可以直接編譯工程,編譯結(jié)果放在
\Symbian\7.0s\Series60_v21_C \Epoc32\Release\wins\UDEB
目錄中。然后我們打開模擬器debug版,就可以看到我們編譯好的工程了。
4 打包
4.1 檢查程序
首先,在命令行格式下,進(jìn)入HelloWorld工程mmp文件所在目錄,輸入
bldmake bldfiles和abld build wins udeb
然后打開模擬器,檢測程序有無錯誤。
4.2 編譯工程
在程序無錯誤后,在命令行輸入
abld build armi urel
執(zhí)行這個命令之后會在目錄
c:\symbian\7.0s\Series60_v21_C \epoc32\release\armi\urel
生成HELLOWORLD.APP和HELLOWORLD.RSC兩個文件。
(如果該工程文件內(nèi)沒有資源,那么通過如下編譯只能產(chǎn)生.app結(jié)尾的文件,不能產(chǎn)生.rsc結(jié)尾的資源文件)
4.3 建立.pkg文件
在
c:\Symbian\7.0s\Series60_v21_C \Series60Ex\helloworld\sis
用記事本建立或者修改工程的pkg文件,內(nèi)容如下:
; HelloWorld.pkg
;
;Language - standard language definitions
&EN
; standard SIS file header
#{"HelloWorld"},(0x10005B91),1,0,0
;Supports Series 60 v 1.2
(0x
;
"d:\symbian\6.1\series60\epoc32\release\armi\urel\HelloWorld.APP"-"!:\system\apps\HelloWorld\HelloWorld.app"
"d:\symbian\6.1\series60\epoc32\release\armi\urel\HELLOWORLD.rSC"-"!:\system\apps\HelloWorld\HELLOWORLD.rSC"
其中,前面
"c:\symbian\7.0s\Series60_v21_C\epoc32\release\armi\urel\HELLOWORLD.rSC"
是要打包安裝的文件,"!:\system\apps\HelloWorld\HELLOWORLD.rSC"是安裝的目標(biāo)位置。在其中要注意的是,我們在目標(biāo)位置中用“!”代替了實際的盤符。這樣做得好處是在用戶安裝的時候,手機(jī)系統(tǒng)會提示用戶選擇要安裝的位置,這就給了用戶更大的靈活度。另外,在Symbian 系統(tǒng)中,安裝的應(yīng)用程序默認(rèn)位置是“!:\system\apps”。
編輯好pkg文件后,保存至相應(yīng)目錄。
(有時候如果沒有生成rsc文件,則在以上PKG文件中也不用包含rsc結(jié)尾的文件)
4.4 打包程序
在命令行中,在目錄
c:\Symbian\7.0s\Series60_v21_C \Series60Ex\helloworld\sis
下運行命令makesis HelloWorld.pkg