Mobile Information Device Profile

Mobile Information Device Profile（モバイル インフォメーション デバイス プロファイル、略称MIDP）は、携帯電話やPDAのような組み込み機器でのJavaの利用について記述した仕様である。MIDPは Java ME フレームワークの一部である。MIDPはCLDCと組み合わせて利用する。

歴史
MIDPは以下の三種類がJCPの下で開発された。
 JSR 37(MIDP 1.0) - 2000年9月19日承認
 JSR 118(MIDP 2.0, 2.1) - 2002年11月20日承認
 JSR 271(MIDP 3.0) - 2009年12月9日承認

日本での採用 
日本ではau（ezplus、EZアプリ (Java)、オープンアプリプレイヤー）、ソフトバンクモバイル（S!アプリ）、ウィルコムで採用されている。NTTドコモのiアプリはMIDPでは無く、DoJaプロファイルである。

Lightweight User Interface Toolkit
MIDP上で動く、高レベルなUIライブラリとして、Lightweight User Interface Toolkit (LWUIT)も提供されている。Swing風のAPIと機能を提供している。

開発ツール 
SDK としては、Java ME 全体の SDK として、Java ME SDK 3.0 が配布されている。

MIDPアプリケーションを開発するにはいくつかの異なった方法がある。コードはメモ帳のようなテキストエディタで記述するか、またGUIを持ったNetBeansまたはEclipse(適切なプラグインを組み込む)のような高度な統合環境を利用できる。また、MotorolaによってEclipseベースの統合開発環境「MOTODEV」が無償配布されている。

MIDP 1.0から存在するAPI 
コアAPIはConnected Limited Device Configuration(CLDC)コンフュギレーションを基礎として定義されている。

 javax.microedition.io
 I/O操作に関してJava ME仕様クラスを含む。
 javax.microedition.lcdui
 GUIで使用されるJava ME仕様クラスを含む。通常、携帯電話は液晶ディスプレイ(LCD)を使用するためLCD UIと呼ばれる。
 このAPIは固有のディスプレイ技術用に特化しているわけではない。
 javax.microedition.rms
 Java ME用の永久ストレージの操作を含む。
 javax.microedition.midlet
 Java MEアプリケーションの基本クラスを含む。

MIDP 2.0で追加されたAPI 
MIDP 2.0ではゲームおよびマルチメディアAPIの導入といくつかのオプションパッケージが追加された。

 javax.microedition.media
 マルチメディア再生に関する基本クラスを含む。おそらくJSR 135であるJava Mobile Media APIのサブセットがある。
 javax.microedition.lcdui.game
 簡単な2Dスプライトをベースとしたゲームを支援するゲームAPI。
 javax.microedition.pki
 セキュアな接続に関する証明API。

MIDP 1.0 の制約 
MIDP 1.0はキー状態の取得ができない。MIDP 1.0はアクティブレンダリングAPIを持っていない。MIDP 1.0はオーディオをサポートしていない。MIDP 1.0はHTTPだけサポートしている。仕様に実装の自由があるため、実装において違いが生じる。

外部リンク 
 
 JSR 37 (MIDP 1.0)
 JSR 118 (MIDP 2.0)
 JSR 271 (MIDP 3.0)

Java
もはいるいんふおめえしよんてはいすふろふあいる
Java specification requests
長大な項目名