- J2ME手機(jī)游戲設(shè)計(jì)與開發(fā)
- 劉暢 張旭輝編著
- 477字
- 2019-01-01 07:08:42
1.1 J2ME基本概述
1.1.1 Java概述
Java是由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計(jì)語(yǔ)言和Java平臺(tái)的統(tǒng)稱。經(jīng)過多年的發(fā)展,Java已經(jīng)成為一個(gè)全面成熟的面向?qū)ο髴?yīng)用程序開發(fā)平臺(tái),使用廣泛。
Java分為3個(gè)體系:J2SE、J2EE和J2ME。
J2SE,即Java2 Platform Standard Edition,Java平臺(tái)標(biāo)準(zhǔn)版。它是允許開發(fā)和部署在桌面、服務(wù)器、嵌入式環(huán)境和實(shí)時(shí)環(huán)境中使用的Java應(yīng)用程序。J2SE 包含了支持Java Web服務(wù)開發(fā)的類,并為J2EE提供基礎(chǔ),主要用于傳統(tǒng)且成熟的桌面系統(tǒng)。
J2EE,即Java2 Platform Enterprise Edition,Java平臺(tái)企業(yè)版。企業(yè)版本的Java平臺(tái)幫助開發(fā)和部署可移植、健壯、可伸縮且安全的服務(wù)器端Java2應(yīng)用程序。J2EE是在J2SE的基礎(chǔ)上構(gòu)建的,它提供Web服務(wù)、組件模型、管理和通信API,可以用來(lái)實(shí)現(xiàn)企業(yè)級(jí)的面向服務(wù)體系結(jié)構(gòu)(Service-Oriented Architecture,SOA)和Web 2.0應(yīng)用程序。
J2ME,即Java2 Platform Micro Edition,Java平臺(tái)微型版。J2ME為在移動(dòng)設(shè)備和嵌入式設(shè)備(比如手機(jī)、PDA、電視機(jī)頂盒和打印機(jī))上運(yùn)行的應(yīng)用程序提供一個(gè)健壯且靈活的環(huán)境。J2ME包括靈活的用戶界面、健壯的安全模型、許多內(nèi)置的網(wǎng)絡(luò)協(xié)議,以及對(duì)可以動(dòng)態(tài)下載的聯(lián)網(wǎng)和離線應(yīng)用程序的豐富支持。基于J2ME規(guī)范的應(yīng)用程序只需編寫一次,就可以用于許多設(shè)備,而且可以利用每個(gè)設(shè)備的本機(jī)功能。
Java的版本結(jié)構(gòu)如圖1-1所示。

圖1-1 Java的版本結(jié)構(gòu)
1.1.2 J2ME的體系結(jié)構(gòu)
J2ME根據(jù)其技術(shù)架構(gòu)分為簡(jiǎn)表層(Profiles)、配置層(Configurations)和Java虛擬機(jī)(Java Virtual Machines,JVM)3層,然后在每一層中再細(xì)分。J2ME體系的一般結(jié)構(gòu)是由Configurations定義的Java虛擬機(jī)運(yùn)行于設(shè)備的宿主操作系統(tǒng)(Host Operating System)之上,構(gòu)成整個(gè)平臺(tái)的基礎(chǔ)。Configurations提供了基本的語(yǔ)言特性,Profiles提供針對(duì)設(shè)備的特殊功能API和擴(kuò)展類庫(kù)。應(yīng)用程序的運(yùn)行環(huán)境需要一個(gè)Configuration和至少一個(gè)Profile,多個(gè)Profile可以共存,也可以疊加。J2ME的分層結(jié)構(gòu)如圖1-2所示。

