【摘要】隨著手機(jī)等移動(dòng)業(yè)務(wù)的普適增長(zhǎng)和其終端設(shè)備技術(shù)的不斷升級(jí),J2ME(java 2 Platform Micro Edition)以及J2EE(java 2 Platform Enterprise Edition)技術(shù)也在飛速發(fā)展起來(lái)。無(wú)線網(wǎng)絡(luò)已經(jīng)越來(lái)越多的向3G靠攏,Internet正在朝無(wú)線型、移動(dòng)型轉(zhuǎn)變。本文簡(jiǎn)要介紹了J2ME的技術(shù)體系結(jié)構(gòu)和MIDlet的相關(guān)內(nèi)容,并進(jìn)一步運(yùn)用J2ME通過(guò)Servlet訪問(wèn)數(shù)據(jù)庫(kù)技術(shù)設(shè)計(jì)了一個(gè)手機(jī)銀行賬戶查詢系統(tǒng)。
【關(guān)鍵詞】JAVA ME;手機(jī)程序;游戲開(kāi)發(fā);MIDlet
【中圖號(hào)】TP30【文獻(xiàn)標(biāo)示碼】A【文章編號(hào)】1005-1074(2009)03-0080-01
手機(jī)游戲成績(jī)斐然,成為IT產(chǎn)業(yè)中增長(zhǎng)最快的部分之一.縱觀IT產(chǎn)業(yè)的歷史,計(jì)算機(jī)游戲已經(jīng)成為技術(shù)創(chuàng)新背后的動(dòng)者渴望更加強(qiáng)大的硬件計(jì)算能力;渴望不受不同的軟件的限制?無(wú)論是將圖形強(qiáng)制在人工智能(AI)上還是網(wǎng)絡(luò)安全性。游戲開(kāi)發(fā)者和玩家常常是前沿計(jì)算機(jī)技術(shù)的最早的采用者。由于他們的創(chuàng)新天性,游戲不再是由大型采購(gòu)公司控制的技術(shù)產(chǎn)品
1手機(jī)游戲應(yīng)具有的特征
一個(gè)手機(jī)游戲應(yīng)該具有以下特征:①易于學(xué)習(xí):既然手機(jī)游戲面向的是普通消費(fèi)者而不是計(jì)算機(jī)專(zhuān)家,那么他們不可能深入的學(xué)習(xí)游戲技巧。消費(fèi)者不會(huì)花幾個(gè)小時(shí)去研究一個(gè)3元的手動(dòng)操作的游戲。保持游戲的簡(jiǎn)單是最基本的要求。②可中斷性:多任務(wù)處理是手機(jī)生活方式的基本特征。手機(jī)用戶常常在任務(wù)(如等一個(gè)電子郵件或者等車(chē))之間有一小段時(shí)間。而游戲、日歷管理、通訊和工作數(shù)據(jù)訪問(wèn)使用的是同一個(gè)設(shè)備。所以一個(gè)好的手機(jī)游戲應(yīng)該提供短時(shí)間的娛樂(lè)功能,并且允許用戶在游戲和工作模式之間順利切換。③基于訂閱:手機(jī)游戲的盈利成功取決于他們巨大的使用量。如果一個(gè)手機(jī)游戲開(kāi)發(fā)者要贏利的話,重要的是:同一個(gè)游戲引擎,多個(gè)標(biāo)題,基本的故事情節(jié)類(lèi)似。基于訂閱的游戲是不斷產(chǎn)生收入的最好方法。④豐富的社會(huì)交互:不管一個(gè)游戲設(shè)計(jì)得多好,只要玩家找到了它的根本模式或者玩完了所有的游戲路徑很快就會(huì)厭煩這個(gè)游戲。對(duì)于一個(gè)基于訂閱的游戲,重要的是與別的玩家合作以增強(qiáng)所玩游戲的智力和隨機(jī)性。
2Java語(yǔ)言的特點(diǎn)
2.1平臺(tái)無(wú)關(guān)性Java引進(jìn)虛擬機(jī)原理,并運(yùn)行于虛擬機(jī),實(shí)現(xiàn)不同平臺(tái)之間的Java接口。使用Java編寫(xiě)的程序能在世界范圍內(nèi)共享。Java的數(shù)據(jù)類(lèi)型與機(jī)器無(wú)關(guān)。
2.2安全性Java的編程類(lèi)似C++,但舍棄了C++的指針對(duì)存儲(chǔ)器地址的直接操作,程序運(yùn)行時(shí),內(nèi)存由操作系統(tǒng)分配,這樣可以避免病毒通過(guò)指針入侵系統(tǒng)。它提供了安全管理器,防止程序的非法訪問(wèn)。
2.3面向?qū)ο驤ava吸收了C++面向?qū)ο蟮母拍?,將?shù)據(jù)封裝于類(lèi)中,實(shí)現(xiàn)了程序的簡(jiǎn)潔性和便于維護(hù)性,使程序代碼可以只需一次編譯就可反復(fù)利用。
2.4分布式Java建立在TCP/IP網(wǎng)絡(luò)平臺(tái)上,提供了用HTTP和FTP協(xié)議傳送和接收信息的庫(kù)函數(shù),使用其相關(guān)技術(shù)可以十分方便的構(gòu)建分布式應(yīng)用系統(tǒng)。
2.5健壯性Java致力與檢查程序在編譯和運(yùn)行時(shí)的錯(cuò)誤,并自動(dòng)回收內(nèi)存,減少了內(nèi)存出錯(cuò)的可能性。Java取消了C語(yǔ)言的結(jié)構(gòu)、指針、#define語(yǔ)句、多重繼承、goto語(yǔ)句、操作符、重載等不易被掌握的特性,提供垃圾收集器自動(dòng)回收不用的內(nèi)存空間。
3設(shè)計(jì)手機(jī)游戲程序需要解決的主要技術(shù)問(wèn)題
3.1游戲程序是一項(xiàng)精度要求很高的程序系統(tǒng),因?yàn)槠浯a利用率很高。一個(gè)實(shí)時(shí)運(yùn)行的最終作品,每秒都會(huì)運(yùn)行成千上萬(wàn)行程序,繪圖事件、鍵盤(pán)事件都會(huì)以極高的頻率在后臺(tái)等待響應(yīng),若有絲毫的差別都將很容易導(dǎo)致程序在運(yùn)行不久后可能出現(xiàn)嚴(yán)重錯(cuò)誤,甚至死循環(huán)。因此,其邏輯設(shè)計(jì)應(yīng)當(dāng)相當(dāng)嚴(yán)謹(jǐn),需將所有可能發(fā)生的事件及意外情況考慮在設(shè)計(jì)中。
3.2游戲中為了美觀,適用性強(qiáng),可能需要采用外部文件引入的圖片貼圖,有關(guān)貼圖,在MIDP2.0中提供了用于增強(qiáng)游戲功能的game包,使得解決靜態(tài)或動(dòng)態(tài)、畫(huà)面背景、屏幕刷新的雙緩沖等都有較好的解決方案。
3.3游戲的地圖不可能通過(guò)繪圖來(lái)解決。否則,不僅難于控制和處理過(guò)多的元素,也會(huì)因過(guò)多的大型圖片而不能限制程序的大小,失去手機(jī)上程序的原則和Java的優(yōu)勢(shì)。
JAVA手機(jī)網(wǎng)[www.cnjm.net]8.Java是基于虛擬機(jī)的半解釋型編譯系統(tǒng),其執(zhí)行效率較C++等完全編譯后的程序會(huì)低很多,程序如果不進(jìn)行精簡(jiǎn)和優(yōu)化,將可能導(dǎo)致運(yùn)行的不流暢。除開(kāi)發(fā)過(guò)程中對(duì)結(jié)構(gòu)上的控制、變量的使用、算法的優(yōu)化等優(yōu)化外,還可以使用混淆器(Obfuscator)進(jìn)行程序打包后的優(yōu)化。
3.4游戲的結(jié)束、開(kāi)始、動(dòng)態(tài)信息畫(huà)面作為構(gòu)成一個(gè)程序都是必不可少的重要部分。良好的用戶界面更是吸引用戶的硬指標(biāo),相關(guān)的美術(shù)構(gòu)圖和人性化設(shè)置也需要有一定的考慮。以上相關(guān)技術(shù)細(xì)節(jié)和整體流程將分別在以下小節(jié)闡述。
做過(guò)很多課程設(shè)計(jì),大多規(guī)模很小。在數(shù)據(jù)庫(kù)、各種應(yīng)用軟件和游戲中,我仍覺(jué)得對(duì)游戲的設(shè)計(jì)有極大的熱情。因?yàn)槠涓鱾€(gè)模塊間的聯(lián)系十分緊密,代碼重復(fù)執(zhí)行率高,當(dāng)經(jīng)過(guò)無(wú)數(shù)次的調(diào)試、修改后,能最終看到成品,有無(wú)比自豪的心情。相比一些數(shù)據(jù)庫(kù)軟件,游戲的設(shè)計(jì)有很多人情色彩和藝術(shù)思想的發(fā)揮,正式商業(yè)的軟件的人性化界面和各個(gè)游戲間迥異的結(jié)構(gòu)每每會(huì)讓人有去開(kāi)發(fā)的沖動(dòng)。