freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于j2me的手機(jī)游戲逃亡者的設(shè)計(jì)與實(shí)現(xiàn)-文庫(kù)吧

2024-11-11 22:07 本頁(yè)面


【正文】 1是 J2ME 體系結(jié)構(gòu)的框圖: 圖 21J2ME 體系結(jié)構(gòu)框圖 (1) 主機(jī)操作系統(tǒng)層 (Host Operating System Layer):這一層為特定硬件設(shè)備的操作系統(tǒng)層。 (2) Java虛擬機(jī)層 (Java Virtual Machine Layer):這一層是 Java虛擬機(jī)的一個(gè)實(shí)現(xiàn),它是為特定 為特定設(shè)備的主機(jī)操作系統(tǒng)定制的,支持一個(gè)特定的 J2ME配置。 (3) 配置層 (Configuration Layer):配置層定義 Java虛擬機(jī)的功能和特定類別設(shè)備上可用的 Java類庫(kù)的最小集。從某種程度上說(shuō),一個(gè)配置定義了 Java平臺(tái)的功能部件和庫(kù)的共同性,開(kāi)發(fā)者可以假設(shè)這些功能部件和庫(kù)在屬于某一特定類別的所有設(shè)備上都是可用的。這一層對(duì)用戶是透明的,但它對(duì)描述的實(shí)現(xiàn)者非常重要。 (4) 描述層 (Profile Laver):描述層定義了特定類別設(shè)備上可用的應(yīng)用程序編程設(shè)備的主機(jī)操作系統(tǒng)定制的,支持一個(gè)特定的 J2ME配置。 在手機(jī)上, KVM, CLDC, MIDP分別 實(shí)現(xiàn)了 J2ME體系結(jié)構(gòu)中的 Java虛擬機(jī)層、配置層和描述層。 KVM CLDC 和 MIDP都是運(yùn)行在 Sun公司的 KVM上。 KVM是一個(gè)專門(mén)為小型、資源受限設(shè)備所設(shè)計(jì)的緊湊的、便攜的 Java虛擬機(jī)。 Java虛擬機(jī)是 Java程序語(yǔ)言的核心,只要 Java程序在執(zhí)行, Java虛擬機(jī)也必定在執(zhí)行。 Java虛擬機(jī)是實(shí)際執(zhí)行 Java程序的引擎,也是 Java語(yǔ)言具有這么多優(yōu)良特色的關(guān)鍵所在。當(dāng)你執(zhí)行Java程序時(shí),程序內(nèi)的指令其實(shí)并不是由硬件直接執(zhí)行,而是由一個(gè)特別的軟The J2ME Environment J2ME Appliacation Layer MIDLet MIDLet Class Layer MIDLet Application Manager 畢業(yè)設(shè)計(jì)(論文) 第 6 頁(yè) 共 42 頁(yè) 件一一讀取這些指令來(lái)執(zhí)行的。簡(jiǎn)單地說(shuō), Java程序不是被底層的 CPU直接執(zhí)行,而是被 “虛擬 CPU”執(zhí)行的,所謂的虛擬 CPU其實(shí)就是計(jì)算機(jī)上執(zhí)行的一個(gè)特別軟件。虛擬機(jī)的優(yōu)點(diǎn)甚多,比如移植方便,只需要移植虛擬機(jī)和相關(guān)的支持程序庫(kù)到新的硬件架構(gòu)上,所有上層的應(yīng)用程序都不需要更動(dòng)就完成移植了。虛擬機(jī)的另一個(gè)好處是它在計(jì)算機(jī)軟硬件間加入一抽象層來(lái)分離和保護(hù),可以防止惡作劇的程序暗中搞鬼 [5]。 CLDC 2020 年 5 月, Java Community Process( JCP)公布了 規(guī)范(即JSR30)。作為第一個(gè)面對(duì)小型設(shè)備的 Java應(yīng)用開(kāi)發(fā)規(guī)范, CLDC是由包括Nokia, Motorola和 Siemens在內(nèi)的 18 家全球知名公司共同協(xié)商完成的。 CLDC是J2ME核心配置中的一個(gè),可以支持一個(gè)或多個(gè) profile。其目標(biāo)主要面向小型的、網(wǎng)絡(luò)連接速度慢、能源有限(主要是電池供電)且資源有限的設(shè)備,如手機(jī)、機(jī)頂盒、 PDA 等 。 CLDC 的核心是虛擬機(jī)和核心類庫(kù)。虛擬機(jī)運(yùn)行在目標(biāo)操作系統(tǒng)之上,對(duì)下層的硬件提供必要的兼容和支持;核心類庫(kù)提供操作系統(tǒng)所需的最小的軟件需求。 圖 22 CLDC 標(biāo)準(zhǔn)構(gòu)架 CLDC 的目標(biāo) (1) 為小型的、資源受限的連接設(shè)備定義一個(gè) Java 平臺(tái)標(biāo)準(zhǔn) 。 (2) 允許向上述設(shè)備動(dòng)態(tài)的傳遞 Java 應(yīng)用和內(nèi)容 。 (3) 使 Java 開(kāi)發(fā)人員能夠輕松的在這些設(shè)備上進(jìn)行應(yīng)用開(kāi)發(fā) 。 CLDC 的整體需求 (1) 能運(yùn)行在絕大多數(shù)的小型的、資源受限的連接設(shè)備上 。 (2) 用 CLDC 為上述設(shè)備開(kāi)發(fā)的應(yīng)用盡可能的不使用設(shè)備的本地系統(tǒng)軟件 。 [5] 盧軍 J2ME 應(yīng)用程序開(kāi)發(fā)手機(jī)、 PDA 程序開(kāi)發(fā)捷徑 中國(guó)鐵道出版社 1 核心類庫(kù) 2 虛擬機(jī) 可選包 Profile 配置 操作系統(tǒng) 基于 J2ME 的手機(jī)游戲 設(shè)計(jì) 第 7 頁(yè) 共 42 頁(yè) (3) 定義能應(yīng)用在絕大多數(shù)上述設(shè)備上的最小子集的規(guī)范 。 (4) 保證在不同類型上述設(shè)備之間代碼級(jí)的可移植 性和互操作性 。 CLDC 的硬件需求 由于 CLDC 要面向盡可能多的設(shè)備,而這些設(shè)備所使用的硬件又各不相同。因此 CLDC 規(guī)范中并沒(méi)有指明需要某種硬件支持,只是對(duì)設(shè)備的最小內(nèi)存進(jìn)行了限制。 CLDC 規(guī)范中要求硬件必須達(dá)到以下要求: (1) 至少 160KB 的固定內(nèi)存以供虛擬機(jī)和 CLDC 核心類庫(kù)使用。 (2) 至少 32KB 的動(dòng)態(tài)內(nèi)存以供虛擬機(jī)運(yùn)行時(shí)使用(堆棧等)。 這里所說(shuō)的固定內(nèi)存是指擁有寫(xiě)保護(hù),不會(huì)因關(guān)機(jī)而抹去的 ROM。對(duì)于具體的設(shè)備的具體實(shí)現(xiàn),這些需求也可能有變化。這里所規(guī)定的 160KB 是 CLDC 規(guī)范中的要求,實(shí)際也可以是 128KB 左右。 CLDC 的軟件需求 和硬件類似, CLDC 上運(yùn)行的軟件也是多種多樣的。例如,有些設(shè)備支持多進(jìn)程操作系統(tǒng)或者支持文件系統(tǒng);而有些功能極其有限的設(shè)備并不需要文件系統(tǒng)。對(duì)于這些不確定性, CLDC只定義了軟件所必須的最小集合。 CLDC 規(guī)范中要求操作系統(tǒng)不需要支持多進(jìn)程或是分址空間 。 CLDC 的功能范圍 在 版本中定義了以下功能: (1) Java 核心語(yǔ)言與 Java 虛擬機(jī)的特性 (2) 核心 Java 類庫(kù) (3) 輸入 /輸出 (4) 對(duì)網(wǎng)絡(luò)的支持 (5) 對(duì)安全性的支持 (6) 對(duì)國(guó)際化的支持 CLDC特征 (1) 安全 (2) 遵守 Java語(yǔ)言規(guī)范 (3) 遵守 Java虛擬機(jī)規(guī)范 (4) 要求類文件驗(yàn)證 J2EE和 J2SE為桌面計(jì)算機(jī)和服務(wù)器的企業(yè)級(jí)應(yīng)用和開(kāi)發(fā)提供了非常豐富的庫(kù)函數(shù)。不幸的是這些庫(kù)需要幾十兆的內(nèi)存來(lái)運(yùn)行,因此并不適合于資源受限的小型設(shè)備。所以 CLDC針對(duì)小型受限設(shè)備重新制定了一個(gè)類庫(kù)。為了保證應(yīng)用程序的兼容性和可移植性,包括進(jìn) CLDC的大多數(shù)類庫(kù)都是 J2SE中規(guī)定的子集,其它一些是由 CLDC規(guī)定的專用于移動(dòng)設(shè)備的類。包括 :從 J2SE中繼承的畢業(yè)設(shè)計(jì)(論文) 第 8 頁(yè) 共 42 頁(yè) 類、國(guó)際化支持類、系統(tǒng)屬性類、 CLDC專用類四個(gè)方面 [6]。 (MIDP) J2ME提供了描述的概念,使得可以為特定的設(shè)備家族定義相同的 Java平臺(tái)。描述可以滿足兩種明顯不同的可移植性需求 : (1)描述為在一個(gè)特定的設(shè)備家族實(shí)現(xiàn)應(yīng)用提供了完整的工具,比如傳呼機(jī)、機(jī)頂盒、移動(dòng)電話、洗衣機(jī)或智能玩具。 (2)可以創(chuàng)建一種描述來(lái)支持重要的、一致的一組應(yīng)用,這些應(yīng)用可能會(huì)在幾各不同的設(shè)備上運(yùn)行。 簡(jiǎn)單地說(shuō),描述就是應(yīng)用和市場(chǎng)的設(shè)備家族之 間的協(xié)議。處于同一個(gè)設(shè)備家族中的所有設(shè)備都必須實(shí)現(xiàn)其描述所定義的特征,并且要求應(yīng)用只使用這個(gè)特定描述所提供的功能。在實(shí)現(xiàn)層次上,描述被簡(jiǎn)單地定義為應(yīng)用在特定配置上的 Java API和類庫(kù)的集合,同時(shí)為市場(chǎng)中特定的設(shè)備家族提供了附加的面向特定領(lǐng)域的功能 [7]。 現(xiàn)在,己經(jīng)有了五個(gè)規(guī)范化了的描述,如表 21 表 21 五個(gè)規(guī)范化描述 描述名稱 下層配置 Mobile information device profile(MIDP) CLDC Personal digital assistant profile CLDC Foundation profile CDC Personal profile CDC RMI profile CDC 應(yīng)用程序 CLDC和 MIDP組合起來(lái)為創(chuàng)建移動(dòng)電話應(yīng)用程序提供了完整的環(huán)境。MIDP應(yīng)用程序或者稱為 MIDlet. 其模型如圖 23所示 [6] JSR000139 Connected Limited Device Configuration [7] 基于 J2ME 的手機(jī)游戲 設(shè)計(jì) 第 9 頁(yè) 共 42 頁(yè) 圖 23MIDlet應(yīng)用框 MIDlet 有三個(gè)狀態(tài),分別是 pause、 active 和 destroyed。在啟動(dòng)一個(gè) MIDlet的時(shí)候,應(yīng)用管理軟件會(huì)首先 創(chuàng)建一個(gè) MIDlet 實(shí)例并使得他處于 pause 狀態(tài),當(dāng) startApp()方法被調(diào)用的時(shí)候 MIDlet 進(jìn)入 active 狀態(tài),也就是所說(shuō)的運(yùn)行狀態(tài)。在 active 狀態(tài)調(diào)用 destroyApp(booleanunconditional)或者 pauseApp()方法可以使得 MIDlet 進(jìn)入 destroyed 或者 pause 狀態(tài)。值得一提的是 destroyApp(boolean unconditional)方法,事實(shí)上,當(dāng) destroyApp()方法被調(diào)用的時(shí)候, AMS 通知MIDlet 進(jìn)入 destroyed 狀態(tài)。在 destroyed 狀態(tài)的 MIDlet 必須釋放了所有的資源,并且保存了數(shù)據(jù)。如果 unconditional 為 false的時(shí)候, MIDlet 可以在接到通知后拋出 MIDletStateChangeException 而保持在當(dāng)前狀態(tài),如果設(shè)置為 true 的話,則必須立即進(jìn)入 destroyed狀態(tài)。下圖 24說(shuō)明了 MIDlet 狀態(tài)改變情況: 圖 24 MIDlet 狀態(tài)圖 MIDP UI 組件 In 組件與低級(jí)繪制相比,用在游戲開(kāi)發(fā)上的機(jī)會(huì)較少,但還是會(huì) 到。所 謂UI組件,是指繼承了 ,javam 。 下圖為我們展示了整個(gè) LCDUI 包的體系: The J2ME Environment J2ME Appliacation Layer MIDLet MIDLet Class Layer MIDLet Application Manager Start Paused Destroyed startApp pauseApp destroyApp Active destroyApp 畢業(yè)設(shè)計(jì)(論文) 第 10 頁(yè) 共 42 頁(yè) 圖 25 LCDUI包的體系 Screen 類屬于高級(jí)圖形用戶界 面組件 , Canvas 是低級(jí)圖形用戶界面組件,在同一時(shí)刻,只能有唯一一個(gè) Screen 或者 Canvas 類的子類顯示在屏幕上,我們可以調(diào)用 Display 的 set Current()的方法來(lái)將前一個(gè)畫(huà)面替換掉, 我們必須自行將前一個(gè)畫(huà)面的狀態(tài)保留起來(lái),并自己控制整個(gè)程序畫(huà)面的切換。同時(shí)我們可以運(yùn)用 類來(lái)給我們的提供菜單項(xiàng)目的功能,分別是: 、 Command. CANCEL 、 、 、 、 Comm 、 和, 我們?cè)?Display able對(duì)象中定義了 add Command()和 remove Command()兩個(gè)方法,這就意味著我們可以在高級(jí) UI 和低級(jí) UI 中同時(shí)使用Command 類,同時(shí)我們通過(guò)注冊(cè) Command 事件來(lái)達(dá)到事件處理的目的,即Command 必須與 Command Listener 接口配合使用才能反映用戶的動(dòng)作。 與高級(jí) UI 相比,低級(jí) UI 就自由很多,任何時(shí)候我們可 以調(diào)用 repaint()產(chǎn)生重繪事件,調(diào)用完了 repaint()會(huì)立刻返回,調(diào)用 paint()回調(diào)函數(shù)則是由另一個(gè)專門(mén)的線程來(lái)完成。底層事件大致可分為三類: Press Events(按鍵事件 ), Action Keys(動(dòng)作按鍵, PointerEvents(觸控事件)。 我們將圍繞這三個(gè)主題來(lái)介紹一下這種事件的用法: 鍵事件的幾個(gè)核心方法為: keyPressed(), keyReleased(), keyRepeated(),當(dāng)按鍵按下時(shí)會(huì)觸 keyPressed(),當(dāng)松開(kāi)按鍵時(shí),會(huì)觸發(fā) keyReleased(), 當(dāng)長(zhǎng)時(shí)間按住按鍵時(shí)會(huì)觸 keyRepeated(),但是 RepeatEvents 不是 JTWI 要求強(qiáng)制支持的,所以使用之前要進(jìn)行測(cè)試,看設(shè)備是否支持。在 Canvas 里面我們每按下一個(gè)按鍵都會(huì)觸發(fā) keyPressed()函數(shù),并傳入相應(yīng)位置的整數(shù)值,我們?cè)?MIDP 規(guī)范中可以很容易的發(fā)現(xiàn), KEY_NUM0—KEY—NUM9 十個(gè)常數(shù)分別代表鍵盤(pán)上的 09還有兩個(gè)功能鍵, KEY_STAR, KEY_POUND, 如果我們傳入的值小于 0,代表我們傳入了不合法的 keycode, 某些機(jī)器上還支持連續(xù)按鍵響應(yīng),但這并不 是JTWI 規(guī)定要支持的,所以我們?cè)谶M(jìn)行實(shí)際開(kāi)發(fā)之前一定要用我們前面講到的hasRepeatEvents()方法來(lái)進(jìn)行判定。動(dòng)作按鍵主要針對(duì)游戲來(lái)設(shè)計(jì)的, 在 API Display CommandLister Ticker Displayable Command Canvas Screen Graphics Image Font 基于 J2ME 的手機(jī)游戲 設(shè)計(jì) 第 11 頁(yè) 共 42 頁(yè) 中定義了一系列的動(dòng)作事件: UP, DOWN, LEFT, RIGHT, GAME_A,GAME_B, GAME_C, GAME_D, 當(dāng)按下這些按鍵時(shí)會(huì)映射到我們自己為每個(gè)按鍵事
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1