Java Platform, Micro Edition
Java Platform, Micro Edition (Java ME)は携帯電話、PDA、テレビのようなのリソースが制限されたデバイスにおけるJavaの小型セット。JSR 68 で規定されている。当初は、Java 2 Platform, Micro Edition (J2ME) という名称だった。
目次
コンフィギュレーションとプロファイル
様々なデバイスに対応するため、コンフィギュレーションとプロファイルと呼ばれるものでAPIを定義している。コンフィギュレーションには次の2つがある。
Connected Limited Device Configuration (CLDC)
携帯電話のような非力なCPUを対象とする。 Java VMから新たにKVMを開発し、Java Platform, Standard Edition(Java SE)とは一部互換性がないものの最小限の機能で動作するようにしたもの。 次のようなプロファイルがある。
Mobile Information Device Profile (MIDP)
携帯電話で最も広く普及しているプロファイル。最新の仕様はJSR 271: Mobile Information Device Profile 3、3世代目のMobile Information Device Profile (MIDP3)。そのなかで、全体的な機能拡張の他、デバイス間の相互接続性も拡張されている。MIDP3では、MIDP2の後方互換性も保たれている。
MIDP上で動く、高レベルなUIライブラリとして、Lightweight User Interface Toolkit (LWUIT)も提供されている。
DoJaプロファイル、Starプロファイル
テンプレート:See also NTTドコモ社の携帯電話上で実行するJavaアプリケーションのためのプロファイル。
Information Module Profile
Information Module Profile (IMP)は、自動販売機や組み込み向け産業機器、セキュリティシステム、シンプルでディスプレイを持たず、ネットワークへの接続が限定されているような組み込みデバイスのためのプロファイルである。もともとは、Siemens MobileとNokiaによって、JSR-195として導入され、IMP 1.0は、MIDP 1.0からユーザインターフェースAPIを除いたサブセットである。
Connected Device Configuration (CDC)
Connected Device Configurationは、Java SEのサブセットで、その中には、GUI関係を除く、ほとんど全てのライブラリが入っている。CLDCよりもリッチな仕様である。 カーナビやセットトップボックスなどの中程度の能力をもったCPUを対象にする。
Foundation Profile
Foundation Profileは、Java ME Connected Device Configuration (CDC)プロファイルのひとつである。 このプロファイルは、Java Platform, Standard Edition API全てが実行できるJava仮想マシンを必要とするデバイスで使用することを目的としている。 典型的な実装では、追加のプロファイルのサポートに応じて、そのAPIのサブセットを使用する。 この仕様は、Java Community Processのもので開発されている。
Personal Basis Profile
Personal Basis Profileは、Foundation Profileを拡張したもので、軽量なGUI(AWTのサブセット)が含まれている。
Personal Profile
Personal Profileは、Personal Basis Profileをさらに拡張したもので、より完全なAWTのサブセットとappletサポートが含まれている。
携帯電話でのアプリの互換性
日本の携帯電話ではau(KDDI・沖縄セルラー電話連合)のEZアプリ (Java)、ソフトバンクモバイルのS!アプリ、WILLCOMのJavaアプリがMIDPを採用しており、NTTドコモのiアプリは同社が独自に作成したDoJaプロファイルやStarプロファイルを使っている。各社の機能が少しずつ違うため、現状では互換性は少ない。
開発方法
開発は Java SE 上でMicro Edition用の開発ツールを組み合わせて行う。 APIも必要なものに限って実装する。
開発ツールの例
- Java ME SDK
- Sun ONE Studio 4 Mobile Edition
- SophiaCompress(Java):携帯Javaアプリ圧縮ツール
- Java MEアプリケーションのサイズを実行形式(JAR形式)のまま軽量化するJavaアプリ圧縮ツール。
- NetBeans IDE開発環境 60MBぐらいの本体を入れた後にnetbeans_mobilityをインストールするだけで開発環境が整う
JSR (Java Specification Requests)
基礎
JSR 番号 | 名称 | 備考 |
---|---|---|
68 | J2ME Platform Specification | |
30 | CLDC 1.0 | |
37 | MIDP 1.0 | |
118 | MIDP 2.0 | |
139 | CLDC 1.1 | |
271 | MIDP 3.0 | |
360 | CLDC 8 | |
361 | Java ME Embedded Profile 8 |
主要な拡張
JSR 番号 | 名称 | 備考 | MSA |
---|---|---|---|
75 | File Connection and PIM | ファイルシステム・アドレス帳・カレンダー・TODO | テンプレート:Ya |
82 | Bluetooth | テンプレート:Ya | |
120 | Wireless Messaging API (WMA) | ||
135 | Mobile Media API (MMAPI) | 音声・動画 | テンプレート:Ya |
172 | Web Services | テンプレート:Ya | |
177 | Security and Trust Services | テンプレート:Ya | |
179 | Location API | テンプレート:Ya | |
180 | SIP API | テンプレート:Ya | |
184 | Mobile 3D Graphics API | 高レベル3Dグラフィックス | テンプレート:Ya |
185 | Java Technology for the Wireless Industry (JTWI) | ||
205 | Wireless Messaging 2.0 (WMA) | ||
211 | Content Handler API | テンプレート:Ya | |
226 | Scalable 2D Vector Graphics API for J2ME | テンプレート:Ya | |
228 | Information Module Profile - Next Generation | ||
229 | Payment API | テンプレート:Ya | |
234 | Advanced Multimedia Supplements (AMMS) | MMAPI 拡張 | テンプレート:Ya |
238 | Mobile Internationalization API | テンプレート:Ya | |
239 | Java Bindings for the OpenGL ES API | ||
248 | Mobile Service Architecture | テンプレート:Ya | |
253 | Mobile Telephony API | ||
256 | Mobile Sensor API | ||
257 | Contactless Communication API | ||
258 | Mobile User Interface Customization API | ||
272 | Mobile Broadcast Service API for Handheld Terminals | ||
280 | XML API for Java ME | ||
281 | IMS Services API | ||
287 | Scalable 2D Vector Graphics API 2.0 for Java ME | ||
293 | Location API 2.0 | ||
298 | Telematics API for Java ME | ||
300 | DRM API for Java ME | ||
325 | IMS Communication Enablers |
未完成の規格
JSR 番号 | 名称 | 備考 |
---|---|---|
297 | Mobile 3D Graphics API (M3G) 2.0 |