javac/java 指令操作 (改用 WTK/SDK 建置)| 阻礙 | 影響 | 對策 |
|---|---|---|
| 螢幕尺寸碎片化 | 遊戲/低階 UI 必須自適應 | 相對座標、多套素材、可縮放 Sprite |
| 廠商擴充 API 不統一 | Nokia UI、Moto API 互不相容 | 核心用標準 API,特有功能用介面隔離 |
| 實作 Bug 差異 | 如 Nokia 7650 雙緩衝失效 | 建立裝置相容性資料庫,針對性關閉功能 |
| 硬體資源上限 | Jar 64 KB、Heap 210 KB (S40) | ProGuard 混淆、資源壓縮、物件池、延遲載入 |
| 職位 | 核心技能 | 典型產出 |
|---|---|---|
| 遊戲開發工程師 | Canvas/GameCanvas、Sprite 動畫、雙緩衝、物理碰撞、網路對戰 | 動作、RPG、益智、大型線上手機遊戲 |
| 應用程式開發工程師 | 高階 UI、RMS、HTTP/HTTPS、XML/JSON、JSR-172/75/82 | 行動銀行、即時通訊、地圖導航、企業行動化 APP |
| 遊戲移植工程師 | 各平台規格對照、模擬器/真機除錯、自動化建置、相容性測試 | 單一遊戲產出 10+ 版本套件 (S40/S60/UIQ/BREW) |
J2ME 無 java.util.Set,遊戲需記錄「已消除方塊座標」且不可重複:
class kSetNode { int x, y; boolean equals(Object o) { ... } }
class kSet {
private kSetNode head;
void add(int x, int y) { if (!contains(x,y)) head = new kSetNode(x,y,head); }
boolean contains(int x, int y) { for (kSetNode n=head; n!=null; n=n.next) if (n.x==x && n.y==y) return true; return false; }
kSetNode getFirst() { return head; }
void clear() { head = null; }
boolean isEmpty() { return head == null; }
}
單向鏈結串列實作,O(n) 查重,遊戲場景 n 較小完全足夠,避免引入重型庫。
基準機型 (如 Moto T720 176×208) 開發,上較大螢幕 (如 240×320) 時畫面會貼左上角。校正公式:
int offsetX = (canvasWidth - gameWidth) / 2;
int offsetY = (canvasHeight - gameHeight) / 2;
graphics.translate(offsetX, offsetY); // 後續繪圖自動偏移
在 paint() 一開始呼叫 translate,所有後續繪圖指令自動置中,零侵入式解決。
Font.SMALL/MEDIUM/LARGE)、粗體/斜體支援度極低。drawImage。| 系列 | 定位 | 螢幕解析度 | 典型機型 | Heap / Jar 上限 | MIDP 版本 |
|---|---|---|---|---|---|
| S40 (Series 40) | 大眾入門機 | 96×65、128×128、128×160 | 6230, 7210, 3100, 6300… | Heap ~210 KB / Jar 64 KB | MIDP 2.0 / CLDC 1.1 |
| S60 (Series 60 / Symbian) | 商務智慧機 | 176×208 (早期)、240×320、352×416 | 6600, N-Gage, N70, N95… | Heap ~2-4 MB / Jar 1-2 MB | MIDP 2.0 / CLDC 1.1 |
| S80 (Series 80 / Communicator) | 高階商務筆記型手機 | 640×200 | 9300, 9500 | Heap 大、Jar 幾 MB | MIDP 2.0 / CLDC 1.1 |
| S90 (Series 90 / Touch) | 觸控實驗機 | 640×200 | 7710 | 同上 | MIDP 2.0 / CLDC 1.1 |
J2ME 開發是「在極限資源下寫出穩定、可維護、跨裝置相容程式」的極佳練兵場。掌握核心語法、平台限制、跨平台策略、工具鏈與真機驗證流程,即具備從入門到專業的完整能力。Nokia S40/S60 系列雖已成歷史,但其碎片化應對經驗,完美轉化為今日 Android 碎片化、IoT 裝置異構開發的核心競爭力。