モバイル情報デバイスプロファイル(MIDP )は、携帯電話やPDAなどの組み込みデバイスでJavaを使用するための仕様です。MIDPはJavaプラットフォーム、マイクロエディション(Java ME)フレームワークの一部であり、下位レベルのプログラミングインターフェースであるコネクテッドリミテッドデバイス構成(CLDC)の上に構築されています。MIDPはJavaコミュニティプロセスに基づいて開発されました。最初のMIDPデバイスは2001年4月に発売されました。
コアとなるアプリケーションプログラミングインターフェースは、基盤となるコネクテッドリミテッドデバイス構成システムによって定義されます。
入出力操作に使用されるJava ME固有のクラスが含まれています。
GUIに使用される Java ME 固有のクラスが含まれています。
LCDUI はシンプルな画面ベースのアプローチを採用しており、アプリケーションのユーザー インターフェイスでは、常に 1 つの Displayable がアクティブになります。 LCDUI API は、モバイル デバイスのユーザー インターフェイスでよく使用される、リスト、アラート、テキスト ボックス、フォーム、キャンバスなどの少数の Displayable を提供します。すべての Displayable について、デバイスの MIDP 実装が、Displayable の表示とレイアウトを制御します。 Canvas は低レベルのグラフィック サーフェスであり、アプリケーションはレンダリングされる内容を完全に制御できますが、通常は、モバイル デバイスの UI でよく使用される画面タイトルやインジケーターなどのシステム領域用にスペースが確保されます。 MIDP 2.0 以降、Canvas はフルスクリーン モードもサポートしており、フルスクリーン グラフィックの使用が可能になり、特にゲームに役立ちます。[ 1 ]
LCDUIには、コマンドと呼ばれる非常にユニークな抽象操作のアプローチもあります。表示可能な要素に追加されたコマンドの配置は、このツールキットのデバイス実装に完全に依存します。アプリケーションプログラマは、APIで指定されたコマンドタイプを使用して、アプリケーションのユーザーインターフェイスでのコマンドの使用方法または目的を示します。一般的なタイプはBACK、、、、です。コマンドの抽象化の考え方は、さまざまなモバイルデバイス間でアプリケーションの移植性を高めることです。アプリケーション開発者はEXIT、コマンドタイプを適切に使用して操作の目的を示す必要があり、デバイス実装は、デバイス固有のユーザーインターフェイススタイルで、特定のタイプの一般的な場所に操作を配置します。これは、たとえば、戻るコマンドの「戻るナビゲーションキー」などの特定のキー、または画面上のボタンである可能性があります。ITEMSCREEN
LCDUIという略語は、実はJCPエキスパートグループ内の内輪ネタだった。MIDP仕様書には明記されていないが、Limited Capability Device User Interface(限定機能デバイスユーザーインターフェース)を意味する。(誰もその意味を知らなかったというのが、このジョークの核心だった。)後に、『Programming Wireless Devices with the Java 2 Platform, Micro Edition』という書籍で、この定義が採用された。
他にも、よく使われる擬似的な定義が登場している。「液晶ディスプレイユーザーインターフェース」は、携帯電話が通常LCDを使用しているという事実を反映しているが、このAPIは特定のディスプレイ技術に特化して設計されているわけではない。また、「LCD UI」は「最小公倍数」の略とも言われている。これは、この特定のUIが可能な限りシンプルなデザインになっているためである。
レコード管理システムは、 Java ME用の永続ストレージ、つまりモバイルデバイス用のデータベースを提供する。
Java MEアプリケーションの基本クラスが含まれており、アプリケーションが状態の変化を通知されるようにします。
以下のJava仕様要求(JSR)は、MIDP実装に追加して機能を追加できるオプションのJSRの一部です。オプションのJSRであるため、MIDP端末がこれらのAPIを実装するという保証はありません。
SMSおよびMMSメッセージを送信するためのワイヤレスメッセージングAPI(オプション)。
個人情報管理API(オプション)により、デバイスのアドレス帳、ToDoリスト、カレンダーにアクセスできます。
ファイル接続オプションパッケージ(FCOP)は、Java Community Processを通じてJSR 75で定義された2つのオプションパッケージのうちの1つです。JSR 75で規定されているFileConnection APIは、PDAなどのデバイス上のローカルファイルシステムへのアクセスを提供します。セキュリティ上の問題を回避するため、MIDletはJADファイルのMIDLet-Permissionプロパティに要求されたファイル権限を含める必要があります。
MIDPアプリケーションを作成する方法はいくつかあります。プレーンテキストエディタでコードを記述することもできますし、NetBeans、IntelliJ(Java MEプラグインがバンドルされているもの)、Eclipse ( EclipseMEなどのプラグインが付属しているもの)といったより高度なIDEを使用することもできます。これらのIDEには、作成したフォームをグラフィカルにレイアウトするためのユーザーインターフェースがあり、シンプルなテキストエディタでは利用できない多くの高度な機能も提供されています。
ベンダー固有のAPIやMIDP 2.0を使用することで、いくつかの制限を回避できる場合があるが、その場合、アプリケーションの移植性が低下する。
MIDPはJavaコミュニティプロセスに基づいて開発されました。
MIDPはJava ME 8以降、ME Embedded Profileに置き換えられました。[ 5 ]