Mobile Information Device Profile (MIDP)
Mobile Information Device Profile(モバイル インフォメーション デバイス プロファイル、一般にMIDPと略称されています)は、
携帯電話やPDA(パーソナルデジタルアシスタント)などの組み込み機器で
Javaを使用するための仕様を示しています。このMIDPは
Java ME(Micro Edition)のフレームワークの一部として、特に軽量デバイス向けに設計されています。MIDPはConnected Limited Device Configuration(CLDC)と組み合わせて利用されることが多いです。
歴史的背景
MIDPは
Java Community Process(JCP)の下で開発された三つの主要なバージョンがあります。これには次のものが含まれます。
これらのバージョンごとに新しい機能が追加され、より多機能で柔軟なアプリケーション開発を可能にしています。
日本でのMIDPの利用状況
日本では、au(ezplus、EZアプリ、
オープンアプリプレイヤー)やソフトバンクモバイル(
S!アプリ)、
ウィルコムなどがMIDPを採用しています。しかし、
NTTドコモのiアプリはMIDPではなく、独自のDoJaプロファイルを利用しているため、注意が必要です。
Lightweight User Interface Toolkit (LWUIT)
MIDP環境では、高度なユーザーインターフェースを構築するためのライブラリ、Lightweight User Interface Toolkit(LWUIT)も提供されています。このツールは、
Swing風のAPIを持ち、使いやすさをサポートしています。これにより、開発者はより洗練されたアプリケーションを設計することができます。
開発ツール
MIDPアプリケーションの開発には、
Java ME SDK 3.0が利用されており、複数の開発手法があります。基本的なテキストエディタから開発を始めることも可能ですが、より効率的な開発を求めるなら、NetBeansやEclipse(適切なプラグインを含めた場合)を使用するのが良いでしょう。また、Motorolaが提供しているEclipseベースの開発環境「MOTODEV」も有用な選択肢です。
MIDP 1.0からのコアAPI
MIDP 1.0にはいくつかの重要なAPIが含まれています。これらのAPIはCLDCを基礎に設計されています。
- - javax.microedition.io: I/O関連の操作を扱うクラス。
- - javax.microedition.lcdui: GUI関連のクラスで、主に液晶ディスプレイ(LCD)を利用したアプリケーションで使用されます。
- - javax.microedition.rms: 永久ストレージへの操作を扱うためのクラス。
- - javax.microedition.midlet: Java MEアプリケーションの基本クラス。
MIDP 2.0での新たな特徴
MIDP 2.0では、ゲームやマルチメディア機能を強化するために新しいAPIが追加されましたが、特に次の点が注目されます。
- - javax.microedition.media: マルチメディア再生に関する基礎クラス。
- - javax.microedition.lcdui.game: 2Dスプライトを基にした簡単なゲームを支援するためのAPI。
- - javax.microedition.pki: セキュアな接続のための証明API。
MIDP 1.0の制約
MIDP 1.0にはいくつかの制約があり、例えばキー状態の取得ができないこと、アクティブレンダリングAPIの不在、オーディオサポートの欠如、そしてHTTPのみに対応している点が挙げられます。これらの制約は、移植や実装において様々な違いを生じさせる要因となります。
おわりに
MIDPは、その設計と多様なAPIにより、組み込み機器向けの
Javaアプリケーション開発において重要な役割を果たしています。これまでの歴史を経て、ますます多機能化し、柔軟性を増したMIDPは、今後も新しい開発を続ける上で欠かせない技術となるでしょう。