携帯で動く Java プログラムの書き方


携帯で動く Java2ME CLDC でのプログラムの書き方についてです。
以下は、Doja2.x、JSCL1.1、EzPlus1.0 の頃の記述ですので、ご注意ください。

CLDC / 対応状況 / 解説 / 戻る / トップページ


Java2 Micro Edition CLDC

携帯電話で動く Java は Java2 Micro Edition CLDC に分類されます。
 
Java2 Micro Edition (Java2ME) とは組みこみ機器向けの Java2 のエディションで、 一般的な Java2 である Standard Edition のサブセットです。
 
CLDC とは Connected, Limited Device Configuration の略で、 Micro Edition のクラス構成 (Standard Edition のどれだけをサブセット化するか) を表します。 CLDC は KVM (Kirobyte Virtual Machine, キロバイト単位のメモリで動作する 組みこみ機器用の VM) を使います。
 
さらに用途向けの用意された特殊な API (Profile と呼びます) が用意されています。 携帯向けの Profile として、 Mobile Information Device Profile (MIDP) と i モード対応 Java Profile があります。
 
MIDP は Sun を中心として各国の名立たる電話会社によって話し合い、 規定された携帯向けの公式な Profile です。 J-Phone や au (KDDI)、海外の携帯電話はこの MIDP をサポートしています。 i モード対応 Java Profile は Java 対応 i-mode のリリース時期に MIDP 正式版の規定が間に合わなかったため、 DoCoMo によって作成された i-mode 用の Profile です。

対応状況

携帯電話上で動く Java となれば 当然そのために作られている Java2 Micro Edition MIDP が採用されるはずですが、 様々な事情 (主に MIDP 正式版の規定の遅れ) によりそうでない場合があります。
 
503i シリーズ以降の i-mode で動く Java は MIDP とは異なる i モード対応 Java Profile を採用しています。 詳細は i-mode で動く Java プログラムの書き方 に書きます。
 
J-PHONE は Java 対応リアルタイム OS「JBlend」(アプリックス社) を採用、 API は MIDP 互換です。 JSCL (J-PHONE Specific Class Libraries) と呼ばれるかなり強力な拡張 API を持ち、 30KB のプログラムの実行が可能 (i アプリの 3 倍)。 JSCL では 2D のスプライト処理 (セガのスマイルビットが開発)、 搭載される 3D エンジンの使用 (バンダイネットワークス、HI)、 固定小数点演算、 電話やメール機能との連携 (着信イベントの取得)、位置情報の取得、 電界強度・バッテリー残量の取得、バックライト・LED・バイブレータの制御、 JPEG・SMAF・SMD のサポート、 サウンドのフレーズごとの制御や動画や映像との同期、 アプリの待ち受け設定、 などが出来ます。 一般ユーザーには開放されていない仕様は JOCL API で公開されています。 対応端末は J-SH07, J-T06, J-D05, J-N04 です。
 
2002年3月から J-PHONE の Java は次期フェーズに移行し、 パケット通信導入を行った端末から一般ユーザーが 作成したアプリもダウンロード可能です。 一般ユーザーはコンテンツアグリゲイターとよばれる企業を通して アップロードする形となります。 仕様・開発ツールなどは J-PHONE Developer Program で公開されています。 コンテンツアグリゲイターは J アプリ★ゲット と、 できたてあぷたま! のみです。 対応端末は J-SH51, J-K51 以降のパケット対応機です。
 
au (KDDI) では アプリックス社開発の Java 対応リアルタイム OS「JBlend」を採用し、 API は MIDP 互換に独自拡張 KDDI-P が加わります。 これを ezplus と呼びます。 特徴として、50KB のプログラムの実行が可能 (i アプリの 5 倍)、 アプリケーション間の通信方法 (新 C メール機能) が豊富、 Jumon (オムロン開発の P2P サービス実現のためのミドルウェア、 ORB などが使用可能) の搭載、 アドレス帖・自局電話番号・位置情報・通話料金等が取得可能、 バイブレータ・LED 制御、 C-MIDI・SMAF のサポート、 http 通信の不可 (検討中) などがあります。 セキュリティーには 公式コンテンツ向けのレベル A、個人向けのレベル B の 2 段階があり、 新 C メール機能・個人情報・端末情報の読み取り・操作は レベル A のみに許されます。 ゲームを作ろう(ezplus) で仕様が公開されました。
 
au (KDDI) の Java は 2001年12月1日のEZweb高速化と併せて ezplus はフェイズ 2 に移行し、 動画配信(?)、位置情報サービス、HTTP通信、HTTPS通信、 サーバからのアプリケーションの自動更新(?)、 mail to, URL to, Phone to 機能に対応予定です。 対応端末は C451H, C452CA で、 12月以降の全ての端末に ezplus が搭載されます。 また、Java とは別に C/C++ による実行環境が提供され、 将来的にはその上に JavaVM が載るようになるそうです。 ちなみに C/C++ による実行環境 BREW のソフト開発 は 認証が必要なため、我々個人では難しいようです。
 
以上をまとめると以下の表のようになります。
 
携帯電話キャリアごとの API セット
携帯電話 アプリ名称 API セット
i-mode iアプリ CLDC + i モード対応 Java Profile
J-Phone Javaアプリ CLDC + MIDP + JSCL
au EzPlus CLDC + KDDI-P (KDDI-P = MIDP+α)
 
ツーカーでも Java を搭載した携帯電話は夏以降に登場するそうです。
 
DDI ポケットも Java 搭載携帯電話の 2001 年秋の導入を検討しています。 MIDP になるようです。
 
韓国の LG テレコム社の i-Book では ez-java と呼ばれる Java が採用されており、 これは KittyHawk (MIDP の Java 1.1 版 (?)) が API として採用されています。 [ez-java LG TeleCom] のページから i-Book エミュレーターがダウンロードでき、開発等も行えます。
 
モトローラとセガが共同開発する Java 採用の携帯 (国外) iDEN では MIDP が使われます。 Motorola iDEN Developer Support のページから Motorola SDK Components for J2ME がダウンロードできます。 これはモトローラの Java 対応携帯電話 iDEN のエミュレータを含んだもので、 モトローラ上で動作する Java の開発が行えます。 MIDP と互換性があることが明記されています。 iDEN 開発環境は Metrowerks CodeWarrior へ統合されるそうです。 2001 年初めに発売予定だそうです。 米モトローラ、ノキア、L.Mエリクソンの大手3社が 来年上半期にも Java 対応携帯端末をリリースする予定だそうです。
 
海外の Java 対応端末については AnfyMobile (英語) の「J2ME MARKET」「J2ME DEVICES」が詳しいです。

解説

MIDP、i モード対応 Java Profile それぞれについて 以下のページに解説しましたので、そちらをお読みください。
 
i-mode で動く Java プログラムの書き方
i モード対応 Java Profile について解説します。
 
携帯で動く MIDP プログラムの書き方
MIDP について解説します。

戻る