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

正文內容

基于j2me的手機游戲逃亡者的設計與實現-文庫吧

2024-11-11 22:07 本頁面


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