初學(xué)j2me必讀網(wǎng)友學(xué)習(xí)筆記Java認(rèn)證考試
應(yīng)用開發(fā)環(huán)境的選擇和配置
2003年三月份,我剛開始接觸了手機(jī)游戲的開發(fā)。開發(fā)手機(jī)上的游戲程序,最初僅僅只是出于興趣愛好,利用業(yè)余時(shí)間自己陸陸續(xù)續(xù)的也寫了一些Code,得到了一些經(jīng)驗(yàn),本來是想敝帚自珍的,但是朋友的鼓勵(lì),使我決定把自己的一點(diǎn)點(diǎn)心得體會(huì)寫出來,藉以告慰我在學(xué)習(xí)中所陣亡的千千萬萬腦細(xì)胞,也為和我一樣在黑暗的艱難摸索人們中提供一些微不足道的幫助吧。
由于我本人對于手機(jī)應(yīng)用程序的開發(fā)也是初學(xué),如果在文章中出現(xiàn)什么問題,還望各位讀者海涵。很多人都在網(wǎng)上問我,開發(fā)手機(jī)應(yīng)用程序是不是一定要買一個(gè)真正的手機(jī)平臺(tái),我的看法是剛開始學(xué)習(xí)的時(shí)候不一定要買手機(jī),先在網(wǎng)上多看多問,把平臺(tái)的開發(fā)環(huán)境配置好,在模擬器上先單兵操練,不過我建議如果你真的需要把你的作品產(chǎn)品化的時(shí)候,最好配備一個(gè)真實(shí)的手機(jī)平臺(tái)用來測試,因?yàn)樵谀M器的運(yùn)行環(huán)境中用很多的運(yùn)行效果和真實(shí)的設(shè)備環(huán)境還是有很大的出入,在模擬器平臺(tái)上運(yùn)行得很好的程序未必在真實(shí)的設(shè)備上就OK,更何況你也一定跟我一樣很期盼能夠隨時(shí)隨地地拿出手機(jī)Show一把自己的程序。
如何選擇開發(fā)的工具也是許多人在準(zhǔn)備學(xué)習(xí)前奔走相問的,不過這個(gè)也實(shí)在不好回答,在當(dāng)前主流的手機(jī)開發(fā)平臺(tái)上基本上是戰(zhàn)國時(shí)代,諸侯們紛紛你方歌罷我登場,各有各的好處,各有各的弊端,僅我所知道的,當(dāng)前智能手機(jī)的操作系統(tǒng)主要為微軟的SmartPhone(這是基于WinCE平臺(tái)的),Symbian(這是為諾基亞,索愛,西門子等各大手機(jī)廠商所支持的)還有Brew(這是高通公司的)等,下面我就單從程序人員的角度聊一聊如何選擇這幾種開發(fā)平臺(tái)。
如果你是一個(gè)優(yōu)秀的Windows程序設(shè)計(jì)人員,而且對于MS情有獨(dú)鐘,OK,你可以試一試基于WinCE平臺(tái)的SmartPhone的開發(fā),快到微軟的網(wǎng)站上下載他free的eMbedded Visual C 4.0和SmartPhone的模擬器,安裝好以后,你就可以在熟悉的Visual C 的環(huán)境下工作了,甚至喜歡C#的同志們可以選用Visual Studio .Net 2003 并且在這個(gè)環(huán)境下開始你的工作,一切都是那么的熟悉。至于缺點(diǎn)么,恩,就是啟動(dòng)和運(yùn)行模擬器太慢了,調(diào)試一個(gè)程序你還是需要付出一些耐心的,呵呵。
如果你和我一樣手機(jī)都是Nokia 60系列的,那就可以考慮學(xué)習(xí)Symbian了,Symbian是一家由各主要無線通信技術(shù)公司持股的軟件公司,它提供一個(gè)智能化的手機(jī)平臺(tái)SymbianOS,主要有諾基亞,西門子,索愛等,他是微軟在智能手機(jī)平臺(tái)的最大競爭者。
Symbain同時(shí)支持C 開發(fā)和Java開發(fā)。不過學(xué)習(xí)Symbian上面C 的開發(fā)也是需要一個(gè)艱難痛苦的歷程,你可以先在Nokia的開發(fā)人員站點(diǎn)上下載Nokia 相關(guān)與Symbain的開發(fā)工具nS60_sdk系列,安裝后可以集成到VC6的環(huán)境中,在安裝的時(shí)候也是有幾項(xiàng)需要特別注意的(安裝的問題,在論壇上詢問的也特別多)。
首先,你要保證你的操作系統(tǒng)是Windows2000 SP2 或者以上的配置;
第二,你需要在你的VC6上安裝SP3以上的補(bǔ)丁,(呵呵,我裝的是SP5大概有幾百兆吧?.)
第三,安裝nS60_sdk的時(shí)候要考慮裝在C盤上,這個(gè)么在網(wǎng)上說法不一,不過如果你和我一樣剛剛安裝的時(shí)候有過失敗的紀(jì)錄,那么病急亂投醫(yī),也會(huì)把它安裝在C盤的;
第四,也是最重要的一定要保證你的 nS60_sdk的統(tǒng)一盤符上也安裝了Perl和JDK1.3,因?yàn)閚S60_sdk1.2并沒有帶著兩個(gè)東東,所以我安裝的是nS60_sdk1.0
最后,一定要注意特別保證你生成應(yīng)用程序的路徑盤符要和nS60_sdk1.0一樣,(在我這里當(dāng)然也就是C盤了)也要保證系統(tǒng)的環(huán)境變量Path中存在這幾個(gè)工具的路徑。
當(dāng)這些都配置好了,你就可以拷貝AvkonAppWiz.awx 和 AvkonAppWiz.hlp 文件到 Visual C template (c:\Program Files\Microsoft Visual Studio\Common\MsDev98\Template)目錄下,然后啟動(dòng)你的VC6,按照向?qū)нx擇Nokia 60 SDK,然后一步一步地走下去,點(diǎn)擊確定就可以生成你的應(yīng)用程序框架了,夷,不好,怎么看到了 “c:\Symbian\6.1\Series60\epoc32\build\test\group\test\wins\test.dsw The specified project could not be inserted into the current workspace.”這個(gè)錯(cuò)誤,千萬別緊張,很多人都碰到過,回頭再看看有什么地方設(shè)置的不對,特別要注意環(huán)境路徑的配置呀。
好了,接下去就可以正式進(jìn)入學(xué)習(xí)開發(fā)了,Nokia 60 SDK自帶的幫助和實(shí)例也許會(huì)對你有很好的幫助的。 據(jù)說國外有高手可以把這個(gè)SDK安裝配置在VS.NET上開發(fā),呵呵,真是厲害,至少我還沒有成功過。
以上為Nokia60系列的開發(fā)步驟,如果你需要開發(fā)索愛的P800(這也是我夢寐以求的一款好機(jī)子),可以下載他的工具UIQ來開發(fā)。
Brew是我一個(gè)好朋友的開發(fā)利器,它是高通公司推出的無線二進(jìn)制運(yùn)行開發(fā)操作環(huán)境,也必須要在高通的特定的硬件平臺(tái)上運(yùn)行。在朋友的幫助下,我在高通的網(wǎng)站下載了他的BREW_SDK_20zn ,他的開發(fā)環(huán)境也是基于VC6的(呵呵,微軟一定很后悔為什么把開發(fā)工具做的那么通用,搞得對手們紛紛拿來就用),在進(jìn)入向?qū)纱a框架時(shí)你會(huì)發(fā)現(xiàn)Brew突然需要你填入一個(gè)ClassID,這是為了保證在機(jī)器中的注冊信息唯一,如果你做的是測試程序的話,你可以利用Brew SDK自帶的工具M(jìn)IF編輯器來生成相應(yīng)的ClassID,并運(yùn)行在模擬器上。
但是如果你需要運(yùn)行在實(shí)際的平臺(tái)設(shè)備上,你就必須要注冊到高通的網(wǎng)站上,成為他的開發(fā)者,當(dāng)然還要每年都向他繳納一定的會(huì)費(fèi)(是$),然后才可以從他的站點(diǎn)上得到實(shí)際的ClassID,并且在硬件環(huán)境上測試,否則你就只能通過MIF編輯器生成本地ClassID在模擬器上跑著玩了,真是生財(cái)有道呀。
Brew的開發(fā)模式基本上與Symbain很類似,都是在VC的開發(fā)環(huán)境中編譯代碼,生成一個(gè)完整動(dòng)態(tài)庫,然后通過運(yùn)行模擬器的可執(zhí)行程序加載動(dòng)態(tài)庫,就可以調(diào)試你做好應(yīng)用程序邏輯了,如果調(diào)試通過,就可以通過相關(guān)的工具再編譯成底層硬件設(shè)備可執(zhí)行的二進(jìn)制代碼,譬如ARM等,通過打包下載就可以運(yùn)行在你的手機(jī)上。
OK,至于他們兩個(gè)的不同之處么,唔… Brew是純粹的C語言開發(fā)的,它通過一套獨(dú)特的機(jī)制模擬了類似于COM的體系框架;而Symbian呢,則是完全的c ,他自身在內(nèi)部實(shí)現(xiàn)了一整套的類庫體系(非常類似于MFC)來開發(fā)實(shí)際在Symbain上跑的應(yīng)用程序。他們的類庫為了各自適應(yīng)自己的平臺(tái)所提供的功能,還是有相當(dāng)?shù)牟煌?/p>
其實(shí),Symbain和Brew作為嵌入式系統(tǒng)開發(fā)的體系結(jié)構(gòu),都是依托于C 思想建立的,在他們的應(yīng)用程序框架中能看到許多C 思想的影響烙印。譬如,我在學(xué)習(xí)Brew的時(shí)候腦海中一直都有一個(gè)COM的原型(他的很多組件的加載和運(yùn)行都是非常像的),而在學(xué)習(xí)Symbian的對象內(nèi)存管理機(jī)制的時(shí)候,也看出了它在對于利用C 的內(nèi)部機(jī)制力圖實(shí)現(xiàn)一個(gè)類似于Java一樣能對內(nèi)存自動(dòng)管理、分配、清除的模型,用來保證它的內(nèi)存管理絕對安全。
【編輯推薦】