Chapter 12 MIDP(携帯電話)アプリケーションの作成

 MIDPとはMobile Information Device Profileの略で、携帯電話、デジタルカメラ、PalmやPocketPCなど
一部のPDA(Personal Digital Assistance)を含む携帯機器で動作するJava仕様です。
日本ではau(byKDDI)のオープンアプリ「以前はEZアプリ(Java)」や、SoftBankのJavaアプリなどの携帯電話で
採用されていることで有名です。

 このMIDPで定義されている「MIDlet」というアプリケーション形式に添うことで異なる携帯機器間で動作する
アプリケーションを作成することができます。(Apletに相当するためMIDletというらしい)

au(byKDDI)のオープンアプリ対応の携帯が2008年春から発売されましたので、au携帯向けのアプリケーションを
作成してみます。

auの携帯端末はEZアプリ(Java)からEZアプリ(BREW)そしてオープンアプリと携帯アプリケーションでも
ダウンロードできるアプリケーションが違います。特にEZアプリ(BREW)は開発環境やアップロードが閉ざされていて
誰でも作成、公開できる環境ではありません。

au(byKDDI)の携帯端末のオープンアプリプレイヤーはau(byKDDI)のホームページ 
http://www.au.kddi.com/ezfactory/tec/spec/openappli.html)
によると以下のようになっています。

CLDC1.1/MIDP2.0仕様で作成されたJava™アプレットが動作します。
Mobile Media API (JSR135)、Mobile 3D Graphics API for J2ME (JSR184) など、その他の拡張APIには対応していません。
オープンアプリを対応端末にダウンロードするには、JadファイルとJarファイルに2つのファイルが必要です
オープンアプリはサン・マイクロシステムズが提供するJ2ME Wireless Toolkit等で開発することが出来ます。

12.1 開発環境 エミュレーターのセットアップ

Eclipse Ver.3.3.2 にてJavaアプリケーションが開発できる環境に エミュレータ の 
Sun Java Wireless Toolkit 2.5.2 for CLDCをインストールします。
インストールプログラムは sun_java_wireless_toolkit-2_5_2-ml-windows.exe を 
http://java.sun.com/javame/downloads/ から ダウンロードして実行してインストールします。
Sun Java Wireless Toolkit 2.5.2 for CLDC はJava SE に依存していますので、Javaのインストールフォルダなどに
変更があった場合は、再インストールが必要です。


12.2 開発環境 EclipseMEプラグインのインストール

EclipseMEプラグインのインストールは、「ヘルプ(H) - ソフトウェアの更新(S) - 検索およびインストール(F)...」を
選択して「インストールする新規フィーチャーを検索(S)」にチェックを入れて「次へ」ボタンを押します。

「新規リモート・サイト(T)」ボタンを押して名前:「EclipseME update Site」 
URL:「http://www.eclipseme.org/updates/」を入力して「OK」ボタンを押します。
追加されたEclipseME update Siteにチェックを入れて「終了」ボタンを押します。

EclipseME update Site」のツリーを展開して「EclipseME 1.7.9」にチェックを入れ「次へ」ボタンを押します。

ライセンスの表示がされますので、「使用条件の条項に同意します(A)」にチェックを入れて、「次へ」ボタンを押します。
インストール先とフィーチャーが表示されますので「終了」ボタンを押します。
ダウンロードが完了したら「全てインストール」のボタンを押します。これでプラグインがインストールされます。

Eclipseを再起動します


12.3 Eclipse の設定 

 エミュレータとプラグインをインストールすると 「ウインドウ(W) ― 設定(P)」 に「J2ME」が追加されます。
 「J2ME ― デバイス管理」 を選択してインポートボタンを押します。
 デバイスのインポートダイアログにて「参照」ボタンを押してSun Java Wireless Toolkit 2.5.2 for CLDCを
 インストールしたディレクトリを指定します。
 「更新」ボタンを押すと検索が開始されデバイス欄にDefauktColorPhone、DefaultGrayPhone、MediaControlSkin、
 QwertyDeviceが表示されます。
 「Java − デバッグ」を選択して、通信 デバッガー・タイムアウト(ミリ秒)(T)を3000から15000に変更します。
 実行の中断のチェックを評価中にブレークポイントで中断(B)以外をチェックをはずします。


