(同前文,略)核心:CLDC + MIDP 構成手機開發基礎,MIDlet 為應用單元。
| 包 | 功能領域 |
|---|---|
| javax.microedition.lcdui | UI (High-level: Form/List/Alert/TextBox; Low-level: Canvas/Graphics) |
| javax.microedition.rms | 持久化儲存 (RecordStore) |
| javax.microedition.io | 網路 (GCF: HTTP/Socket/Datagram) |
| javax.microedition.midlet | 應用生命週期與環境互動 |
Form 容器承載 StringItem、TextField、DateField、ChoiceGroup。List、Choice 提供單/多選介面。Canvas + Graphics 實現遊戲級繪圖與按鍵事件 (keyPressed/repeated/released)。
new() → Paused --startApp()--> Active --pauseApp()--> Paused
↑___________________________|
destroyApp() → Destroyed
AMS (Application Management Software) 控制狀態轉換;開發者可透過 notifyPaused/destroyed、resumeRequest 請求狀態變更。
javax.wireless.messaging (Message、MessageConnection、MessageListener)// 客戶端發送 SMS
MessageConnection conn = (MessageConnection) Connector.open("sms://+886912345678:5000");
TextMessage msg = (TextMessage) conn.newMessage(MessageConnection.TEXT_MESSAGE);
msg.setPayloadText("Hello SMS");
conn.send(msg);
// 伺服器端接收 (需註冊 Listener)
MessageConnection serverConn = (MessageConnection) Connector.open("sms://:5000");
serverConn.setMessageListener(new MessageListener() {
public void notifyIncomingMessage(MessageConnection c) {
Message m = c.receive();
// 處理 TextMessage / BinaryMessage
}
});
runConstructor.bat 建立模擬器設定檔。-O -bootclasspath D:/MotoJ2SDK/libPreverify、Run Emulator、Create Jar 三個 DOS 命令,參數詳見原文。Canvas 子類處理 keyPressed 顯示按鍵碼,編譯預驗證打包後在模擬器執行。public class KeyEventsDemoCanvas extends Canvas {
private int lastKey;
protected void paint(Graphics g) {
g.drawString("Press a key!", 0, 0, Graphics.TOP|Graphics.LEFT);
if (lastKey != 0) {
g.drawString("Key Code: " + lastKey, 0, g.getFont().getHeight(), Graphics.TOP|Graphics.LEFT);
g.drawString("Action: " + getGameAction(lastKey), 0, 2*g.getFont().getHeight(), Graphics.TOP|Graphics.LEFT);
g.drawString("Key Name: " + getKeyName(lastKey), 0, 3*g.getFont().getHeight(), Graphics.TOP|Graphics.LEFT);
}
}
protected void keyPressed(int keyCode) { lastKey = keyCode; repaint(); }
}