| MIDP |
MIDP(Mobile Infomation Device Profile)は、携帯電話やPDA向けに作られたJavaのAPI仕様で、ボーダフォンやauなど多くの携帯端末で採用されています。
「MIDP2.0」関連は「MIDP2.0メモ」へ
| 情報源 |
MIDP EZアプリ Vアプリ
- J2SE 1.3(JDK1.3)
- J2ME Wireless Toolkit 1.3
- MIDP APIリファレンス(JP)
- J2ME CDC APIリファレンス(JP)
- Susie Plugin to PNG for Win
- 画像フォーマットアナライザー
| auのEZアプリ(Java) |
auの携帯電話では、Web閲覧サービスをEZWeb、JavaアプリケーションのダウンロードサービスをEZアプリ(Java)と呼びます。EZアプリ(Java)の拡張APIの仕様にはPhase1とPhase2/2.5とPhase3.0があります。
サービス
キャリア WEB閲覧サービス アプリのダウンロードサービス au EZWeb EZアプリ(Java)(旧ezplus)
サイズ
Phase1 Phase2 Phase2.5 Phase3 KJXファイルのサイズ 50K 50K 50K 150K レコードストアのサイズ 10K 10K 10K 10K 拡張データストレージのサイズ なし なし なし 200K 合計サイズ 60K 60K 60K 360K
ライブラリ
Phase1 Phase2 Phase2.5 Phase3 CLDC 1.0 1.0 1.0 1.0 MIDP 1.0 1.0 1.0 1.0 KDDIP 1.0 2.0 2.5 3.0
EZアプリ(Java)対応端末の端末情報
※A3015SAは音楽同時再生のみ2.5の機能が使える
Phase 端末名 端末情報 フォント サウンド 識別コード 画面サイズ Javaヒープ SMALL MEDIUM LARGE C-MIDI SMAF Qcelp Phase1 C451H HI14 120x113 262114 12x13 14x16 14x16 2.0 MA2 ○ C452CA CA14 120x120 387452 12x12 12x12 14x14 2.0 MA2 ○ Phase2 C3001H HI21 120x130 524288 12x13 14x16 14x16 2.0 MA2 ○ C3002K KC21 128x132 512000 12x12 12x12 12x12 3.0 × ○ C3003P MA21 132x144 524288 10x13 12x15 20x23 3.0 MA2 ○ C5001T TS21 144x135 471040 14x15 14x15 14x15 3.0 × ○ A3011SA SA21 132x144 524288 10x10 12x12 16x16 3.0 × ○ A3012CA CA21 132x147 715132 10x10 12x12 14x14 3.0 MA3 ○ A3013T TS22 144x135 471040 14x15 14x15 14x15 3.0 MA3 ○ A3014S SN21 120x120 524288 12x12 14x14 14x14 2.0 MA3 ○ A3015SA SA22 132x144 614400 10x10 12x12 16x16 3.0 MA3 ○ Phase2.5 A5301T TS23 144x140 614400 12x14 14x15 18x19 × MA3 ○ A5302CA CA22 132x147 970516 10x10 12x12 14x14 3.0 MA3 ○ A5303H HI23 132x144 720896 12x11 12x11 14x14 × MA3 ○ A5303H II HI24 132x144 720896 12x11 12x11 14x14 × MA3 ○ A5305K KC22 132x144 720896 12x11 12x11 14x14 × MA3 ○ A5401CA CA23 132x147 970516 10x10 12x12 14x14 3.0 MA3 ○ A5402S SN24 120x120(拡大表示) 1048576 12x12 14x14 14x14 2.0 MA3 ○ A5401CA II CA23 132x147 970516 10x10 12x12 14x14 3.0 MA3 ○ A5404S SN25 120x128(拡大表示) 614400 12x12 12x12 16x16 × MA5 × Phase3 W11H HI31 240x268 2097152 12x12 20x20 24x24 × MA3 ○ W11K KC31 240x268 2097152 12x12 20x20 24x24 × MA3 ○ A5403CA CA24 240x266 1536000 12x12 20x20 24x24 × MA5 × A5406CA CA25 240x266 1536000 12x12 20x20 24x24 × MA5 × A5407CA CA26 240x266 1536000 12x12 20x20 24x24 × MA5 ×
EZアプリ(Java)の拡張API
※勝手アプリで端末内情報にアクセスする機能を使うことは許されていません。
機能 Phase1 Phase2 Phase2.5 Phase3 位置情報 基本 基本 基本 基本 EZアプリ通信 基本 基本 基本 × バイブレータ・着信LED制御 基本 基本 基本 基本 サウンド 基本 基本 基本 基本 HTTP通信 × 基本 基本 基本 バックライト制御 × 基本 基本 基本 ブラウザやメーラーとの連携 × 基本 基本 基本 音声通話連携 × 基本 基本 基本 自動起動 × 基本 基本 基本 複数の音の同時再生 × × 基本 基本 待ち受けアプリ × × 基本 基本 一時停止機能 × × 基本 基本 ブラウザからのアプリ起動時のパラメーター引渡し × × 基本 基本 3Dポリゴン描画 × × × 基本 2Dスプライト描画 × × × 基本 カメラ制御 × × × 基本 図形描画の拡張 × × × 基本 JPEGエンコード × × × 基本 データフォルダ書込 × × × 基本 外部メモリ連携 × × × 基本 アドレス帳編集 × × × 基本 バーコード解読 × × × オプション HV-script(Humanoid Voice)再生機能 × × × オプション
EZアプリ(Java)のリソース
リソース 拡張子 説明 ツール PNG *.png 画像ファイル。256色以下のインデックスカラーのみ。 Susie Plugin to PNG for Win C-MIDI *.pmd サウンドファイル。
C-MIDI3.0・C-MIDI2.0・C-MIDI1.0の3つのバージョンがある。
使えるかどうかは機種依存。着メロコンバータ for DoCoMo503i(auのPMD対応) SMAF *.mmf サウンド・音声のファイル。
MA1・MA2・MA3・MA5の4つのバージョンがある。
使えるかどうかは機種依存。公式ツール SMAF/Phrase *.spf 複数同時再生ができるサウンド・音声ファイル。 公式ツール 13KQcelp *.qcp 音声ファイル。 PureVoice Converter for Windows
HTTP通信でアクセス可能なデータサイズ
※1 Phase3端末を実機で試したところWIN端末は97280、そうでない端末は46080くらいまで受信可能な模様。
Phase1 Phase2 Phase2.5 Phase3 GET送信データ 1024 1024 1024 1024 GET受信データ 9000 9000 9000 9000 ※1 POST送信データ 20480 20480 20480 40960 POST受信データ 9000 9000 9000 9000 ※1
HTTPでアクセス可能なMIMEタイプ
拡張子 MIMEタイプ *.html text/html *.hdml text/x-hdml;charset=Shift_JIS *.bmp image/bmp *.png image/png *.gif image/gif *.jpg image/jpeg *.qcp audio/vnd.qcelp *.pmd application/x-pmd *.mmf application/x-smaf *.amc application/x-mpeg テキスト text/plain バイナリ application/octet-stream
MIDP1.0仕様との相違
- 実行ファイルはJARファイルとJADファイルでなくkjxという独自形式
- JADファイルにMicroEdition-ConfigurationとMicroEdition-Profileが必須
- クリアキーを押した時のキーコード(0)をgetGameAction()に渡すと例外発生
- 端末の時間を変更してもSystem.currentTimeMillis()等で取得できる時間は正確
- Phase1.0ではHTTP通信ができない
WIN端末の通信制限
- HTTP通信の回数は1分間につき8回まで
- HTTP通信のデータ量は1日につき3Mまで。
| ボーダフォンのVアプリ |
ボーダフォンの携帯電話では、Web閲覧サービスをボーダフォンライブ!、JavaアプリケーションのダウンロードサービスをVアプリと呼びます。Vアプリの拡張APIの仕様にはJSCL1.0とJSCL1.1とJSCL1.2/1.2.2があります。
サービス
キャリア WEB閲覧サービス アプリのダウンロードサービス ボーダフォン(旧J-PHONE) ボーダフォンライブ!(旧J-SkyWeb) Vアプリ(旧Javaアプリ)
型番
種別 型番 レベル プリペイド V100 スタンダード V200 ハイスペック 非パケットPDC V300 スタンダード V400 ハイスペック パケットPDC V500 スタンダード V600 ハイスペック 3G V700 スタンダード V800 ミドルレンジ V900 ハイスペック
サイズ
50Kアプリ 100Kアプリ 256Kアプリ 256Kアプリ Ver.2 JADファイルのサイズ 3K以下 3K以下 3K以下 3K以下 JARファイルのサイズ 50K以下 80K以下 200K 200K以下 レコードストアのサイズ 50K以下 50K以下 200K 200K以下 合計サイズ 50K 100K 256K 256K
ライブラリ
50Kアプリ 100Kアプリ 256Kアプリ 256Kアプリ Ver.2 型番 C4型 P4型 P5型 P6型 CLDC 1.0 1.0 1.0 1.0 MIDP 1.0 1.0 1.0 1.0 JSCL 1.0 1.1 1.2 1.2.2
Vアプリ対応端末の端末情報
端末情報 フォント 端末名 画面サイズ SMALL MEDIUM LARGE 50Kアプリ J-SH07 120x117 12x12 12x12 12x12 J-T06 120x126 12x14 12x14 12x14 J-D05 132x126 12x13 12x13 12x13 J-D06 132x126 12x13 12x13 12x13 J-N04 120x126 12x12 12x12 12x12 J-N05 160x180 12x12 12x12 16x16 J-SH08 120x117 12x12 12x12 12x12 J-SH09 120x130 12x12 12x12 12x12 J-T08 222x261 12x12 12x12 20x26 J-SH010 ? ? ? ? J-D08 ? ? ? ? J-T010 222x261 12x12 12x12 20x26 V401SH ? ? ? ? ? ? ? ? V301SH ? ? ? ? ? ? ? ? V401T ? ? ? ? ? ? ? ? V402SH ? ? ? ? 100Kアプリ J-SH51 120x130 12x13 12x13 12x13 J-K51 128x128 12x14 12x14 16x18 J-T51 144x144 12x14 12x14 16x16 J-P51 120x130 12x14 12x14 16x18 J-SA51 132x144 12x12 12x12 16x16 J-SH52 120x130 12x13 12x13 12x13 J-N51 160x180 12x13 12x13 12x13 V601N ? ? ? ? V801SA ? ? ? ? ? ? ? ? V801SH ? ? ? ? ? ? ? ? 256Kアプリ J-SH53 120x130 12x12 12x12 20x19 240x260 12x12 20x19 20x19 V601SH 120x130 12x12 12x12 20x19 240x260 12x12 20x19 20x19 256Kアプリ Ver.2 V602SH ? ? ? ? ? ? ? ? V601T ? ? ? ? ? ? ? ?
Vアプリの拡張API
※勝手アプリで端末内情報にアクセスする機能を使うことは許されていません
機能 50Kアプリ 100Kアプリ 256Kアプリ スプライト 基本 基本 基本 音の再生 基本 基本 基本 音の同時再生 基本 基本 基本 バッテリー残量・電界強度の取得 基本 基本 基本 LCDバックライト・バイブレータ制御 基本 基本 基本 キーの押下状態、キーオートリピート制御 基本 基本 基本 位置情報取得 基本 基本 基本 電話着信・呼び出し停止・メール着信・
スケジュールアラーム発生等のイベント取得基本 基本 基本 固定小数点演算・2次元ベクトル演算 基本 基本 基本 待ち受けアプリ 基本 基本 基本 3Dグラフィックス 基本 基本 基本 圧縮データの復元 × 基本 基本 日本語テキスト入力(FEP) × × 基本 音声通話機能 × × 基本 メールの送受信 × × 基本 カメラ制御 × × 基本 コードリーダー制御 × × 基本 アドレス帳へのアクセス × × 基本 データフォルダへのアクセス × × 基本 赤外線通信 × × 基本 赤外線リモコン × × 基本 背面液晶制御 × × 基本 ブラウザ起動 × × 基本 ピクセル操作 × × 基本 画像エンコード × × 基本 アプリケーションマネージャー × × 基本 動画再生 × × 基本 端末情報の取得 × × 基本 音声認識 × × 基本
Vアプリのリソース
リソース 拡張子 説明 ツール PNG *.png 画像ファイル。256色以下のインデックスカラーのみ。 Susie Plugin to PNG for Win SMD *.smd,*.smz,*.smx サウンドファイル。着メロで使用。 smdEdif SMAF *.mmf サウンド・音声のファイル。
MA1・MA2・MA3の3つのバージョンがあり、
JavaアプリではMA2とMA3を使用。wav2mld SMAF/Phrase *.spf 複数同時再生ができるサウンド・音声ファイル。 公式ツール
HTTPでアクセス可能なデータサイズ
転送元 Vアプリ バイナリ JAR 画像・音楽 50Kアプリ コンテンツアグリゲータのサーバ 50K × 50K × 自分のWEBサーバ × 6K 6K 6K 100Kアプリ コンテンツアグリゲータのサーバ 80K × 80K × 自分のWEBサーバ × 80K 80K 12K 256Kアプリ コンテンツアグリゲータのサーバ 80K × 80K × 自分のWEBサーバ × 200K 200K 12K 256Kアプリ Ver.2 コンテンツアグリゲータのサーバ 80K × 80K × 自分のWEBサーバ × 200K 200K 12K
HTTPでアクセス可能なMIMEタイプ
MIMEタイプさえ指定しておけば拡張子の制限は特になさそう
タイプ 拡張子 MIMEタイプ 50Kアプリ 任意 text/vnd.sun.j2me.app-descriptor
データ自体の先頭に"APDATA"のバイナリ入力が必要100Kアプリ 任意 text/vnd.sun.j2me.app-descriptor 255Kアプリ 任意 application/Java-archive 任意 application/Java 255Kアプリ Ver.2 任意 application/Java-archive 任意 application/Java
| ゲームボーイアドバンスのJavaアプリ |
ゲームボーイアドバンスでは、JEMBlazerというJVMの載ったカートリッジを使うことで、MIDP2.0アプリが実行することができます。
サイズ
ファイル種別 ファイルサイズ BRLファイル MMCが許す限り無制限 レコードストア なし
ゲームボーイアドバンスの端末情報
※フォントサイズは日本語表示ができないので、英数字のサイズです
端末情報 フォント 端末名 画面サイズ SMALL MEDIUM LARGE ゲームボーイアドバンス 240x141 7x13 7x13 7x13 ゲームボーイアドバンスSP 240x141 7x13 7x13 7x13 エミュレータ 240x139 5x12 6x16 7x20
MMC(マルチメディアカード)カード
*MMCカードのフォーマットはFATのみ対応でFAT32は使えません
ディレクトリ 用途 ルート デスクトップディスプレイ /Games MIDletゲームのバイナリファイル /Music 音楽ファイル(MP3) /Tools その他のMIDletのバイナリファイル
キーアサイン
GBAのボタン MIDPのキー定数 スタートボタン FIRE Aボタン GAME_A Bボタン GAME_B Lボタン GAME_D Rボタン GAME_C 上ボタン UP 下ボタン DOWN 左ボタン LEFT 右ボタン RIGHT セレクトボタン+Aボタン SOFT2 セレクトボタン+Bボタン SOFT1
MIDP2.0仕様との相違
- drawString()で英数字は表示できるが、日本語は表示できない
- レコードストアへの保存ができない
- プログラムからサウンドを再生させることができない
- 数字キー(1〜9、*、#)は使えない
- 通信機能(HTTP、ソケット、データグラム等)は使えない
- セキュリティ機能(PKI、証明書等)は使えない
- 複数のMIDletを1つのJARファイルに入れることができない
- OTAプロビジョニングは使えない
- デスクトップで再生したmp3を聞くにはヘッドホン端子が必要。GBAのスピーカーからは鳴らない
- 実行ファイルと同じ名前のpngファイルをMMCにコピーすれば、デスクトップ上のアイコンになる
| SizeUpdate |
JARファイルのサイズをJADファイルのJADファイルのMIDlet-Jar-Sizeに記述するプログラム。
ダウンロード
コマンドの書式は次の通り。C:\workディレクトリにSizeUpdate.classを置き、
java -classpath <SizeUpdate.classを置いたディレクトリ> SizeUpdate <jadファイル名>
HelloWorld.jadのMIDlet-Jar-Sizeの値を更新するコマンドは次の通り。
java -classpath C:\work SizeUpdate HelloWorld.jad
| 関連記事・書籍 |
そらみのJ2MEゲームプログラミング
KVMゲームプログラミング
- 第3回 携帯電話で動く格闘ゲームを作る
- 第4回 携帯電話で動く通信対戦パズルゲームを作る
- 第5回 携帯電話で動くアドベンチャーゲームを作る
- 第9回 Palmで動くジャンプゲームを作る
- 第10回 auで動くシューティングゲームを作る
- 第12回 J-PHONEで動くスキーゲームを作る
- 第13回 J-PHONEで動く3D待ち受けアプリを作る
書籍
| サンプルプログラム |
MIDP EZアプリ Vアプリ