【正文】
除了一些微型設(shè)備所必需的適當(dāng)?shù)墓δ苡兴煌猓怯蒍AVA虛擬機(jī)規(guī)范定義的真實(shí)的JAVA虛擬機(jī)。安裝在操作系統(tǒng)之上的CLDC形成了小型計(jì)算設(shè)備的運(yùn)行時(shí)環(huán)境。J2ME能夠以最小的修改來實(shí)現(xiàn)這種傳遞,如果應(yīng)用程序的設(shè)計(jì)是可伸縮的,應(yīng)用程序就可以適應(yīng)小型計(jì)算設(shè)備上有限的資源。J2ME是建立在一個(gè)由概要描述、配置、JAVA虛擬機(jī)和操作系統(tǒng)等部分組成的標(biāo)準(zhǔn)架構(gòu)之上的,這些內(nèi)容共同組成了完整的J2ME實(shí)時(shí)運(yùn)行環(huán)境。此外,該程序可下載到手機(jī)上,隨時(shí)隨地的進(jìn)行閱讀,這樣就可以通過這種方式開發(fā)一些學(xué)習(xí)軟件,使手機(jī)用戶可有一個(gè)隨身學(xué)習(xí)的工具書。本文可算是對(duì)新技術(shù)的一些嘗試,代表對(duì)無線平臺(tái)應(yīng)用程序推廣的一些努力。J2ME技術(shù)目前最流行的就是在制作手機(jī)游戲方面,JAVA手機(jī)的出現(xiàn)使得這一技術(shù)更有它的用武之地,發(fā)揮著他靈活、輕便、快捷的作用。s merce using and so on all may expand wireless to es up, already became the hot spot based on the J2ME platform handset using the development..This essay first analyses the important role of J2 ME in thedevelopment of mobile terminal, the advantage of choosing J2ME as the development platform of mobile application. Developed a multimedia telephone reader application on the J2MEJ2ME平臺(tái)由于自身的特點(diǎn),己經(jīng)成為當(dāng)前業(yè)界流行的無線應(yīng)用開發(fā)支柱平臺(tái)。 國內(nèi)外越來越多的廠商在Sun公司、摩托羅拉、西門子等公司的技術(shù)支持下開始開發(fā)基于J2ME平臺(tái)的無線應(yīng)用服務(wù)。關(guān)鍵詞: 移動(dòng)設(shè)備,J2ME,MIDP,閱讀器Mobile STANDALONE NOVEL DESIGN AND DEVELOPMENT OF READERAbstractIn recent years, along with the information technology rapid development, Mobile munication and the Internet fusion is day by day obvious, took the electronic merce domain the strength for new lifeMobile Commerce, started to bee the tradition electronic merce the beneficial supplement, demonstrated the huge development potential and the growth motion merce by its nimble, simple, the convenient characteristic is receiving the more and more many person39。為此 ,人們提出了各種各樣的解決方案 ,其中基于 JAVA的 J2ME方案無疑是最引人注目的。依托這樣的市場,一旦無線Java應(yīng)用大規(guī)模開展起來,將會(huì)創(chuàng)造出比短信業(yè)務(wù)更為驚人的利潤。保持程序操作的簡易是最基本的要求。通過對(duì)J2ME的詳細(xì)介紹我們可以從中了解到其自身的作用,近年來,隨著JAVA手機(jī)的誕生,其無可替代的靈活性與輕便性致使JAVA手機(jī)游戲成為游戲市場的又一亮點(diǎn),它的前景無可限量,必將在我們以后的生活中發(fā)揮著重要的作用。消費(fèi)者希望桌面計(jì)算機(jī)和筆記本電腦上的軟件和功能同樣能夠運(yùn)行在移動(dòng)電話和個(gè)人數(shù)字助理上。 J2ME架構(gòu)J2ME架構(gòu)的模塊化設(shè)計(jì)使應(yīng)用程序可以靈活適應(yīng)小型計(jì)算設(shè)備的限制。MIDP層由用戶網(wǎng)絡(luò)連接、永久存儲(chǔ)和用戶界面的java API組成。(2)輕便、精巧。另外,像日本國內(nèi)的NTT DoCoMo、JPHONE、KDDI等電信商與移動(dòng)電話制造商也都曾參與了MIDPEG。 Java Appication Manager手機(jī)中負(fù)責(zé)調(diào)配程序運(yùn)行資源的管理后臺(tái)是Java Application Manager。這就需要進(jìn)行適當(dāng)?shù)脑O(shè)計(jì)。、開始、動(dòng)態(tài)信息畫面作為構(gòu)成一個(gè)完美程序都是必不可少的重要部分。在MIDP規(guī)格中定義了MIDlet的生命周期,以及可以存在的三種狀態(tài),包括Paused、Active以及Destroyed,每一個(gè)MIDlet在任何時(shí)刻只可能處于其中的一個(gè)狀態(tài)。Logo 畫面選項(xiàng)畫面主程序屏幕繪圖顯示閱讀進(jìn)度顯示GameOver顯示歷史書簽表About開始初始化參數(shù)死亡時(shí)符合結(jié)束條件時(shí)圖 32 本程序的主流程圖 Canvas類為了能有程序開發(fā)人員控制接口的外觀和行為,需要使用大量的初級(jí)用戶接口類,尤其在游戲程序中,幾乎完全依賴的就是Canvas抽象類進(jìn)行繪圖。其對(duì)象會(huì)被傳給Canvas的paint()函數(shù),以便最終顯示。,這些游戲移植性問題初步得到了解決。所謂的Sprite,就是畫面上獨(dú)立移動(dòng)的圖形。LayerManager存儲(chǔ)了一個(gè)層的列表,新的層可以用函數(shù)附加、刪除和插入。一塊整圖可被分割成等大小的圖象格,每塊格有其對(duì)應(yīng)的序號(hào),按照行列遞增。實(shí)現(xiàn)了方便的管理和程序體積的精簡。 內(nèi)存檢測器Wireless Tool Kit提供了許多在運(yùn)行時(shí)監(jiān)視運(yùn)行狀態(tài)的工具。從而不能保護(hù)作者的知識(shí)成果。4 程序分析和具體實(shí)現(xiàn) 手機(jī)閱讀器讀取文本由于J2ME不可以對(duì)手機(jī)中的文件進(jìn)行讀寫,所以在開發(fā)本程序時(shí),只能在程序打包時(shí)把文本文件作為資源文件加入到J2ME發(fā)布程序中。 private String myReadLine (String testFileName) { //由輸入流對(duì)象變量in的read方法以字節(jié)為單位來讀取文件的內(nèi)容,讀取到文件尾時(shí)的值為1。本程序中的文本要求用純文本即可,每章為一個(gè)獨(dú)立的文件,每一章中均可為多段,在文本中加入的空格和各種符號(hào)都可在閱讀時(shí)如實(shí)的顯示出來。 //函數(shù)頭定義了函數(shù)的參數(shù)為文件名組成的字符串,返回值為一個(gè)字符串。 try{ //將S變量轉(zhuǎn)為字符串 //返回文件中的內(nèi)容字符串處理代碼如下: // //將f對(duì)象顯示到手機(jī)屏幕上閱讀器中的菜單設(shè)計(jì)技術(shù) //定義一個(gè)List對(duì)象l //加入第一章選項(xiàng)標(biāo)題 主要程序代碼如下:public void mandAction(Command c,Displayable s) String strContent。Form f=new Form(超級(jí)閱讀)。 strContent=myReadLine (/)。 (strContent)。 break。 //if開發(fā)者都有想用最簡捷經(jīng)濟(jì)的方式做事的傾向。開發(fā)者必須花費(fèi)更多的時(shí)間了解這兩個(gè)平臺(tái),但是最后的效果是很值得的。然而,你可以使用提前修正背景色來創(chuàng)建字體位圖。 解決方案基于上述所提到的種種困難,在手機(jī)開發(fā)過程中就要有針對(duì)性的提出解決方案。這樣以來這個(gè)問題便迎刃而解了。所以等到3G手機(jī)時(shí)代,在更加先進(jìn)的技術(shù)支持下,互動(dòng)游戲得以很輕松的實(shí)現(xiàn),屆時(shí)真正的手機(jī)游戲時(shí)代也許就會(huì)來臨。而且真正意義上先進(jìn)的游戲手機(jī)還沒有出現(xiàn),同時(shí)還受到來自GBA等專業(yè)游戲機(jī)的“排擠”。所以手機(jī)游戲已經(jīng)具有了它成長的基礎(chǔ),這個(gè)基礎(chǔ)要比當(dāng)年的電腦游戲穩(wěn)固得多。但這種游戲最多只是一種過渡而已,不是我們真正值得討論的游戲形式。但是它是一個(gè)靜態(tài)的瀏覽載體,手機(jī)本身幾乎不需要做任何處理過程,并且所有游戲必須通過網(wǎng)絡(luò),所有的操作都是在遠(yuǎn)程服務(wù)器上執(zhí)行的。J2ME的出現(xiàn)使這些廠商有了共同遵循的技術(shù)規(guī)范,而這樣做也完全符合Java“一處編譯,到處運(yùn)行”的基本方針,因?yàn)楝F(xiàn)在市場對(duì)軟件跨平臺(tái)的兼容性和安全性的要求變得日益強(qiáng)烈。本科期間做過很多課程設(shè)計(jì),大多規(guī)模很小。更為困難的是,J2ME為一種剛出現(xiàn)僅幾年的新技術(shù),國內(nèi)的參考資料非常少,僅有的幾本也停留在簡單的介紹階段。沒有他們的付出與犧牲,我的課題研究就談不上順利完成,再次真心地感謝和祝福他們!最后,謹(jǐn)向所有在我大學(xué)學(xué)習(xí)期間曾經(jīng)關(guān)心和幫助過本人的老師和同學(xué)表示最誠摯的謝意!。此外,互聯(lián)網(wǎng)上不少無私的學(xué)者分享了大量的經(jīng)驗(yàn),非常值得借鑒。因?yàn)槠涓鱾€(gè)模塊間的聯(lián)系十分緊密,代碼重復(fù)執(zhí)行率高,當(dāng)經(jīng)過無數(shù)次的調(diào)試、修改后,能最終看到成品,有無比自豪的心情。無線軟件編程現(xiàn)在是一個(gè)非常熱門的話題,這不但是因?yàn)樗哂袠O強(qiáng)的趣味性,并且它給人們帶來了無限商機(jī),大家都知道現(xiàn)在搞互聯(lián)網(wǎng)游戲的公司都是業(yè)績斐然。雖然這個(gè)“爪哇”與臺(tái)式機(jī)中的Java相比還有很大的限制,但是它已經(jīng)極大地提高了移動(dòng)電話支持游戲的能力。如今的彩信和已成熟運(yùn)營2年多的GPRS,即將到來的3G時(shí)代給手機(jī)游戲帶來更大的發(fā)展空間,而且手機(jī)游戲的開發(fā)也將應(yīng)用于各種新技術(shù)之上,讓用戶更容易擁有手機(jī)游戲帶來的樂趣。這也是一般手機(jī)用戶對(duì)于手機(jī)游戲的印象,所以很多人在買手機(jī)時(shí),并不是很看重手機(jī)的游戲功能。手機(jī)游戲如果形成玩家互動(dòng)形式的在線游戲,那么在運(yùn)行時(shí)就會(huì)占用過多的通信網(wǎng)絡(luò)資源,必然使得現(xiàn)有的網(wǎng)絡(luò)不堪重負(fù)。手機(jī)游戲市場越來越被看好,成為游戲業(yè)新的增長點(diǎn)。6 總結(jié)與展望 J2ME手機(jī)游戲的優(yōu)勢在手機(jī)游戲制作完成之后,其最大的優(yōu)勢就在于:讓品質(zhì)決定一切。在J2ME和其他開發(fā)環(huán)境中,任何使用JAVA寫的代碼都可以使用C++編寫,并且可以更快更好。 不同的屏幕尺寸問題圖形是軟件的一個(gè)關(guān)鍵的方面,描畫速度是一個(gè)重要的程序函數(shù)。J2ME是一個(gè)解釋語言,運(yùn)行在有虛擬機(jī)的任何操作系統(tǒng)上,通常運(yùn)行速度很慢,而且在優(yōu)化代碼上有許多的困難。關(guān)鍵步驟是設(shè)計(jì)思路、試制、生產(chǎn)和產(chǎn)品質(zhì)量檢測。 //判斷選中的是哪一章標(biāo)題則進(jìn)行該章內(nèi)容閱讀界面 {(exitCommand)。 ()。 ()。 InputStream本系統(tǒng)要閱讀三章內(nèi)容,所以制作了三個(gè)文本文件,、將三個(gè)文件存入test\res文件夾中,到此文本內(nèi)容準(zhǔn)備完成。 } 系統(tǒng)設(shè)計(jì) 基本概念本文利用J2ME技術(shù)開發(fā)了一個(gè)文本閱讀器,實(shí)現(xiàn)了手機(jī)對(duì)文本文件的顯示,給出了該程序的實(shí)現(xiàn)代碼,并對(duì)其關(guān)鍵技術(shù)進(jìn)行了詳細(xì)闡述。 } ch=()。 ( ch )。 while ( ch!= 1 ) { s = new ByteArrayOutputStream()。 //由文件名參數(shù)來定義一個(gè)輸入流對(duì)象變量in in = ().getResourceAsStream(testFileName)。在J2ME中如何讀取文本文件的內(nèi)容,在本系統(tǒng)中寫了一個(gè)函數(shù)用來讀取指定的文本文件,文本文