▼JavaME CDCメモ▼
JavaME CDC
JavaME CDC(Connected Device Configuration)
ハイエンドなPDAや、テレビのセットトップボックス、ゲーム機、カーナビなど中程度の処理能力を持つ端末を対象としているコンフィギュレーション。Java仮想マシンとしてCVM。CVMは携帯端末向けに最適化されたJava仮想マシンで、Java2の仮想マシン仕様をサポート(JavaME CDC 1.1はJavaSE 1.4.2相当)。
JavaME以前は組み込み機器向けとしてPersonal Javaが使われていたが、Java 1.1のほぼ全ての機能を必要とするため、多種多様な携帯端末で利用するに適さなかった。そこでJavaME CDCではJavaSEの機能を複数のコンフィギュレーションとプロファイルに分け、携帯端末ごとに必要なプロファイルを選んで使えるようにした。
APIセット
日本のMIDP1.0端末は「MIDP CLDC」、MIDP2.0端末は「JTWI CLDC」を利用している。
現在PDA端末向けにも「JTWI CLDC」が利用されているが、PDAで使うには機能不足なため「MSA CDC」が採用されていくと思われる。
MIDP CLDC プロファイル MIDP 1.0 コンフィギュレーション CLDC 1.0 オプションAPI なし 拡張API なし JTWI CLDC プロファイル MIDP 2.0 コンフィギュレーション CLDC 1.0 or CLDC 1.1 オプションAPI Mobile Media API(JSR 135)
Wireless Messaging API 1.1(JSR 120)拡張API Wireless Messaging API 2.0(JSR 205)
JAXP XML Parser(JSR 172)
PDA Profile for J2ME(JSR 75)
Bluetooth/OBEX for J2ME(JSR 82)
SATSA-APDU(JSR 177)
SATSA-JCRMI(JSR 177)
SATSA-PKI(JSR 177)
SATSA-CRYPTO(JSR 177)
SIP API(JSR 180)
Advanced Multimedia Supplements(JSR 234)MSA Subset for CLDC プロファイル MIDP 2.0 コンフィギュレーション CLDC 1.1 オプションAPI Mobile Media API(JSR 135)
Wireless Messaging API 1.1(JSR 120)
PDA Profile for J2ME(JSR 75)
Bluetooth/OBEX for J2ME(JSR 82)
Mobile 3D Graphics for J2ME(JSR 184)
Scalable 2D Vector Graphics API(JSR 226)拡張API Content Handler API(JSR 211)
Mobile Internationalization API(JSR 238)
Payment API(JSR 229)
SIP API(JSR 180)
Advanced Multimedia Supplements(JSR 234)
SATSA-APDU(JSR 177)
SATSA-PKI(JSR 177)
SATSA-CRYPTO(JSR 177)
Location API for J2ME(JSR 179)
JAXP XML Parser(JSR 172)
SATSA-JCRMI(JSR 177)MSA CLDC プロファイル MIDP 2.0 コンフィギュレーション CLDC 1.1 オプションAPI Mobile Media API(JSR 135)
Wireless Messaging API 1.1(JSR 120)
Web Services API(JSR172)
JAXP XML Parser(JSR 172)
PDA Profile for J2ME(JSR 75)
Bluetooth/OBEX for J2ME(JSR 82)
Mobile 3D Graphics for J2ME(JSR 184)
Location API for J2ME(JSR 179)
SATSA-APDU(JSR 177)
SATSA-PKI(JSR 177)
SATSA-CRYPTO(JSR 177)
Content Handler API(JSR 211)
Mobile Internationalization API(JSR 238)
Payment API(JSR 229)
SIP API(JSR 180)
Advanced Multimedia Supplements(JSR 234)
Scalable 2D Vector Graphics API(JSR 226)拡張API SATSA-JCRMI(JSR 177) MSA CDC プロファイル Personal Profile 1.1
Personal Basis Profile 1.1
Foundation Profile 1.1コンフィギュレーション CDC 1.1 オプションAPI Advanced Graphics adn User Interface(JSR 209)
Java Authentication and Authorization Service
Java Cryptography Extension
Java Secure Socket Extension拡張API なし
情報源
リンク
Sun Developer Network Sun Developer Connection 富士通 組み込みJava実行環境
サンプル
Java2Dのサンプル
Swingのサンプル
情報源
J2SE Develoment Kit 5.0(JDK 5.0)
パソコン上で動くJavaアプリを作るための開発キット。サン・マイクロシステムズのサイトで入手できる。「J2ME Wireless Toolkit」を実行するのに必要なので、それより先にインストールする。
Sun Java Toolkit 1.0 for CDC, Beta
CDCのアプリを作るための開発キット。サン・マイクロシステムズのサイトで入手できる。APIリファレンスはメニューのHelpから開く。
プロファイル
プロファイル
JSR216 Personal Profile 1.1 グラフィックス関連の機能を利用するためのプロファイルです。 JSR217 Personal Basis Profile グラフィックス関連の機能を利用するためのプロファイル。
Personal Profileのサブセット。JSR219 Foundation Profile 1.1 CDCに含まれなかったJavaSEの基本的なAPIを補うプロファイル。
HelloWorldの作成
「Hello World!」という文字列を表示するアプリを作成する。
プロジェクトの作成
- Windowsのスタートメニューから「CDC Toolkit」を起動。
- 「New Project」ボタンを押す。
- CDC Projectに「CDC Standalone Application」と「Managed Application -Xlet」があるので、「Managed Application -Xlet」を選択しNextボタンを押す。
- Project NameとXlet Nameに「HelloWorld」と入力しNextボタンを押す。
- Finishボタンを押す。
ソースコード
プロジェクトのフォルダ(デフォルトはC:\CDCTK10\apps\HelloWorld\)のsrcフォルダのHelloWorld.javaを編集。
import java.awt.*; import javax.microedition.xlet.*; //HelloWorld(本体) public class HelloWorld implements Xlet { private XletContext context; //コンテンツ private Container container;//コンテナ //初期化 public void initXlet(XletContext context) { try { //コンテンツ this.context=context; //コンテナ this.container=context.getContainer(); this.container.setLayout(new BorderLayout()); this.container.add(new HelloComponent(), BorderLayout.CENTER); } catch (Exception e) { } } //開始 public void startXlet() { container.setVisible(true); } //ポーズ public void pauseXlet() { container.setVisible(false); } //終了 public void destroyXlet(boolean unconditional) { } }
プロジェクトのフォルダのsrcフォルダにHelloComponent.javaを追加。
import java.awt.*; //HelloWorld(コンポーネント) public class HelloComponent extends Component { //描画 public void paint(Graphics g) { g.drawString("Hello World",0,12); } }
ビルドと実行
Buildボタンを押すとビルド完了。Runボタンを押してエミュレータで実行。