基于多平臺(tái)的移動(dòng)終端網(wǎng)絡(luò)應(yīng)用探析
時(shí)間:
臧海峰 1由 分享
[論文關(guān)鍵詞]BREW; J2ME;網(wǎng)絡(luò)
[論文摘要]本文以BREW和J2ME兩種技術(shù)為基礎(chǔ),通過(guò)互聯(lián)網(wǎng)上服務(wù)器實(shí)現(xiàn)不同平臺(tái)移動(dòng)終端的數(shù)據(jù)交互與信息共享。在應(yīng)用中用戶(hù)可以持有不同平臺(tái)的移動(dòng)終端進(jìn)入同一個(gè)應(yīng)用空間。用實(shí)例對(duì)移動(dòng)終端網(wǎng)絡(luò)進(jìn)行了研究。
1.BREW,J2ME技術(shù)簡(jiǎn)介
1.1 BREW簡(jiǎn)介
BREW是Binary Runtime Environment for Wireless(無(wú)線(xiàn)二進(jìn)制運(yùn)行環(huán)境)的縮寫(xiě),是美國(guó)高通為無(wú)線(xiàn)數(shù)據(jù)應(yīng)用程序開(kāi)發(fā)和執(zhí)行提供的通用接口平臺(tái),是高通公司提供的全面的、端到端的無(wú)線(xiàn)應(yīng)用開(kāi)發(fā)、設(shè)備配置、應(yīng)用分發(fā)、計(jì)費(fèi)和支付的解決方案。
BREW提供了一套應(yīng)用程序接口(API ),設(shè)備制造商和開(kāi)發(fā)入員可 以隨時(shí)對(duì)運(yùn)行環(huán)境進(jìn)行擴(kuò)展,提供應(yīng)用程序需要的各種附加性能模塊。BREW商業(yè)運(yùn)行的核心是BREW發(fā)布系統(tǒng)。允許運(yùn)營(yíng)商自主控制和管理應(yīng)用程序發(fā)布、定價(jià)以及他們?yōu)橛脩?hù)提供的服務(wù)。BREW要求所有的BREW應(yīng)用都要通過(guò)第三方的測(cè)試,這樣將不會(huì)對(duì)終端用戶(hù)造成傷害,還保證了應(yīng)用的設(shè)計(jì)功能的實(shí)現(xiàn)。
1.2 J2ME簡(jiǎn)介
Java最初是為了開(kāi)發(fā)嵌入式系統(tǒng)而設(shè)計(jì)的一種語(yǔ)言。Sun的開(kāi)發(fā)小組在20世紀(jì)90年代初期的工作目標(biāo),是滿(mǎn)足剛剛發(fā)展起來(lái)的嵌入式計(jì)算機(jī)市場(chǎng)對(duì)軟件的需求,但隨著因特網(wǎng)提供的更具競(jìng)爭(zhēng)力的機(jī)會(huì),這項(xiàng)工作轉(zhuǎn)移了目標(biāo)。Sun小組并沒(méi)有為Java補(bǔ)充額外的API,而是與Java Community Process Program一起,將Java程序設(shè)計(jì)語(yǔ)言Java虛擬機(jī)分開(kāi)。他們將Java API和JVM縮減到為支持嵌入式系統(tǒng)和微型計(jì)算機(jī)設(shè)備所需的最少的代碼。這是必要的,因?yàn)橛邢薜馁Y源限制了這些設(shè)備的硬件設(shè)計(jì)。他們努力工作的結(jié)果就是J2ME的誕生。J2ME是Java API和VJM虛擬機(jī)的一個(gè)縮減版本,它設(shè)計(jì)用來(lái)在新型的嵌入式計(jì)算機(jī)和微型計(jì)算機(jī)所能提供的有限資源內(nèi)進(jìn)行操作。
2、應(yīng)用系統(tǒng)概況
2.1系統(tǒng)概況
以手機(jī)為主的移動(dòng)終端上的應(yīng)用隨著技術(shù)的發(fā)展,朝著網(wǎng)絡(luò)化方向在不斷前進(jìn)。在國(guó)內(nèi)運(yùn)行的網(wǎng)絡(luò)有GPRS和CDMA。兩大移動(dòng)運(yùn)營(yíng)商里,中國(guó)移動(dòng)的用戶(hù)群,其手機(jī)終端運(yùn)行于GPRS上,聯(lián)通用戶(hù),其手機(jī)終端運(yùn)行于CDMA之上,現(xiàn)在CDMA網(wǎng)絡(luò)處于CDMAIX階段。本應(yīng)用系統(tǒng)就是建立融合多平臺(tái)的大型網(wǎng)絡(luò)應(yīng)用,通過(guò)互聯(lián)網(wǎng)上服務(wù)器實(shí)現(xiàn)不同平臺(tái)移動(dòng)終端的數(shù)據(jù)交互與信息共享。在應(yīng)用中用戶(hù)可以持有不同平臺(tái)的移動(dòng)終端進(jìn)入同一個(gè)應(yīng)用空間。
2.2功能描述
主菜單:完成游戲各個(gè)功能的選擇,包括有新游戲的進(jìn)入,聲音開(kāi)關(guān)的設(shè)置,為用戶(hù)提供的幫助等等。
新游戲:游戲的主循環(huán)體。
保存進(jìn)度:在玩游戲的過(guò)程中,如果需要保存,則將游戲中的主要信息寫(xiě)入持久存儲(chǔ)系統(tǒng)中,具體是寫(xiě)入一個(gè)二進(jìn)制文件中。
載入進(jìn)度:與保存進(jìn)度的作用相反,將保存好的二進(jìn)制文件讀出,并將游戲的狀態(tài)恢復(fù)到玩家保存處。
事件的處理:在游戲的過(guò)程中,應(yīng)用系統(tǒng)要接受來(lái)自用戶(hù)的按鍵事件,外界的來(lái)電中斷和短消息信息等等。對(duì)于此類(lèi)事件,游戲中要進(jìn)行相應(yīng)的事件處理。
屏幕的繪制:游戲應(yīng)用中,畫(huà)面的處理很關(guān)鍵,屏幕的繪制主要分為背景的繪制和精靈的繪制兩種。
游戲的邏輯處理:這是游戲應(yīng)用的中心,在邏輯處理中,會(huì)用到很多入工智能的方法,提高游戲的可玩性。
3,應(yīng)用實(shí)現(xiàn)的關(guān)健問(wèn)題
3 .1原則
應(yīng)用在手機(jī)終端上的游戲與PC游戲的不同主要是由于手機(jī)與PC的CPU不同造成的。隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,PC機(jī)的CPU運(yùn)算速率越來(lái)越快,內(nèi)存容量也不斷增大;雖然手機(jī)的技術(shù)也在不斷的發(fā)展,大容量?jī)?nèi)存和較快CPU運(yùn)算速度的手機(jī)不斷面市,但是在與PC機(jī)進(jìn)行對(duì)比時(shí),我們很容易就發(fā)現(xiàn),手機(jī)的CPU運(yùn)算速率仍然比較慢,內(nèi)存容量仍然比較小。因此,在設(shè)計(jì)游戲的時(shí)候,不能像PC游戲那樣使用大量的資源,也就是說(shuō),游戲的資源要盡可能小。
其次,手機(jī)作為手持設(shè)備,其屏幕相對(duì)PC機(jī)比較小,盡管目前技術(shù)的發(fā)展使手機(jī)分辨率不斷提高,但是屏幕仍然較小,另外,不同的手機(jī)的屏幕的大小也不盡相同,因此,游戲在設(shè)計(jì)時(shí)更加考慮到屏幕大小的問(wèn)題,而對(duì)于PC游戲這方面考慮的則少得多。同時(shí)手機(jī)的輸入設(shè)備相對(duì)單一,又由于手機(jī)作為手持移動(dòng)設(shè)備來(lái)講,不可能做得很大,事實(shí)上,手機(jī)也有向更小型化和超薄化發(fā)展的趨勢(shì),因此,對(duì)于手機(jī)游戲來(lái)講,不可能與具有鼠標(biāo)、鍵盤(pán)的PC機(jī)上的游戲相比,PC游戲往往操作比較復(fù)雜,而手機(jī)游戲要力求輸入方便,用較少的鍵控便能操作。
由于手機(jī)開(kāi)發(fā)平臺(tái)中可以利用的資源遠(yuǎn)遠(yuǎn)小于PC游戲,因此在表現(xiàn)力上就較PC游戲差很多,這也決定了PC游戲的規(guī)模要遠(yuǎn)遠(yuǎn)大于BREW游戲,同時(shí),PC游戲的情節(jié)上較手機(jī)游戲也更加復(fù)雜。由于手機(jī)是集合通信、信息管理、娛樂(lè)等為一體的設(shè)備,對(duì)于手機(jī)來(lái)講,通信還是手機(jī)的主要功能。因此,這也決定了它比PC游戲要有中斷性,要隨時(shí)能夠中斷,在中斷結(jié)束后應(yīng)用程序也要能夠及時(shí)的恢復(fù)。
3.2存儲(chǔ)功能
游戲應(yīng)用應(yīng)該都具有能保存進(jìn)度的功能。用戶(hù)可采用間斷性的方式,在玩到一定階段時(shí),把當(dāng)前進(jìn)度保存起來(lái),等需要重新來(lái)過(guò)的時(shí)候讀取即可。這里保存的數(shù)據(jù),在用戶(hù)退出游戲后,或者關(guān)機(jī)后,數(shù)據(jù)都不能丟失。無(wú)線(xiàn)設(shè)備通常情況下有兩種類(lèi)型的內(nèi)存:用于正在運(yùn)行著的應(yīng)用程序的內(nèi)存和用于持久存儲(chǔ)的內(nèi)存。后者存儲(chǔ)的數(shù)據(jù)比前者時(shí)間長(zhǎng)。對(duì)于游戲存儲(chǔ)功能的實(shí)現(xiàn)就是要將數(shù)據(jù)存儲(chǔ)到持久存儲(chǔ)的內(nèi)存當(dāng)中。
BREW中提供了文件和數(shù)據(jù)庫(kù)兩種不同的方式進(jìn)行數(shù)據(jù)的持久存儲(chǔ)。J2ME提供的是一個(gè)類(lèi)似于數(shù)據(jù)庫(kù)的系統(tǒng),并不是簡(jiǎn)單的文件系統(tǒng),稱(chēng)為記錄管理系統(tǒng)(RMS) 。
3.3程序運(yùn)行速度
實(shí)際上,用戶(hù)并不在意程序有多快,而更在意程序感覺(jué)起來(lái)有多快。有很多方法可以讓程序感覺(jué)起來(lái)更快,雖然其中的一些方法使實(shí)際速度有所下降。但是仍舊需要使程序事實(shí)上更快,這樣才能做到感覺(jué)起來(lái)快。
(1)使用更快的算法,找到程序的運(yùn)行瓶頸,換用更有效和更快的算法,是提高程序速度的關(guān)鍵。
(2)將函數(shù)調(diào)用改為內(nèi)聯(lián)展開(kāi)。
(3)盡量繪制大塊圖片,而不要使用小塊圖片。
(4 )J2ME由于支持多線(xiàn)程,還可以用一種叫做延遲掩蓋的技術(shù)。所謂延遲掩蓋技術(shù),就是把程序?qū)嶋H上的延遲作了掩飾,而使用戶(hù)實(shí)際上感覺(jué)不到程序延遲。
3.4網(wǎng)絡(luò)性能
鑒于當(dāng)前的移動(dòng)的網(wǎng)絡(luò)速度較慢,而且延時(shí)較大。這樣對(duì)于程序中的網(wǎng)絡(luò)連接部分來(lái)說(shuō)需要做出最大限度約束和優(yōu)化,才能夠滿(mǎn)足當(dāng)前網(wǎng)絡(luò)苛刻的要求。避免低效協(xié)議,對(duì)于網(wǎng)絡(luò)程序來(lái)說(shuō),任何現(xiàn)有的協(xié)議都是對(duì)于擴(kuò)展性和安全性作了全面的處理,這樣不可避免的會(huì)導(dǎo)致程序的數(shù)據(jù)流量增加,對(duì)于手持設(shè)備的網(wǎng)絡(luò)連接并不使用。這個(gè)時(shí)候需要用戶(hù)自定義通信協(xié)議,一般自定義協(xié)議需要遵循的原則應(yīng)當(dāng)是使信息包體積最小、發(fā)送和接收數(shù)量最少,這樣才能夠最大限度的減小網(wǎng)絡(luò)流量和提升網(wǎng)絡(luò)的響應(yīng)速度。
[論文摘要]本文以BREW和J2ME兩種技術(shù)為基礎(chǔ),通過(guò)互聯(lián)網(wǎng)上服務(wù)器實(shí)現(xiàn)不同平臺(tái)移動(dòng)終端的數(shù)據(jù)交互與信息共享。在應(yīng)用中用戶(hù)可以持有不同平臺(tái)的移動(dòng)終端進(jìn)入同一個(gè)應(yīng)用空間。用實(shí)例對(duì)移動(dòng)終端網(wǎng)絡(luò)進(jìn)行了研究。
1.BREW,J2ME技術(shù)簡(jiǎn)介
1.1 BREW簡(jiǎn)介
BREW是Binary Runtime Environment for Wireless(無(wú)線(xiàn)二進(jìn)制運(yùn)行環(huán)境)的縮寫(xiě),是美國(guó)高通為無(wú)線(xiàn)數(shù)據(jù)應(yīng)用程序開(kāi)發(fā)和執(zhí)行提供的通用接口平臺(tái),是高通公司提供的全面的、端到端的無(wú)線(xiàn)應(yīng)用開(kāi)發(fā)、設(shè)備配置、應(yīng)用分發(fā)、計(jì)費(fèi)和支付的解決方案。
BREW提供了一套應(yīng)用程序接口(API ),設(shè)備制造商和開(kāi)發(fā)入員可 以隨時(shí)對(duì)運(yùn)行環(huán)境進(jìn)行擴(kuò)展,提供應(yīng)用程序需要的各種附加性能模塊。BREW商業(yè)運(yùn)行的核心是BREW發(fā)布系統(tǒng)。允許運(yùn)營(yíng)商自主控制和管理應(yīng)用程序發(fā)布、定價(jià)以及他們?yōu)橛脩?hù)提供的服務(wù)。BREW要求所有的BREW應(yīng)用都要通過(guò)第三方的測(cè)試,這樣將不會(huì)對(duì)終端用戶(hù)造成傷害,還保證了應(yīng)用的設(shè)計(jì)功能的實(shí)現(xiàn)。
1.2 J2ME簡(jiǎn)介
Java最初是為了開(kāi)發(fā)嵌入式系統(tǒng)而設(shè)計(jì)的一種語(yǔ)言。Sun的開(kāi)發(fā)小組在20世紀(jì)90年代初期的工作目標(biāo),是滿(mǎn)足剛剛發(fā)展起來(lái)的嵌入式計(jì)算機(jī)市場(chǎng)對(duì)軟件的需求,但隨著因特網(wǎng)提供的更具競(jìng)爭(zhēng)力的機(jī)會(huì),這項(xiàng)工作轉(zhuǎn)移了目標(biāo)。Sun小組并沒(méi)有為Java補(bǔ)充額外的API,而是與Java Community Process Program一起,將Java程序設(shè)計(jì)語(yǔ)言Java虛擬機(jī)分開(kāi)。他們將Java API和JVM縮減到為支持嵌入式系統(tǒng)和微型計(jì)算機(jī)設(shè)備所需的最少的代碼。這是必要的,因?yàn)橛邢薜馁Y源限制了這些設(shè)備的硬件設(shè)計(jì)。他們努力工作的結(jié)果就是J2ME的誕生。J2ME是Java API和VJM虛擬機(jī)的一個(gè)縮減版本,它設(shè)計(jì)用來(lái)在新型的嵌入式計(jì)算機(jī)和微型計(jì)算機(jī)所能提供的有限資源內(nèi)進(jìn)行操作。
2、應(yīng)用系統(tǒng)概況
2.1系統(tǒng)概況
以手機(jī)為主的移動(dòng)終端上的應(yīng)用隨著技術(shù)的發(fā)展,朝著網(wǎng)絡(luò)化方向在不斷前進(jìn)。在國(guó)內(nèi)運(yùn)行的網(wǎng)絡(luò)有GPRS和CDMA。兩大移動(dòng)運(yùn)營(yíng)商里,中國(guó)移動(dòng)的用戶(hù)群,其手機(jī)終端運(yùn)行于GPRS上,聯(lián)通用戶(hù),其手機(jī)終端運(yùn)行于CDMA之上,現(xiàn)在CDMA網(wǎng)絡(luò)處于CDMAIX階段。本應(yīng)用系統(tǒng)就是建立融合多平臺(tái)的大型網(wǎng)絡(luò)應(yīng)用,通過(guò)互聯(lián)網(wǎng)上服務(wù)器實(shí)現(xiàn)不同平臺(tái)移動(dòng)終端的數(shù)據(jù)交互與信息共享。在應(yīng)用中用戶(hù)可以持有不同平臺(tái)的移動(dòng)終端進(jìn)入同一個(gè)應(yīng)用空間。
2.2功能描述
主菜單:完成游戲各個(gè)功能的選擇,包括有新游戲的進(jìn)入,聲音開(kāi)關(guān)的設(shè)置,為用戶(hù)提供的幫助等等。
新游戲:游戲的主循環(huán)體。
保存進(jìn)度:在玩游戲的過(guò)程中,如果需要保存,則將游戲中的主要信息寫(xiě)入持久存儲(chǔ)系統(tǒng)中,具體是寫(xiě)入一個(gè)二進(jìn)制文件中。
載入進(jìn)度:與保存進(jìn)度的作用相反,將保存好的二進(jìn)制文件讀出,并將游戲的狀態(tài)恢復(fù)到玩家保存處。
事件的處理:在游戲的過(guò)程中,應(yīng)用系統(tǒng)要接受來(lái)自用戶(hù)的按鍵事件,外界的來(lái)電中斷和短消息信息等等。對(duì)于此類(lèi)事件,游戲中要進(jìn)行相應(yīng)的事件處理。
屏幕的繪制:游戲應(yīng)用中,畫(huà)面的處理很關(guān)鍵,屏幕的繪制主要分為背景的繪制和精靈的繪制兩種。
游戲的邏輯處理:這是游戲應(yīng)用的中心,在邏輯處理中,會(huì)用到很多入工智能的方法,提高游戲的可玩性。
3,應(yīng)用實(shí)現(xiàn)的關(guān)健問(wèn)題
3 .1原則
應(yīng)用在手機(jī)終端上的游戲與PC游戲的不同主要是由于手機(jī)與PC的CPU不同造成的。隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,PC機(jī)的CPU運(yùn)算速率越來(lái)越快,內(nèi)存容量也不斷增大;雖然手機(jī)的技術(shù)也在不斷的發(fā)展,大容量?jī)?nèi)存和較快CPU運(yùn)算速度的手機(jī)不斷面市,但是在與PC機(jī)進(jìn)行對(duì)比時(shí),我們很容易就發(fā)現(xiàn),手機(jī)的CPU運(yùn)算速率仍然比較慢,內(nèi)存容量仍然比較小。因此,在設(shè)計(jì)游戲的時(shí)候,不能像PC游戲那樣使用大量的資源,也就是說(shuō),游戲的資源要盡可能小。
其次,手機(jī)作為手持設(shè)備,其屏幕相對(duì)PC機(jī)比較小,盡管目前技術(shù)的發(fā)展使手機(jī)分辨率不斷提高,但是屏幕仍然較小,另外,不同的手機(jī)的屏幕的大小也不盡相同,因此,游戲在設(shè)計(jì)時(shí)更加考慮到屏幕大小的問(wèn)題,而對(duì)于PC游戲這方面考慮的則少得多。同時(shí)手機(jī)的輸入設(shè)備相對(duì)單一,又由于手機(jī)作為手持移動(dòng)設(shè)備來(lái)講,不可能做得很大,事實(shí)上,手機(jī)也有向更小型化和超薄化發(fā)展的趨勢(shì),因此,對(duì)于手機(jī)游戲來(lái)講,不可能與具有鼠標(biāo)、鍵盤(pán)的PC機(jī)上的游戲相比,PC游戲往往操作比較復(fù)雜,而手機(jī)游戲要力求輸入方便,用較少的鍵控便能操作。
由于手機(jī)開(kāi)發(fā)平臺(tái)中可以利用的資源遠(yuǎn)遠(yuǎn)小于PC游戲,因此在表現(xiàn)力上就較PC游戲差很多,這也決定了PC游戲的規(guī)模要遠(yuǎn)遠(yuǎn)大于BREW游戲,同時(shí),PC游戲的情節(jié)上較手機(jī)游戲也更加復(fù)雜。由于手機(jī)是集合通信、信息管理、娛樂(lè)等為一體的設(shè)備,對(duì)于手機(jī)來(lái)講,通信還是手機(jī)的主要功能。因此,這也決定了它比PC游戲要有中斷性,要隨時(shí)能夠中斷,在中斷結(jié)束后應(yīng)用程序也要能夠及時(shí)的恢復(fù)。
3.2存儲(chǔ)功能
游戲應(yīng)用應(yīng)該都具有能保存進(jìn)度的功能。用戶(hù)可采用間斷性的方式,在玩到一定階段時(shí),把當(dāng)前進(jìn)度保存起來(lái),等需要重新來(lái)過(guò)的時(shí)候讀取即可。這里保存的數(shù)據(jù),在用戶(hù)退出游戲后,或者關(guān)機(jī)后,數(shù)據(jù)都不能丟失。無(wú)線(xiàn)設(shè)備通常情況下有兩種類(lèi)型的內(nèi)存:用于正在運(yùn)行著的應(yīng)用程序的內(nèi)存和用于持久存儲(chǔ)的內(nèi)存。后者存儲(chǔ)的數(shù)據(jù)比前者時(shí)間長(zhǎng)。對(duì)于游戲存儲(chǔ)功能的實(shí)現(xiàn)就是要將數(shù)據(jù)存儲(chǔ)到持久存儲(chǔ)的內(nèi)存當(dāng)中。
BREW中提供了文件和數(shù)據(jù)庫(kù)兩種不同的方式進(jìn)行數(shù)據(jù)的持久存儲(chǔ)。J2ME提供的是一個(gè)類(lèi)似于數(shù)據(jù)庫(kù)的系統(tǒng),并不是簡(jiǎn)單的文件系統(tǒng),稱(chēng)為記錄管理系統(tǒng)(RMS) 。
3.3程序運(yùn)行速度
實(shí)際上,用戶(hù)并不在意程序有多快,而更在意程序感覺(jué)起來(lái)有多快。有很多方法可以讓程序感覺(jué)起來(lái)更快,雖然其中的一些方法使實(shí)際速度有所下降。但是仍舊需要使程序事實(shí)上更快,這樣才能做到感覺(jué)起來(lái)快。
(1)使用更快的算法,找到程序的運(yùn)行瓶頸,換用更有效和更快的算法,是提高程序速度的關(guān)鍵。
(2)將函數(shù)調(diào)用改為內(nèi)聯(lián)展開(kāi)。
(3)盡量繪制大塊圖片,而不要使用小塊圖片。
(4 )J2ME由于支持多線(xiàn)程,還可以用一種叫做延遲掩蓋的技術(shù)。所謂延遲掩蓋技術(shù),就是把程序?qū)嶋H上的延遲作了掩飾,而使用戶(hù)實(shí)際上感覺(jué)不到程序延遲。
3.4網(wǎng)絡(luò)性能
鑒于當(dāng)前的移動(dòng)的網(wǎng)絡(luò)速度較慢,而且延時(shí)較大。這樣對(duì)于程序中的網(wǎng)絡(luò)連接部分來(lái)說(shuō)需要做出最大限度約束和優(yōu)化,才能夠滿(mǎn)足當(dāng)前網(wǎng)絡(luò)苛刻的要求。避免低效協(xié)議,對(duì)于網(wǎng)絡(luò)程序來(lái)說(shuō),任何現(xiàn)有的協(xié)議都是對(duì)于擴(kuò)展性和安全性作了全面的處理,這樣不可避免的會(huì)導(dǎo)致程序的數(shù)據(jù)流量增加,對(duì)于手持設(shè)備的網(wǎng)絡(luò)連接并不使用。這個(gè)時(shí)候需要用戶(hù)自定義通信協(xié)議,一般自定義協(xié)議需要遵循的原則應(yīng)當(dāng)是使信息包體積最小、發(fā)送和接收數(shù)量最少,這樣才能夠最大限度的減小網(wǎng)絡(luò)流量和提升網(wǎng)絡(luò)的響應(yīng)速度。