資源描述:
《如何編寫(xiě)symbian程序?》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、如何編寫(xiě)Symbian程序? Symbian是以Nokai為首的各廠商合伙開(kāi)發(fā)的一個(gè)操作系統(tǒng),主要用于高端的智能。其開(kāi)發(fā)語(yǔ)言為C++,可以使用MicrosoftVisualC++6.0作為集成化的開(kāi)發(fā)環(huán)境,看來(lái)雖然Symbian的目標(biāo)是跟微軟的SmartPhone較勁,在采取的手段和方法上卻也是不拘一格,微軟更是暗暗叫苦,誰(shuí)讓當(dāng)時(shí)vc6設(shè)計(jì)的這么開(kāi)放,結(jié)果被敵人拿去做武器了?! ”疚闹饕槍?duì)的是Symbian開(kāi)發(fā)入門(mén),所以應(yīng)該是非常簡(jiǎn)單的事,因?yàn)楫吘筍ymbian的開(kāi)發(fā)語(yǔ)言是C++,并不會(huì)因?yàn)槭怯糜诘牟僮飨到y(tǒng)就復(fù)雜了多少,就象很多人一直掛在嘴邊的J2ME也畢竟是Ja
2、va語(yǔ)言,并不會(huì)因?yàn)橛迷谏暇透呱盍硕嗌僖粯印?小時(shí)是我從對(duì)Symbian一無(wú)所知到完成本文花在Symbian上的所有時(shí)間?! ∫?yàn)槭怯糜诘牟僮飨到y(tǒng),所以我們研究Symbian的話,先選定一款再說(shuō)。Nokia的60系列平臺(tái)是一個(gè)很不錯(cuò)的選擇,Nokia根據(jù)的屏幕大小和價(jià)格高低把分成了多個(gè)系列,60系列目前有兩款:7650和3650.60系列采用Symbianos6.1,然后又根據(jù)屏幕的特點(diǎn)對(duì)UI做了一些修改,這個(gè)被修改了的Symbian就被稱(chēng)為Nokia的60系列平臺(tái)?! ∷匀腴T(mén)的第一步就是要下載S60的SDK,可以從Nokia的開(kāi)發(fā)論壇上下載:chinese/sch
3、/main/series60.html.看Nokia網(wǎng)站上最新的是1.0,不過(guò)下面又有個(gè)0.9中文版,所以自然要下載這個(gè)0.9版了。100多兆吧,不想下的話,可以跟Nokia要光盤(pán),估計(jì)他們應(yīng)該很高興給。這個(gè)0.9中文版的模擬器是中文版的,而且有支持GBK和UNICODE轉(zhuǎn)換的類(lèi),不知道1.0的英文版有沒(méi)有。 下載完了就是安裝,選一個(gè)目錄裝就是了,不過(guò)最好裝在C盤(pán)上??赡苁强紤]到icrosoftVisualStudioVC98Bin放到你的PATH里,主要是用nmake.exe.所以如果你有nmake的話,不裝vc6也可以看hellobian6.1Series60、
4、Series60ExHelloBIAN6.1SERIES60SERIES60EXHELLOBIAN6.1SERIES60SERIES60EXHELLObian把這點(diǎn)事搞得這么麻煩,也真是不容易?! ∪绻苯釉趘c6里創(chuàng)建新項(xiàng)目的話,要把C:Symbian6.1Series60Series60Tools目錄下的文件拷貝到vc6的模板目錄下才可以?! ≌垓v到這里,可能得花2個(gè)多小時(shí)吧,剩下的兩個(gè)多小時(shí)得看看文檔了?! ∠瓤纯碒ellobian程序的體系結(jié)構(gòu)。Symbian程序也是按照VC的文檔視圖結(jié)構(gòu)來(lái)組織程序的,有Application類(lèi)CAknApplication
5、,有Document類(lèi)CAknDocument,有Frame類(lèi)CAknAppUi,有視圖類(lèi)CCoeControl等,跟vc的結(jié)構(gòu)好像是差不多的,但感覺(jué)上它的Document類(lèi)好像是做樣子的,我還沒(méi)看到這一塊。關(guān)于這些類(lèi)之間的調(diào)用關(guān)系,在Hellobian的代碼時(shí),感覺(jué)最不適應(yīng)的可能就是經(jīng)??吹絇ushL和Pop函數(shù),還有就是很多的函數(shù)都有L或LC的后綴。其實(shí)這是Symbian的例外處理機(jī)制。比如說(shuō)我們定義了一個(gè)指針,給它分配了空間,可是在使用它的時(shí)候程序突然間出現(xiàn)了致命錯(cuò)誤中止了,那這個(gè)指針占用的地址空間我們肯定是收不回來(lái)了,在PC上編程這一點(diǎn)可能問(wèn)題不大,內(nèi)存那么多
6、,而且用不了多長(zhǎng)時(shí)間就重啟動(dòng)了,但是Symbian的設(shè)計(jì)者可能認(rèn)為這在上是不行的,所以對(duì)這一點(diǎn)做了很多的設(shè)計(jì)。Symbian有一個(gè)Cleanupstack,在使用指針時(shí),用PushL把指針壓入棧中,使用完后在用Pop彈出棧,如果在中間調(diào)用可能導(dǎo)致崩潰的函數(shù)時(shí)果真出現(xiàn)了問(wèn)題,那么Cleanupstack可以通過(guò)調(diào)用12下一頁(yè)——感謝閱讀這篇文章,..,該指針的析構(gòu)函數(shù)回收占用的空間。這些可能導(dǎo)致崩潰的函數(shù)在Symbian里被稱(chēng)為可能Leave的函數(shù),所以就在這些函數(shù)的尾部加了一個(gè)L.而加LC后綴的函數(shù)表明該函數(shù)已經(jīng)在內(nèi)部把指針用PushL壓入cleanupstack了,
7、調(diào)用時(shí)無(wú)需再用PushL,直接調(diào)用完用Pop既可。Cleanupstack還提供了一個(gè)PopAndDestroy函數(shù),就是彈出棧后再銷(xiāo)毀指針。順便提一句,正式因?yàn)橛辛薈leanupstack機(jī)制,所以Symbian在有些地方看起來(lái)跟VC的程序不太一樣,比如說(shuō)很多類(lèi)的構(gòu)造函數(shù)都不用,用Nebian編程基礎(chǔ)中的內(nèi)存管理一節(jié)?! ymbian自己定義了一堆的數(shù)據(jù)類(lèi)型,如果不想找麻煩的話,還是乖乖的用這些類(lèi)型的好。簡(jiǎn)單說(shuō)一下,整型有TInt和TUint,其中又分為8位的,16位的和32位的,如TInt8,TInt16,TInt32;文本類(lèi)型是TText,又