12.4 プログラムの作成

  はじめに、Javaプロジェクトを新規作成します。
  「ファイル(F)」->「新規(N)」->「その他(C)」を選択してJ2MEの「J2ME Midletスイート」を選択します。
  プロジェクト名(P)に”HelloWorld”と入力して「次へ(N)」ボタンを押します。
  デバイス グループ:  Sun Java(TM) Wireless Toolkit 2.5.2 for CLDC 
        装置:    DefaultColorPhone     を選択し「終了(E)」ボタンを押します。
  パッケージエクスプローラでHelloWorldプロジェクトを選択します。
  「ファイル(F)」->「新規(N)」->「その他(C)」を選択してJ2MEの「J2ME Midlet」を選択します。
  名前(M): HelloWorld と入力して終了(E)」ボタンを押します。
  
コンストラクタ HelloWorld を追加します。


HelloWorld.java


import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;

public class HelloWorld extends MIDlet {

    //コンストラクタ
 public HelloWorld() {
        Form form = new Form("Start MIDlet");
        form.append("Hello, World");
        Display.getDisplay(this).setCurrent(form);
 }   
     protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
  // TODO 自動生成されたメソッド・スタブ

 }

 protected void pauseApp() {
  // TODO 自動生成されたメソッド・スタブ

 }

 protected void startApp() throws MIDletStateChangeException {
  // TODO 自動生成されたメソッド・スタブ
 }

}

12.5 エミュレータでのデバッグと実行
 
「ファイル(F)」->「保存(S)」でソースを保存してからデバッグダイアログを開く(B)を選択します。
 Wireless Toolkit Emulatorを右クリックして「新規(W)を選択します。
 名前(N)にHelloWorld と入力して 実行可能 Midletを選択して検索ボタンを押します。
 HelloWorldを選択して「OK」ボタンを押します。
 「デバッグ」ボタンを押すとエミュレータが起動して、Hello、World と 表示します。


12.6 オープンアプリの作成
 エミュレータにてデバッグと実行ができてもオープンアプリの実行ファイルはまだ作成されていません。
 パッケージエクスプローラでHelloWorldプロジェクトを選択して HelloWorld,jadをダブルクリックします。

Jadファイルはオープンアプリの内容や振る舞いなどの情報がテキスト表現で記載されたファイルです。Jadは、
Java Application Descriptorの略です。
auのオープンアプリプレイヤーで対応している項目は以下の通りです (必須項目がない場合、インストールエラーとなります)。


属性名

設定値  
内容
MIDlet-Name

MyGame Midlet Suite

表記名を記載します。3〜32バイトの文字列である必要があります (注1)
MIDlet-Version
 1.0.0
オープンアプリのバージョンを記載します。数値3桁でn.n.nの書式である必要があります。
MIDlet-Vendor
 Midlet Suite Vendor
開発元を記載します。3〜32バイトの文字列である必要があります。
MIDlet-Jar-URL
  http://ホームページアドレス/HelloWorld.jar
Jarファイルのダウンロード先URLを記載します。5〜256バイトの文字列である必要があります。
MIDlet-Jar-Size
 952
Jarファイルのサイズをバイト単位で記載します。実際のサイズと一致している必要があります。
MIDlet-Icon
 
 
オープンアプリのアイコンを指定します。アイコンを指定する事ができます (注1)
MIDlet-Description
 
 
オープンアプリの説明を記載できますが、利用されません。1024バイト以内の文字列である必要があります。
MIDlet-Data-Size
 0
必要とするRMSのサイズを記載します。記載しない場合は32キロバイトとみなされます。
MIDlet-Info-URL
 
 
オープンアプリの情報が得られるサイトのURLを記載します。記載があった場合、オープンアプリ詳細の画面からサイトへ移動する事が可能になります。256バイト以下の文字列である必要があります。
MIDlet-1
 HelloWorld,,HelloWorld
Jarファイル内のオープンアプリを指定します。オープンアプリプレイヤーはひとつのJar内部に複数のオープンアプリを格納できません。必ずひとつである必要があります。アイコンを指定する事ができます (注1)

パッケージエクスプローラにてプロジェクトを選択し、J2ME − パッケージの作成を選択します。
 deployedのフォルダが追加せれてjadとjarのフィルが作成されます。
 この2つのファイルとダウンロードリンクファイル


download.html
<html><body>
オープンアプリゲーム</br>
以下のリンクをクリックしてください。
<a href="device:jam?http://ホームページアドレス/HelloWorld.jad">ダウンロード</a>
</body></html>

をサーバーにアップロードし、携帯からダウンロード用リンクをクリックすればダウンロードが開始されます。

12.6 携帯用ゲームのオープンアプリ作成

 解説しているサイトがあるのでこちらを参照してください。
 
 アプリ☆ゲットのアプリ開発講座
 http://appget.com/contest/au2007/lecture/lesson1.html
 
 @ITの携帯アプリを作って学ぶJava文法の基礎
 http://www.atmarkit.co.jp/fjava/index/index_keitaigram.html


戻る