圖1-2 J2ME 的分層結(jié)構(gòu)
Java虛擬機(jī)層針對(duì)設(shè)備操作系統(tǒng)定制的Java虛擬機(jī)的實(shí)現(xiàn),支持特定的J2ME配置,是J2ME運(yùn)行的核心。
Configurations層的分類是根據(jù)計(jì)算能力的不同來(lái)劃分的,同類設(shè)備的計(jì)算能力相近。Configurations是一個(gè)規(guī)范,定義了這類設(shè)備的共同Java平臺(tái),定義與設(shè)備無(wú)關(guān)的Java虛擬機(jī)和核心庫(kù),是平臺(tái)相容性的基礎(chǔ)。Configurations定義了一個(gè)基本的J2ME運(yùn)行環(huán)境,滿足該設(shè)備的Java虛擬機(jī)功能的最小子集和針對(duì)該族設(shè)備的Java類庫(kù)的最小集合,主要針對(duì)的是系統(tǒng)級(jí)的特性。
Profiles層的分類是根據(jù)設(shè)備功能劃分的,同類功能的設(shè)備的其他各種硬件條件和需求也相近。Profiles是一組API,在某一個(gè)Configuration的基礎(chǔ)上擴(kuò)展了針對(duì)設(shè)備特定功能的API,使得標(biāo)準(zhǔn)能夠完全適應(yīng)特殊的設(shè)備,徹底發(fā)揮設(shè)備的功能。簡(jiǎn)表Profiles是構(gòu)建在配置層Configurations之上的一層類庫(kù),提供Configurations層中所缺失的功能以支持特定的設(shè)備,主要提供了應(yīng)用程序級(jí)的接口
注意:一個(gè)設(shè)備可以支持多個(gè)Profile。
1.1.3 J2ME規(guī)范
在國(guó)際上,有一個(gè)由Sun主導(dǎo)的標(biāo)準(zhǔn)化組織JCP(Java Community Process),該組織根據(jù)領(lǐng)域的不同,分為3個(gè)大的工作方向,即J2EE、J2SE和J2ME。而J2ME領(lǐng)域的標(biāo)準(zhǔn)的制定者,包括業(yè)界知名的運(yùn)營(yíng)商,如Vodafone、Orange、中國(guó)移動(dòng)等;終端制造商,如Nokia、Motorola、Sumsung等;提供Java虛擬機(jī)的廠商,如IBM、Aplix、Esmertec等;以及一些感興趣的公司團(tuán)體。
JCP中的每個(gè)規(guī)范被稱為JSR(Java Specification Request)。各個(gè)JSR分別從不同的角度對(duì)Java虛擬機(jī)的能力進(jìn)行了規(guī)范,并對(duì)應(yīng)一個(gè)數(shù)字編號(hào),如JSR75規(guī)定了Java應(yīng)用如何通過虛擬機(jī)提供的接口來(lái)訪問終端操作系統(tǒng)的PIM數(shù)據(jù)和文件系統(tǒng)。此外,還包括針對(duì)藍(lán)牙、多媒體、短信、彩信等的規(guī)范。而這些規(guī)范的發(fā)布、更新和維護(hù)由JCP來(lái)統(tǒng)一管理,確保了讓業(yè)界不同角色的廠商能夠共同參與定義J2ME平臺(tái)的能力,共同推進(jìn)Java技術(shù)向前發(fā)展。
JTWI(Java Technology for the Wireless Industry,JSR185)正是為了完成“建立一個(gè)標(biāo)準(zhǔn)來(lái)保證J2ME應(yīng)用程序的跨平臺(tái)性”這個(gè)目的而出現(xiàn)的。
JTWI對(duì)如下的一些方面進(jìn)行了規(guī)范,實(shí)現(xiàn)JTWI的設(shè)備必須遵守這些規(guī)范。
(1)規(guī)定了標(biāo)準(zhǔn)應(yīng)用程序的大小,設(shè)備必須支持64KB大小的應(yīng)用程序和5KB大小的JAD文件。持久性存儲(chǔ)的大小為30KB,heap空間從MIDP 2.0中的128KB提高到256KB。
(2)記事功能,可以使用PushRegistry的registerAlarm()方法來(lái)實(shí)現(xiàn)。
(3)JSR185對(duì)設(shè)備的屏幕尺寸建議為125×125/12bit。設(shè)備必須支持JPEG格式的圖片。HTTP1.1必須被支持。
(4)JSR185是基于WMA的,因此設(shè)備必須具備發(fā)送和接受短消息的能力,JSR185還規(guī)定,應(yīng)用程序在準(zhǔn)備發(fā)送短消息的時(shí)候,當(dāng)提供了TextField和TextBox組件時(shí),應(yīng)該可以給用戶彈出本機(jī)的電話本以供選擇。
(5)對(duì)移動(dòng)多媒體進(jìn)行支持,必須實(shí)現(xiàn)對(duì)MIDI和單音的支持。
表1-1中列舉了一些在J2ME發(fā)展史上比較重要的JSR及其功能描述。
表1-1 J2ME規(guī)范及其功能描述
1.1.4 手機(jī)平臺(tái)開發(fā)
隨著手機(jī)的迅速普及和不斷更新,人們對(duì)于手機(jī)的要求已不單單是通信,還有很多增值服務(wù)及娛樂功能,所以手機(jī)平臺(tái)上的軟件開發(fā)已經(jīng)成為IT產(chǎn)業(yè)中增長(zhǎng)最快的部分之一。
手機(jī)已經(jīng)與現(xiàn)代生活方式緊緊地結(jié)合在一起。它們是人們最普遍攜帶的個(gè)人用品中僅次于鑰匙和錢包的東西。你可以隨時(shí)看到一個(gè)人在任何地點(diǎn)低頭擺弄自己的手機(jī),巨大的使用量使得手機(jī)平臺(tái)上的軟件開發(fā)成為一個(gè)非常具有潛力的行業(yè),尤其是手機(jī)游戲的開發(fā)。那么由于手機(jī)平臺(tái)具有自己獨(dú)特的性質(zhì),它也為手機(jī)游戲開發(fā)提出了獨(dú)特的要求。
1.手機(jī)游戲的優(yōu)勢(shì)
(1)規(guī)模小、周期短:由于手機(jī)平臺(tái)硬件設(shè)備上的限制,所以手機(jī)游戲通常不需要大量的人力、物力,三五個(gè)人的團(tuán)隊(duì)即可,而且開發(fā)周期很多,如果有較好的構(gòu)思和創(chuàng)意,可能一周甚至幾天就可以完成一個(gè)手機(jī)游戲的開發(fā)。
(2)網(wǎng)絡(luò)支持:隨著手機(jī)的不斷發(fā)展,手機(jī)對(duì)于網(wǎng)絡(luò)的支持已經(jīng)比較成熟,因此對(duì)于一些聯(lián)網(wǎng)游戲的開發(fā)也提供了很大的空間。
(3)龐大的用戶群:以目前的手機(jī)市場(chǎng)規(guī)模來(lái)看,已經(jīng)是人手一機(jī),而且因?yàn)槭謾C(jī)隨身攜帶方便,已經(jīng)逐漸取代MP3、MP4、電子書及游戲機(jī)。
2.手機(jī)游戲的限制
(1)內(nèi)存空間有限:盡管手機(jī)在不斷地發(fā)展,無(wú)論是硬件平臺(tái)還是各種各樣的智能系統(tǒng)都不能改變手機(jī)在內(nèi)存及硬件空間上無(wú)法與普通計(jì)算機(jī)比擬的現(xiàn)狀,所以在進(jìn)行手機(jī)游戲開發(fā)時(shí)要注意應(yīng)用程序的大小。
(2)屏幕大小:現(xiàn)在的手機(jī)已經(jīng)在盡可能地節(jié)省空間,擴(kuò)大屏幕,例如全觸屏的實(shí)現(xiàn),但是為了保持它隨身攜帶的方便,屏幕沒有辦法無(wú)限大,這樣在進(jìn)行游戲開發(fā)時(shí)畫面大小與美工排版都是開發(fā)者需要考慮的問題。
(3)耗電:手機(jī)功能的不斷完善是對(duì)手機(jī)電池的一種考驗(yàn),在進(jìn)行游戲開發(fā)時(shí)除了考慮到手機(jī)性能之外,還要考慮耗電的問題,這個(gè)問題可能更多的時(shí)候要從美工的角度來(lái)考慮。
3.成功的手機(jī)游戲應(yīng)具有的特征
(1)可中斷性:當(dāng)用戶在玩游戲時(shí),突然有電話進(jìn)來(lái),這時(shí)正在進(jìn)行的游戲就會(huì)中止,這就要求游戲程序必須能夠自動(dòng)暫停游戲的執(zhí)行,而且保存玩家的進(jìn)度。
(2)短時(shí)間的游戲:因?yàn)槭謾C(jī)游戲往往是在一些短的時(shí)間間隙來(lái)進(jìn)行的,例如候車、等人,所以設(shè)計(jì)的游戲要在一個(gè)相對(duì)較短的時(shí)間內(nèi)給玩家一個(gè)過關(guān)的游戲體驗(yàn)。
(3)小型化:手機(jī)游戲一定要小型化,適合在手機(jī)平臺(tái)上玩,避免游戲加載時(shí)間過長(zhǎng),避免元素過多,避免界面混亂。
(4)易于學(xué)習(xí):既然手機(jī)游戲面向的是普通消費(fèi)者而不是計(jì)算機(jī)高手,那么他們不可能深入地學(xué)習(xí)游戲技巧,更不可能像網(wǎng)絡(luò)游戲一樣會(huì)有一本專門的游戲攻略,所以游戲必須是一下載就可以玩的。
- 計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用基礎(chǔ)
- Lightning Fast Animation in Element 3D
- Azure PowerShell Quick Start Guide
- Linux嵌入式系統(tǒng)開發(fā)
- 經(jīng)典Java EE企業(yè)應(yīng)用實(shí)戰(zhàn)
- 案例解說(shuō)Delphi典型控制應(yīng)用
- 輸送技術(shù)、設(shè)備與工業(yè)應(yīng)用
- 工業(yè)控制系統(tǒng)安全
- 從實(shí)踐中學(xué)嵌入式Linux操作系統(tǒng)
- Data Science with Python
- TensorFlow 2.0卷積神經(jīng)網(wǎng)絡(luò)實(shí)戰(zhàn)
- Learn Power BI
- 華人動(dòng)畫師的法蘭西印象
- iLike職場(chǎng)大學(xué)生就業(yè)指導(dǎo):C和C++方向
- 光電檢測(cè)技術(shù)與系統(tǒng)