程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 解決Java ME設備碎片問題

解決Java ME設備碎片問題

編輯:關於JAVA

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

需求

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

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

帶有 Mobility 包的 NetBeans IDE 6.0

注意:可以使用 Mobility Pack 附帶的 Sun Java 無線工具包(Wireless Toolkit)部署此項目。不必使用其他軟件來執行本教程介紹的基本概念。但是,如果需要部署到其他平台,我們建議您下載您要調整的適當仿真程序。可以使用以下幾個最流行的 CLDC/MIDP 設備平台:

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 開發,建議您在繼續本教程之前,閱讀 NetBeans Mobility Pack 6.0 for CLDC 快速入門指南。本指南包括有關添加和注冊平台仿真程序的章節。

設置應用程序

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

下載 BallShotGame.zip 項目

解壓項目並將內容放在 IDE 的 project_home 目錄中。

有關將 mobility 項目導入 IDE 中的更多說明,請參閱 Mobility 項目導入指南。

創建自定義配置

解決設備碎片問題的一個策略基於 項目配置 的 NetBeans 使用。這允許您創建一組源碼並為要調整的每個移動設備進行定制。注意保持配置一致,以便仿真程序平台和目標設備與要創建的“項目”配置相對應。在下例中,Nokia Series 40 是目標配置。

創建項目配置

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

右鍵單擊 SingleCotopiaGameBallShot 項目節點並選擇“屬性”。

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

單擊“添加”,然後為配置鍵入所需的名稱,然後點“確定”。

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

創建功能

功能是設備屬性,比如屏幕大小、顏色深度、API 支持和音頻支持。在項目中創建功能允許您將其與一個或多個支持特定屬性或屬性組的項目配置相關聯。如果將來需要修改、移除或添加配置,只需將配置與實現更改的功能相關聯即可。然後,配置將自動與任何與功能相關的代碼塊相關聯。

右鍵單擊 SingleCotopiaGameBallShot 項目節點並選擇“屬性”。

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

從“項目配置”下拉菜單中,選擇與要定義的功能相關聯的配置。

如果需要,取消選中標有 使用默認配置值 的框。

單擊“添加”按鈕。

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

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

可以將此功能與其他配置相關聯,方法是從“項目配置”菜單中選擇不同的配置並單擊“添加”按鈕。

使用預處理器塊添加特定於配置的代碼

預處理器塊允許創建、管理和跟蹤特定於一個或多個項目配置或功能的代碼。此代碼僅為您標識的配置或功能啟用(或禁用)。針對移動設備最實用的屬性是屏幕大小。屏幕大小、顏色深度、API 支持和其他功能的一個有用的參考站點是 Jbenchmark 站點。

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

右鍵單擊此行並選擇“預處理程序塊”>“創建 If/Else 塊”。在“可用項目”框中滾動並選擇先前定義的功能 screen。

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

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

  //#if screen == "128x128"
  //#       ballWidth = 10;
  //#elif screen == "176x182"
  //#       ballWidth = 16;
  //#elif screen == "176x208"
  //#       ballWidth = 16;
  //#elif screen == "240x320"
          ballWidth = 22;
   //#endif
在仿真程序上運行擊球游戲

選擇“運行”>“運行主項目”。

仿真程序啟動之後,它應顯示以下菜單。

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

結束語

本文闡述如何使用 Mobility Pack 調整移動設備屬性,以使用針對設備功能的自定義配置和預處理器代碼來消除設備碎片問題。不幸的是,並非每個設備碎片問題都可以使用這些方法來解決,但這些示例顯示了在為移動設備開發時減輕這些問題的影響的方法。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved