Connected Limited Device Configuration ( CLDC ) は、 Java MEアプリケーションのためのフレームワーク仕様であり、実装に必須のライブラリと仮想マシン機能の基本セットを記述しています。CLDCは1つ以上のプロファイルと組み合わせることで、ポケットベルや携帯電話など、リソースが非常に限られた組み込みデバイス上でアプリケーションを構築するためのプラットフォームを開発者に提供します。[ 1 ] CLDCは、Java Community Processの下でJSR 30 [ 2 ] (CLDC 1.0) およびJSR 139 [ 3 ] (CLDC 1.1) として開発されました。
CLDCは、処理能力、メモリ、グラフィック能力が限られているデバイス向けに設計されています。デバイスは通常、以下の機能を備えています。[ 1 ]
Java SE環境と比較すると、いくつかのAPIが完全に欠落しており、一部のAPIは変更されているため、CLDCをサポートするには明示的なコード変更が必要です。特に、一部の変更はクラスやインタフェースが欠落しているだけでなく、基本クラスライブラリ内の既存クラスのシグネチャが実際に変更されることもあります。例えば、Serializableリフレクションの使用制限により基本クラスライブラリに存在しないインタフェースが欠落していることが挙げられます。そのため、java.lang.*通常は実装するすべてのクラスが、このタグ付けインタフェースSerializableを実装するわけではありません。
その他の制限の例は、使用しているバージョンによって異なります。一部の機能はCLDCバージョン1.1で再導入されました。[ 4 ]
Serializableはサポートされていません。java.lang.reflect。java.lang.Classコンストラクター、メソッド、またはフィールドを取得するメソッド。Object.finalize()メソッドが含まれていません。プロファイルとは、CLDCフレームワーク内で様々な機能とリソースを持つデバイスをサポートし、完全なJavaアプリケーション環境を提供するためのAPIセットです。自動販売機からセットトップボックスまで、様々なデバイスに対応したプロファイルが存在し、携帯電話向けのMIDPプロファイルが最も普及しています。[ 5 ]
モバイル情報デバイスプロファイル( MIDP)は、携帯電話向けに設計されたプロファイルです。MIDPには、JSR 37 [ 6 ] [ 7 ] (MIDP 1.0) とJSR 118 [ 8 ] [ 9 ] (MIDP 2.0) の2つのバージョンがあります。どちらのバージョンもLCD向けのGUI APIを提供しており、MIDP 2.0には基本的な2DゲームAPIが含まれています。このプロファイルを使用するように作成されたアプリケーションはMIDletと呼ばれます。多くの携帯電話にはMIDPが実装されており、ダウンロード可能な携帯電話ゲームのプラットフォームとして人気があります。[ 10 ]
情報モジュールプロファイルはJSR 195 [ 11 ]で規定されており、自動販売機、ネットワークカード、ルーター、電話ボックスなど、ディスプレイが簡素であるか全くなく、何らかの形で双方向のネットワークアクセスが制限されているシステム向けに設計されています。アプリケーション作成、ストレージ、ネットワークアクセスのためのAPIのみが定義されています。これらは、MIDPのjavax.microedition.io、rms、およびmidletパッケージのサブセットです。Siemens MobileとNokiaがこの仕様をJCPに提出しました。
DoJaプロファイルは、 NTT ドコモがi モード携帯電話用に設計しました。
JSR 242 [ 12 ]で規定されているデジタルセットトップボックスプロファイルは、ケーブル市場向けに設計されています。OnRampとも呼ばれるこのプロファイルは、セットトップボックスなどのデバイス向けアプリケーション開発用のAPIセットを定義するOpenCable Application Platform(OCAP )のサブセットに基づいています。このプロファイルは、 AWT、Xlet 、ファイルアクセス、ネットワークAPIのサポートを含むCDC Personal Basis Profileのサブセットに加え、OCAPのメディア関連インターフェースもいくつか含まれています。プロファイル全体では、31個のJavaパッケージと約1500個のAPIが含まれています。[ 5 ]
PDAオプションパッケージはJSR-75 [ 13 ]で規定されており、 PalmやWindows CEなどのPDA向けに設計されています。この仕様では、多くのPDAやその他のモバイルデバイスに搭載されている重要な機能を表現する2つの独立したパッケージが定義されています。これらのパッケージは以下のとおりです。
java.iojava.langjava.utiljava.utilなどのコレクションクラスが含まれています。また、カレンダーと日付のクラスも含まれています。