程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2ME >> J2ME與MIDP開發(2)

J2ME與MIDP開發(2)

編輯:J2ME
大家是不是心裡都癢癢的了,好,讓我們開始編寫一個非常簡單的 MIDlet吧,這個 MIDlet將創建一個帶有一則消息的文本框。我們還要添加一個命令按鈕用於退出這個 MIDlet。

一、編寫 Java源代碼

創建一個新目錄來保存你以後編寫的MIDlet,例如 c:\midlets,在這個目錄裡再創建一個叫myMIDlet的目錄,使用任何文本編輯器創建一個名為 simpleMIDlet.java的文件並輸入下面這一段 Java源代碼。把這個文件保存在c:\midlets\myMIDlet目錄 (或者任何你選擇的目錄)。

代碼段1

simpleMIDlet.Java

import Javax.microedition.midlet.*;
import Javax.microedition.lcdui.*;

public class simpleMIDlet extends MIDlet implements CommandListener
{
private Display display; // 引用MIDlet的Display 對象
private TextBox tbxMain; // Textbox 顯示一條消息
private Command cmdExit; // 設定按鈕用於退出MIDlet

// MIDlet構造程序
public simpleMIDlet()
{
display = Display.getDisplay(this);

cmdExit = new Command("Exit", Command.SCREEN, 1);

tbxMain = new TextBox("Simple MIDlet", "Welcome ", 50, 0);
tbxMain.addCommand(cmdExit);
tbxMain.setCommandListener(this);
}

// 被應用程序管理器調用來啟動MIDlet。
public void startApp()
{
display.setCurrent(tbxMain);
}

// 一個必要的方法
public void pauseApp()
{ }

file://一個必要的方法
public void destroyApp(boolean unconditional)
{ }

file://檢查一下是否選擇了退出命令
public void commandAction(Command c, Displayable s)
{
if (c == cmdExit)
{
destroyApp(false);
notifyDestroyed();
}
}
}


此時,先不必擔心每行代碼是做什麼用的,把注意力放在開發這一整個環節中。

二、編譯並預驗證(preverify)

現在你必須編譯這個 Java源文件並且 preverify生成的.class文件。1.編譯源代碼進入命令行形式,進入你保存文件的項目目錄,使用下面的命令編譯程序。使用下面的命令編譯程序。

avac -bootclasspath c:\J2ME\midp-fcs\classes simpleMIDlet.Java 


選項 - bootclasspath C: \J2ME\midp - fcs\classes指定了 Java自舉(啟動)類文件目錄。我們必須自己指向midp類,否則javac會使用默認的JDK類庫去編譯MIDlet程序。不出問題的話,就能順利地編譯simpleMIDlet.java生成simpleMIDlet.class文件 (默認情況下,生成的.class位於 Java源文件所在的目錄)。2.預驗證類文件。

preverify -classpath c:\J2ME\midp-fcs\classes;. -d . simpleMIDlet


選項" -classpath C:\j2me\midp-fcs\classes;." 指定了到哪裡去尋找用於預驗證的.class文件。這包括需要用來做驗證處理的 MIDP類 (通過 c:\J2ME\midp-fcs\classes指定 )和你的類文件,它位於當前目錄 (就是"."指定的)。選項"-d." 告訴預驗證器把驗證過的類文件放在什麼地方。這一點"." 指當前目錄,即原始的類文件相同的位置。注意:前面的 preverify命令行選項將用一個新的、預驗證過的類文件覆蓋原先的類文件。你可以分兩個目錄,一個用來保存通過編譯的類文件,另一個用來保存通過預驗證創建的類文件。但是沒有經過預驗證的類文件是不能被應用程序管理器載入的。3、運行 MIDlet我們現在准備在移動設備模擬器中運行 MIDlet,如果你現在還處在命令行方式,請輸入

midp firstMIDlet

三、封裝MIDlet

下面我想談談封裝MIDlet的相關知識,即介紹一下 MIDlet套件以及Java檔案和應用程序描述器文件,為了說明方便,我們還將寫一個MIDlet程序並利用上面介紹的那個MIDlet程序,並創建JAR文件和JAD文件來封裝這些程序。我們還要看著如何使用 Java程序包改變我們的開發過程。最後你將學習如何從一個Web服務器上訪問 MIDlet。

MIDlet套件雖然把MIDlet封裝進 Java檔案文件(JAR)並不一定必要,但這是發布 J2ME/MIDP應用程序最常見的方法。MIDlet套件是一個MIDlet中所有的文件以及作為 MIDlet一部分的必需的資源的集合。MIDlet套件由以下幾部分組成:1、附在JAR文件中的 Java類文件, 2、描述 JAR文件內容的清單文件 3、附在 JAR文件中的資源(如圖象)和Java應用程序描述符文件(JAD) 4、應用程序管理器應用程序管理器是一個移動設備上的軟件程序,這個應用程序與具體的設備有關,並且由設備的生產商實現。它負責安裝、運行以及從設備上刪除 MIDlet,而提供錯誤處理支持。這個應用程序管理器同時還提供一個可選界面,允許用戶啟動、終止以及刪除 MIDlet。

Java檔案文件一個商品化的、封裝過應用程序通常由許多文件構成。除了 Java類以外,其他文件諸如圖像和應用程序數據即通常所說的資源,也可能是這個程序包的一部分。你把所有這些信息捆綁進一個整體,就稱為 JAR文件。除了類和資源文件,一個 JAR文件還包括描述 JAR內容的清單文件。清單文件名為 manifest.mf,儲存在 JAR文件本身中,下面這張表中列出定義在這個清單文件中的所有可用的屬性。

表 1 屬性 用途 MIDlet-Name MIDlet程序包的名稱。例如“Game Pack” MIDlet-Version MIDlet的版本號 MIDlet-Vendor MIDlet的創建者或提供商 MIDlet-Icon 應用程序管理器把這個圖標與 MIDlet-Name相關聯,這是一個圖形文件,以 PNG圖象格式儲存。 MIDlet-Description 描述 MIDlet的文本 MIDlet-Info-URL 可能提供更多MIDlet和/或供應商信息的 URL MIDlet- 這個屬性包括三段信息: ??MIDlet名稱 ??用於這個 MIDlet的圖標(可選) ??應用程序管理器將調用來加載這個 MIDlet的類名 在我們的“ Game Pack”例子中,有兩個條目: MIDlet-1: KOF, /images/kof.png, kof.kofMIDlet MIDlet-2: Golf, /images/golf.png, golfMIDlet MIDlet-Jar-URL JAR文件的 URL MIDlet-Jar-Size JAR文件的大小 MIDlet-Data-Size 持久數據存儲必需的最小字節數 MicroEdition-Profile MIDlet需要哪一種 J2ME簡表 MicroEdition-Configuration MIDlet需要哪一種 J2ME配置

這些屬性並不是全部都需要,可是,沒有下面列出的這六個,應用程序管理器就會拒絕加載這個 JAR。 MIDlet-Name  MIDlet-Version  MIDlet-Vendor  MIDlet-  MicroEdition-Profile  MicroEdition-Configuration 這裡有一個簡單的清單文件的例子: MIDlet-Name: KOF2001 MIDlet-Version: 1.0 MIDlet-Vendor: NeoRage Corporation Inc. MIDlet-1: kof, /images/kof.png, kof.kofMIDlet MicroEdition-Profile: MIDP-1.0 MicroEdition-Configuration: CLDC-1.0

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