自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何解決Java ME設(shè)備碎片問題

移動(dòng)開發(fā) 后端
本文闡述如何使用 Mobility Pack 調(diào)整移動(dòng)設(shè)備屬性,以使用針對設(shè)備功能的自定義配置和預(yù)處理器代碼來消除設(shè)備碎片問題。不幸的是,并非每個(gè)設(shè)備碎片問題都可以使用這些方法來解決,但這些示例顯示了在為移動(dòng)設(shè)備開發(fā)時(shí)減輕這些問題的影響的方法。

一次編寫、隨處運(yùn)行的口號曾驅(qū)動(dòng)了 Java 編程語言的流行,但在 Java Micro Edition (Java ME) 的世界中卻并不適用。屏幕大小、顏色深度和內(nèi)存等設(shè)備功能顯著不同。您必須選擇配置文件、配置和 J2ME API,而且會碰到我們所謂的設(shè)備碎片問題。本教程介紹如何使用 IDE 的內(nèi)置功能來解決 Java ME MIDP 設(shè)備碎片問題。

需求

開始之前,需要在您的計(jì)算機(jī)中安裝以下軟件:

Java Standard Development Kit (JDK) 版本 5.0 或 6.0

帶有 Mobility 包的 NetBeans IDE 6.0

注意:可以使用 Mobility Pack 附帶的 Sun Java 無線工具包(Wireless Toolkit)部署此項(xiàng)目。不必使用其他軟件來執(zhí)行本教程介紹的基本概念。但是,如果需要部署到其他平臺,我們建議您下載您要調(diào)整的適當(dāng)仿真程序??梢允褂靡韵聨讉€(gè)***的 CLDC/MIDP 設(shè)備平臺:

Nokia Series 40 SDKs for Symbian OS

Nokia Series 60 SDKs for Symbian OS

Sony Ericsson SDK 2.2.4 for the Java ME platform

Motorola Java ME SDK v6.4 for Motorola OS Products

如果您不了解 NetBeans Mobility Pack 或 Java ME 開發(fā),建議您在繼續(xù)本教程之前,閱讀 NetBeans Mobility Pack 6.0 for CLDC 快速入門指南。本指南包括有關(guān)添加和注冊平臺仿真程序的章節(jié)。

設(shè)置應(yīng)用程序

本例使用一個(gè)叫做 Ball Shot 的簡單游戲,闡述如何調(diào)整設(shè)備功能來解決設(shè)備碎片問題。

下載 BallShotGame.zip 項(xiàng)目

解壓項(xiàng)目并將內(nèi)容放在 IDE 的 project_home 目錄中。

有關(guān)將 mobility 項(xiàng)目導(dǎo)入 IDE 中的更多說明,請參閱 Mobility 項(xiàng)目導(dǎo)入指南。

創(chuàng)建自定義配置

解決設(shè)備碎片問題的一個(gè)策略基于 項(xiàng)目配置 的 NetBeans 使用。這允許您創(chuàng)建一組源碼并為要調(diào)整的每個(gè)移動(dòng)設(shè)備進(jìn)行定制。注意保持配置一致,以便仿真程序平臺和目標(biāo)設(shè)備與要?jiǎng)?chuàng)建的“項(xiàng)目”配置相對應(yīng)。在下例中,Nokia Series 40 是目標(biāo)配置。

#p#

創(chuàng)建項(xiàng)目配置

選擇“文件”>“打開項(xiàng)目”(Ctrl-Shift-O)。導(dǎo)航至已解壓和已安裝 SingleCotopiaGameBallShot 項(xiàng)目文件夾所在的文件夾。

右鍵單擊 SingleCotopiaGameBallShot 項(xiàng)目節(jié)點(diǎn)并選擇“屬性”。

單擊頁面頂部的“管理配置”按鈕。這將打開“管理配置”對話框。

單擊“添加”,然后為配置鍵入所需的名稱,然后點(diǎn)“確定”。

為要部署的其他仿真程序重復(fù)上一步驟。

創(chuàng)建功能

功能是設(shè)備屬性,比如屏幕大小、顏色深度、API 支持和音頻支持。在項(xiàng)目中創(chuàng)建功能允許您將其與一個(gè)或多個(gè)支持特定屬性或?qū)傩越M的項(xiàng)目配置相關(guān)聯(lián)。如果將來需要修改、移除或添加配置,只需將配置與實(shí)現(xiàn)更改的功能相關(guān)聯(lián)即可。然后,配置將自動(dòng)與任何與功能相關(guān)的代碼塊相關(guān)聯(lián)。

右鍵單擊 SingleCotopiaGameBallShot 項(xiàng)目節(jié)點(diǎn)并選擇“屬性”。

從“類別”菜單樹中選擇“功能”頁面。

從“項(xiàng)目配置”下拉菜單中,選擇與要定義的功能相關(guān)聯(lián)的配置。

如果需要,取消選中標(biāo)有 使用默認(rèn)配置值 的框。

單擊“添加”按鈕。

在“新建功能”對話框中,輸入功能的名稱,比如 screen,如果 screen 功能已經(jīng)存在,則單擊”編輯“按鈕。

輸入此功能的值。在本例中,輸入 240x320。其他功能可以配置并調(diào)整為其他變量,比如顏色深度和音頻支持。單擊“確定”按鈕關(guān)閉“新建功能”對話框。此功能現(xiàn)在已經(jīng)與所選項(xiàng)目配置關(guān)聯(lián)到一起了。

可以將此功能與其他配置相關(guān)聯(lián),方法是從“項(xiàng)目配置”菜單中選擇不同的配置并單擊“添加”按鈕。

#p#

使用預(yù)處理器塊添加特定于配置的代碼

預(yù)處理器塊允許創(chuàng)建、管理和跟蹤特定于一個(gè)或多個(gè)項(xiàng)目配置或功能的代碼。此代碼僅為您標(biāo)識的配置或功能啟用(或禁用)。針對移動(dòng)設(shè)備最實(shí)用的屬性是屏幕大小。屏幕大小、顏色深度、API 支持和其他功能的一個(gè)有用的參考站點(diǎn)是 Jbenchmark 站點(diǎn)。

在 BallShotImageCreator.java 編輯器窗口中,右鍵單擊實(shí)例化 BallShotImageCreator 的源碼行 (public BallShotImageCreator() {。

右鍵單擊此行并選擇“預(yù)處理程序塊”>“創(chuàng)建 If/Else 塊”。在“可用項(xiàng)目”框中滾動(dòng)并選擇先前定義的功能 screen。

在行 //#if screen 上,添加以下代碼:== "240x320"

當(dāng)活動(dòng)配置與指令值匹配時(shí),則部署由 //#if 預(yù)處理器指令標(biāo)記的代碼。當(dāng)活動(dòng)配置與預(yù)處理器的值不匹配時(shí),則使用由 //#else 預(yù)處理器指令包圍的代碼。換句話說,如果活動(dòng)平臺具有 240x320 功能,則仿真程序顯示 22 像素的球。//#endif 預(yù)處理器指令完成預(yù)處理器塊。下面就是為此游戲的一定范圍的流行屏幕大小編寫的示例:

 //#if screen == "128x128"
  //#       ballWidth = 10;
  //#elif screen == "176x182"
  //#       ballWidth = 16;
  //#elif screen == "176x208"
  //#       ballWidth = 16;
  //#elif screen == "240x320"
          ballWidth = 22;
  //#endif

在仿真程序上運(yùn)行擊球游戲

選擇“運(yùn)行”>“運(yùn)行主項(xiàng)目”。

仿真程序啟動(dòng)之后,它應(yīng)顯示以下菜單:

單擊仿真程序上的主按鈕以啟動(dòng)游戲。仿真程序顯示以下屏幕。為了比較,我們包括了不使用預(yù)處理器指令的游戲的截屏。注意,相對于仿真程序屏幕,圖片太小了。

【編輯推薦】

  1. Java ME平臺中的URLEncoder實(shí)現(xiàn)類
  2. 詳解基于J2ME平臺下SOAP協(xié)議的應(yīng)用
  3. J2ME中應(yīng)用程序的內(nèi)存優(yōu)化
責(zé)任編輯:楊鵬飛 來源: Java吧
相關(guān)推薦

2023-03-01 10:02:43

2021-08-11 15:35:54

多設(shè)備交互應(yīng)用框架

2012-09-05 11:09:15

SELinux操作系統(tǒng)

2021-08-18 16:02:29

Windows 11操作系統(tǒng)微軟

2010-03-18 14:54:57

Java SynDem

2010-04-29 17:46:31

Oracle死鎖

2012-07-02 10:13:05

Android 4.1

2009-07-06 17:50:13

Java JSP

2013-05-21 10:49:59

Windows硬件沖突

2017-07-20 07:30:16

大數(shù)據(jù)數(shù)據(jù)互聯(lián)網(wǎng)

2024-10-29 16:41:24

SpringBoot跨域Java

2017-10-17 09:21:06

2023-10-30 18:35:47

MySQL主從延時(shí)

2011-08-29 10:34:00

網(wǎng)絡(luò)安全云安全云計(jì)算

2011-03-23 14:42:47

CPU過度消耗

2021-06-06 13:05:15

前端跨域CORS

2010-07-16 13:52:26

telnet漏洞

2024-11-21 16:47:55

2021-10-20 20:27:55

MySQL死鎖并發(fā)

2009-09-21 17:10:14

struts Hibe
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號