▼MIDP2.0メモ▼
MIDP2.0とは
MIDP 2.0とは
「MIDP(Mobile Information Device Profile) 2.0」は、ソフトバンクやウィルコムをはじめとする多くの携帯端末(ドコモは一部の端末、auは2007年春移行の端末から)で採用されているJavaのAPI仕様。
このページでは「MIDP 2.0」および「MIDP 1.0+ 256Kアプリ ver.2(現役なので)」の説明を記述します。「MIDP 1.0」の「Vアプリ」「EZアプリ(Java)」に関しては、「EZアプリ・Vアプリ機種依存情報」を参照。
S!アプリ独自仕様にかんしては「S!アプリメモ」へ。
情報源
共通 キャリア別
関連リンク ActionScript 2.0メモ←Flashでの開発方法
.Net Compact Framework 2.0メモ←Visual C#での開発方法
Windows Mobile 5.0 ネイティブアプリ開発メモ←Visual C++での開発方法
入門
MIDP2.0の対応端末
サイズ制限
※合計制限はJADファイル+JARファイル+レコードストアの制限
JARファイル レコードストア 合計制限 通信 au 300KB 32KB - 32KB ウィルコム 1024KB 512KB - ?KB ソフトバンク(3GC) 1024KB 512KB 1024KB ?KB ソフトバンク(256K) 200KB 200KB 256KB 50KB
au
・オープンアプリ対応端末
・SMAF対応携帯電話端末情報
画面サイズ
(幅x高さ)フォントサイズ
(幅x高さ)オーディオ形式 CLDC/MIDP その他 W53SA
W52CA
EXILMケータイ W53CA
ウォークマンケータイ W52S
W52P
W54T
W52H
W53T
W52SA240x268
240x29612x12,16x16,20x20 audio/x-wav
audio/x-tone-seq
audio/midi1.1/2.0 20077年夏モデルで
非対応はW52SHのみW51CA
W51H
W51SA
W51S
240x268
240x29612x12,16x16,20x20 audio/x-wav
audio/x-tone-seq
audio/midi1.1/2.0 -
ウィルコム
画面サイズ
(幅x高さ)フォントサイズ
(幅x高さ)オーディオ形式 CLDC/MIDP その他 WX320K 240x276 12x12,16x16,20x20 audio/midi 1.1/2.0 com.mascotcapsule Package
ソケット(TCP/UDP)WX321J 240x276 12x12,16x16,20x20 audio/midi 1.1/2.0 カメラ制御
GPS情報取得W-ZERO3[es](WS007SH)
W-ZERO3(WS004SH)
W-ZERO3(WS003SH)
640x376
480x53612x16 audio/x-wav
audio/x-tone-seq
audio/midi
application/x-smaf
audio/amr1.1/2.0 com.mascotcapsule Package
JPEG利用不可
WX310SA(WX310SA)
WX310J(WX310J)240x276 12x12,16x16,20x20 audio/midi 1.1/2.0 FileConnection Optional Package
ソフトバンク 3GC
・端末情報
・SMAF対応携帯電話端末情報
画面サイズ
(幅x高さ)フォントサイズ
(幅x高さ)CLDC/MIDP オーディオ形式 MEXA
(JSCL)その他 913SH ? ? 1.1/2.0 MA-7 MEXA - 912SH ? ? 1.1/2.0 MA-7 MEXA - 912T ? ? 1.1/2.0 MA-7 MEXA - 911SH 120x130
120x147
240x260
240x294
240x320
240x354
400x22412x12,12x12,20x20
12x12,20x20,20x201.1/2.0 MA-7 MEXA - 911T ? ? 1.1/2.0 MA-7 MEXA - 910SH 120x130
120x147
240x260
240x294
480x520
480x58812x12,12x12,20x20
12x12,20x20,20x20
20x20,40x40,40x401.1/2.0 MA-7 MEXA - 910T 120x130
120x145
240x260
240x29012x12,12x12,18x18
12x12,18x18,26x291.1/2.0 MA-7 MEXA - 905SH 120x130
120x147
240x260
240x294
240x320
240x354
400x22412x12,12x12,20x20
12x12,20x20,20x201.1/2.0 MA-7 MEXA - 904SH 120x130
120x147
240x260
240x294
480x520
480x58812x12,12x12,20x20
12x12,20x20,20x201.1/2.0 MA-7 MEXA - 902SH
903SH120x130
120x147
240x260
240x29412x12,12x12,20x19
12x12,20x19,20x191.1/2.0 MA-5 1.2.2 - 902T
903T
904T120x130
120x146
240x261
240x29312x12,12x12,20x26
12x12,20x26,26x291.1/2.0 MA-5 1.2.2 - 816SH
815SH
812SHs? ? 1.1/2.0 ? MEXA - 815T
814T? ? 1.1/2.0 ? MEXA - 813SH
812SH? ? 1.1/2.0 MA-3 MEXA - 812T ? ? 1.1/2.0 MA-7 MEXA - 811SH
810SH120x130
120x147
240x260
240x294
480x520
480x58812x12,12x12,20x20
12x12,20x20,20x20
20x20,40x40,40x401.1/2.0 MA-7 MEXA - 813T
811T
810T120x130
120x145
240x260
240x29012x12,12x12,18x18
12x12,18x18,26x291.1/2.0 MA-7 MEXA - 810P ? ? 1.1/2.0 ? MEXA - 805SC ? ? ? ? ? - 804SH 120x130
120x147
240x260
256x31012x12,12x12,20x20
12x12,20x20,20x201.1/2.0 MA-7 1.3.2 - 804SS 120x130
120x145
240x260
240x29012x12,12x12,20x20
12x12,20x20,28x281.1/2.0 MA-5 MEXA Core - 804N 120x130
120x145
240x260
240x29012x12,12x12,21x21
12x12,21x21,24x241.1/2.0 MA-5 MEXA Core - 803T 120x130
120x146
240x261
240x29312x12,12x12,20x26
12x12,20x26,20x261.1/2.0 MA-5 1.2.2 - 802SH 120x130
120x147
240x260
240x29412x12,12x12,20x19
12x12,20x19,20x191.1/2.0 MA-5 1.2.2 - 802N 120x130
240x295
240x269
240x29512x12,12x12,20x20
12x12,20x20,20x201.1/2.0 MA-5 1.2.2 - 802SE 176x182
176x22014x15,16x18,16x18 1.1/2.0 MA-3 - - 709SC
707SC
706SC
705SC
120x130
120x145
240x260
240x29012x12,12x12,20x20
12x12,20x20,28x281.1/2.0 MA-5 MEXA - 706P
705P120x130
120x145
240x260
240x29012x12,12x12,20x20
12x12,20x20,24x241.1/2.0 MA-3 MEXA Core - 705N 120x130
120x130
240x260
240x29012x12,12x12,20x21
12x12,20x21,24x241.1/2.0 MA-5 MEXA Core - 705NK 240x234
240x32018x22,24x30,27x33 1.1/2.0 audio/midi - - 705SH 120x130
120x146
240x261
240x29312x12,12x12,26x29
12x12,20x26,26x291.1/2.0 MA-3 MEXA - 705T 120x130
120x147
240x260
240x29412x12,12x12,20x20
12x12,20x20,20x201.1/2.0 MA-5 1.2.2 - 703SHf
703SH120x130
120x147
240x260
240x29412x12,12x12,20x20
12x12,20x20,20x201.1/2.0 MA-3 1.2.2 - 703N 120x130
240x295
240x269
240x29512x12,12x12,20x20
12x12,20x20,20x201.1/2.0 MA-5 1.2.2 - 702NKII
702NK176x144
176x20812x15,16x20,16x20 1.1/2.0 audio/midi - Nokia UI API
Bluetooth API(OBEX以外)
FileConnection and PIM API702sMO
702MO176x182
176x20412x13,17x18,19x20 1.1/2.0 audio/midi - -
ソフトバンク P型
画面サイズ
(幅x高さ)フォントサイズ
(幅x高さ)CLDC/MIDP JSCL その他 V604T
V603T120x130
240x26012x12,12x12,20x26
12x12,20x26,26x291.0/1.0 1.3.2 - V604SH
V603SH120x130
240x26012x12,12x12,19x20
12x12,19x20,19x201.0/1.0 1.3.2 - V602T
V601T120x130
240x26012x12,12x12,20x26
12x12,20x26,26x291.0/1.0 1.2.2 - V602SH 120x130
240x26012x12,12x12,20x19
12x12,20x19,20x191.0/1.0 1.2.2 - V502T
V501T120x130
240x26012x12,12x12,20x26
12x12,20x26,26x291.0/1.0 1.3.2 - V501SH 120x130
240x26012x12,12x12,19x20
12x12,19x20,19x201.0/1.0 1.3.2 -
ソフトバンク スマートフォン
画面サイズ
(幅x高さ)フォントサイズ
(幅x高さ)CLDC/MIDP MMAPI/WMA/M3G その他 X02HT ? ? 1.1/2.0 ? - X01T ? ? 1.1/2.0 ? - X01HT ? ? 1.1/2.0 ? -
ドコモ スマートフォン
画面サイズ
(幅x高さ)フォントサイズ
(幅x高さ)CLDC/MIDP MMAPI/WMA/M3G その他 hTc Z ? ? 1.1/2.0 ? - M1000 208x320
208x256
208x198
208x18014x17,14x17,14x17 1.0/2.0 1.1/1.0/- Bluetooth API(OBEX以外)
イーアクセス スマートフォン
画面サイズ
(幅x高さ)フォントサイズ
(幅x高さ)CLDC/MIDP MMAPI/WMA/M3G その他 EM・ONE ? ? 1.1/2.0 ? -
開発ツール
J2SE Develoment Kit 5.0(JDK 5.0)
パソコン上で動くJavaアプリを作るための開発キット。サン・マイクロシステムズのサイトで入手できる。「J2ME Wireless Toolkit」を実行するのに必要なので、それより先にインストールする。
J2ME Wireless Toolkit 2.2(日本語版)
MIDP2.0のアプリを作るための開発キット。サン・マイクロシステムズのサイトで入手できる。APIリファレンスはdocsフォルダにある。
エミュレータのスキン
「J2ME Wireless Toolkit」のエミュレータのスキンの画面サイズとフォント幅を各種端末用に調整したものです。解凍してフォルダごと「C:\WTK22\wtklib\devices」にコピーすれば使えます。W-ZERO3はQwertyDeviceを流用してるので、右のボタンがソフトキー1、menuボタンがソフトキー2となります。
ProGuard
ProGuardはObfuscator(難読化ツール)のひとつ。Obfuscatorとは,Javaクラスファイルの逆コンパイルしてソースコードを盗み見ることを防ぐツール。その結果としてクラスファイルのサイズが小さくなるという利点もある。これを指定することにより、ビルド時に自動的にJARファイルの最適化を行われる。
サイトからProGuardをダウンロードし、libフォルダの「proguard.jar」をJ2ME Wireless Toolkitのbinフォルダにコピーすればインストール完了。KToolbarのメニュー「プロジェクト→パッケージ→難読化パッケージを作成」で最適化されたJARファイルが生成される。
その他の開発ツール
- S!アプリ開発ツール
S!アプリのオプションAPIの利用に必要な開発ツール。- EclipseME
Eclipse上でMIDletを作成するためのEclipseプラグイン。- FOMA M1000 SDK
M1000のエミュレータ
アプリのインストール方法
au端末へのアプリのインストール方法
アプリをダウンロードするにはサーバのMIMEタイプを次のように設定する必要がある。
jar application/Java-archive jad text/vnd.sun.j2me.app-descriptor
test.jadをダウンロードするためのHTMLの書式は次の通り。
端末からダウンロード用HTMLへアクセスし、リンクをクリックすることでダウンロードできる。
download.html <a href="device:jam?http://npaka.net/test.jad">アプリをダウンロード</a>
ウィルコム端末へのアプリのインストール方法
アプリをダウンロードするにはサーバのMIMEタイプを次のように設定する必要がある。
jar application/java-archive jad text/vnd.sun.j2me.app-descriptor
test.jadをダウンロードするためのHTMLの書式は次の通り。
端末からダウンロード用HTMLへアクセスし、リンクをクリックすることでダウンロードできる。
download.html <a href="test.jad">アプリをダウンロード</a>
また、SDカード経由でJADファイルを選択することにより、インストールすることも可能。
ソフトバンク端末へのアプリのインストール方法
ソフトバンク端末ではアプリがダウンロードできるサーバを「コンテンツアグリゲータ」のサーバに限定している。「コンテンツアグリゲータ」にユーザー登録することにより、サーバを利用できるようになる。アプリを一般公開するには、コンテンツアグリゲータの審査(数日かかる)を通す必要がある。コンテンツアグリゲータは次の2つ。
702NKへのアプリのインストール方法
- JARファイルをMMCカードのOtherフォルダ等にコピー
- MMCカードを702NKに挿し、「メニュー→オーガナイザー→ファイル」を選択し、「ファイルマネージャ」を起動
- MMCカードを選択し、Otherフォルダにコピーした時は「その他」を選択
- 一覧に先ほどコピーしたJARファイルが表示されるので選択
- 「信頼できないMIDletだが良いか?」を聞かれるので「はい」を選択
M1000へのアプリのインストール方法
- デスクトップスイートをパソコンにインストール
- 通信設定ファイル(ドライバ)をパソコンにインストール
- USBケーブルでパソコンとM1000を接続する
- M1000側で「アプリケーションランチャー→コントロールパネル→接続→DesktopSuite」を開き、接続方法として「USB」選択
- M1000側で「アプリケーションランチャー→Desktop Suite」を選択し、「接続」ボタン押下
- PC側でデスクトップスイートを起動し、「インストール」ボタン押下
- 「同意します」「インストール」を選択後、ファイルダイアログで「HelloWorld.jad」または「HelloWorld.jar」を選択
- 「インストールするか?」「信頼できないMIDletだが良いか?」を聞かれるので「はい」を選択
コンフィギュレーション・プロファイル・オプションAPI
コンフィギュレーション
JSR 名前 30 Connected, Limited Device Configuration(CLDC) 1.0 カーナビ、セットトップ・ボックスなど
中程度の処理能力を持つ端末を対象としているコンフィギュレーション139 Connected, Limited Device Configuration(CLDC) 1.1 36 Connected Device Configuration(CDC) 1.0.1 PDAや携帯電話など
処理能力やメモリに制限のある端末向けのコンフィギュレーション218 Connected Device Configuration(CDC) 1.1
CLDCのプロファイル
JSR 名前 説明 37 Mobile Information Device Profile(MIDP) 1.0 携帯電話を対象としているプロファイル 118 Mobile Information Device Profile(MIDP) 2.0 - DoJa ドコモの携帯電話を対象としているプロファイル
CDCのプロファイル
JSR 名前 説明 46 Foundation Profile(FP) 1.0 CDCに含まれなかったJ2SEの基本的なAPIを補うプロファイル 219 Foundation Profile(FP) 1.1 62 Personal Profile(PP) 1.0 グラフィックス関連の機能を利用するためのプロファイル 129 Personal Basis Profile(PBP) 1.0 Personal Profileのサブセット 217 Personal Basis Profile(PBP) 1.1
オプションAPI
JSR 名前 含まれているAPI 説明 120 Wireless Messaging API (WMA) 1.0 - SMS(ショートメッセージサービス)などの
メッセージを送受信する機能を提供205 Wireless Messaging API (WMA) 2.0 82 Java APIs for Bluetooth Java API for Bluetooth
Java API for OBEXBluetoothによる通信機能を提供 75 PDA Optional Package for J2ME FileConnection Optional Package
PIM Optional Package端末に保存されているファイルや、アドレス帳などの
アドレス帳などのデータにアクセスする機能を提供184 Mobile 3D Graphics(M3G) - 3Dグラフィックスの描画機能を提供 135 Mobile Media API(MMAPI) 1.1 - 音声やビデオ、マルチメディア機能を提供 179 Location API for J2ME - 位置情報に関する機能を提供 172 J2ME Web Service APIs - XMLパーサ(SAX)、JAX-RPC Subset、スタブ生成ツール
の機能を提供66 RMI Optional Package - リモートメソッドの呼び出し機能を提供
メーカー独自のオプションAPI
JSR 名前 含まれているAPI 説明 - J-PHONE Specific Class Library(JSCL) J-PHONEグループ共通仕様として規定されたオプションAPI - Vodafone Specific Class Library(VSCL)/MEXA Additional APIs
Bar Code Recognition API
SVG APIボーダフォングループ共通仕様として規定されたオプションAPI
MEXA等名前に変わりパッケージや基本とオプションの区分を
再構成したが機能的には同じ。- Nokia UI API ノキアグループ共通仕様として規定されたオプションAPI
サンプルプログラム
MIDP1.0MIDP2.0 - キャンバス
- HelloWorld
- 画面サイズとフォントサイズを表示する
- 図形を描画する
- イメージを描画する
- キーイベントを処理する
- リソースの読み込み
- レコードストアの読み書き
- HTTP通信を行う
- ダイアログを利用する
- iアプリをS!アプリ・オープンアプリに移植する
MIDP2.0 - フォーム MEXA/JSCL PDA Optional Package for J2ME M3G その他
- ビープ音を鳴らす
- サウンドファイル(mid/wav)を同時再生する
- イメージを反転する
- 半透明イメージの描画
- 端末制御を行う
- 共有レコードストアの読み書き
- ダブルバッファリングを行う
- キー状態を処理する
- スプライトを使用する