┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃.&&&& **** %%%%. JavaScript&Javaで目指そう!基本情報技術者試験 ┃ ┃&&&&&&******%%%%%% 執筆&編集 斎藤末広 suehiro@he.mirai.ne.jp ┃ ┃'&┃&''*┃*''%┃%' 発行 江口昌宏 *** ┃ ┗━┻━━┻━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 広告募集:http://www2.odn.ne.jp/~egu33/jmaga/java-maga.html ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ 第4号 2001/07/08 iAPPLI(iアプリ)開発の仕方 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ プログラムを作成する上での注意事項: Windows とIE を前提としています。 「拡張子を表示する」に設定してください。 今回のJマガの内容は,難しいです。バッチファイルをたくさん掲載しました ので,それを利用して,iアプリに挑戦して見てください。 前号で,今回は,For 文と予告しましたが,次号に変更します。申しわけあり ませんでした。 ------------------------------------------------------------------------ i-アプリ? NTT DOCOMO の503iシリーズでJavaが動作するのは,みなさんのご存じの通り です。 503iシリーズで動作する Java のプログラムを iアプリといいます。 今回のサンプルは,以下の圧縮ファイルを解凍して,c:\jworkに入れると実行 できます。 http://www.mirai.ne.jp/~suehiro/java/jmaga/jwork-smp.lzh このサンプルのゲームの公開,ゲームで使用しているキャラクタ,音の再利用は できません。各自の学習のために利用してください。なお,このゲームのソース コードは部分的に再利用することができます。 このゲームは,LITTLE CLAPにおいて公開されている,リトル・アイランド です。 LITTLE CLAP: http://www5b.biglobe.ne.jp/~clap/index.html 対応する携帯の機種は上記サイトで確認してください。 ソースを公開にあたり,作成者(summerclap氏)より次のようなコメントが寄せ られています。 コメント 実際に公開されているゲームのソースは刺激があっていいかもしれませんが、 このソースはあまりにもいいかげんです。今パッと見ただけでも、宣言しただけ で使われていない変数が2つもみつかりました。あと、不採用になったコードが コメント扱いでかなり残っています。 それと、このバージョンはD503iでは起動することすらできません。 画像ファイルやマップデータなどは、最終的にjar化するoutputフォルダの中に だけ必要になります。ソースと同じフォルダにある必要はありません。逆に、サ ンプル3は画像・音声ファイルがあった方がいいと思います(jar を 展開すると 取り出せますが)。 このソースが模範のように思えてしまうのが不安です。サンプルの方は多少気を 使っていますが。(summerclap) summerclap氏からは,最新版のソースも提供してもらいましたが,今回は旧バー ジョンのままです。コンパイルの実習としては,十分として判断してそのまま使 わせてもらいました。(斎藤コメント) ------------------------------------------------------------------------ iアプリの構造 iアプリは,ハードウェアを下にして階層にすると 5 iアプリ 4 DOCOMO iアプリクラスモジュール iアプリ専用クラス 3 携帯端末用 クラスモジュール 携帯汎用クラス 2 KVM(Java キロサイズ仮想マシーン) 1 携帯電話ハードウェア となります。下の階層から説明します。 1の携帯電話ハードウェアは,具体的には,F503とかN503を指します。お店で 購入します。 2のKVMは,Javaを動作させるOSの名前です。iアプリが動作する携帯電話であ れば,内蔵していることになります。 3の携帯端末用クラスモジュール は,サン・マイクロシステムズ社(以下サン と省略)が提供しています。J2ME CLDC といいます。 4 ドコモが提供しています。ここでの説明は,i-JADEを利用します。 5 我々が開発します。 ------------------------------------------------------------------------ iアプリ作成の流れ iアプリ作成の流れを説明します。 環境設定 コンパイラ,エミュレータ等の準備 作成 プログラム・データ作成 プログラム,音楽・画像データの作成 コンパイル javac (← JDK1.3コマンド, J2MEクラス,nttdocomoクラス) 検証 preverify (← J2MEコマンド) 圧縮 jar (← JDK 1.3コマンド) 公開準備 jam ファイル,htmlファイルの作成 仮テスト i-JADE等のエミュレータでテスト 公開 ウェブにアップロード 実テスト 実際の携帯でテスト 上の「iアプリの構造」で触れたように,開発に必要となるモジュールは,携帯 用端末汎用のクラスとDOCOMO iアプリ専用のクラスです。仮テストのためには, ゼンテック社が提供している,i-JADE Light版というエミュレータを使用します。 このエミュレータには,DOCOMO iアプリ専用のクラスが含まれています。 以下,順に解説します。 ------------------------------------------------------------------------ 環境設定 その1 ダンロード&インストール JDK1.3 のインストールしてある必要があります。インストールしてある,フォ ルダは,c:\jdk1.3 を前提とします。 J2MEとi-JADE をダンロードしてそれぞえインストールします。 ここでは,J2ME のダウンロードより説明します。J2ME のダウンロードは以下 のサイトより可能です。 http://java.sun.com/products/j2mewtoolkit/download.html このページの下の方にある,contine ボタンを押します。 そうすると,英語で契約情報が表示されます。ダウンロードしたければ, ACCEPT ボタンを押します。 ダウンロード画面になります。FTP download をお勧めします。ディスクトップ 等に保存してください。約5.5Mバイトです。 ダウンロードしたものをダブルクリックでインストールを開始します。省略値 のままで結構です。 インストールするときに,ウィルスチェック,ディスクユーティリティ(驚速) 等は無効にしておくこと C:\J2MEWTK にインストールされます。 i-JADE は,無料版と有料版があります。無料版はlight版を言われています。 以下のサイトよりダウンロードできます。 http://www.zentek.com/i-JADE/ja/download.html 上記URLのページの下の方に,携帯電話のシルエット画像があります。どの機種 のシルエットを選んでも結構です。機種の選択は,後で選択します。 契約画面がでます。下の方の「同意する」を選ばないとダウンロードできませ ん。 使用者の情報を入力するページになります。入力して,最後の「ご希望の製品」 で,機種で選択します。好きな機種を選ぶことができます。テストするときにそ の機種の画面になります。これからの説明を簡単にするために,F503を選択した という前提で解説します。 F503を選んで,OK ボタンを押します。デスクトップ等に保存してください。 約1.3Mバイトです。 ダウンロードしたものをダブルクリックしてインストールを開始します。省略 値のままで結構です。 c:\i-jade にインストールされます。 作業フォルダをc:\jworkですでに作業をしていた場合,JDK1.3.x インストール 先を,c:\jdk1.3 と仮定すると,現在, C:\J2mewtk ← 新規 C:\jwork C:\jdk1.3 C:\i-jade ← 新規 があるはずです。 ------------------------------------------------------------------------ 環境設定 その2 クラスモジュールの準備 標準的なインストールだと,検証時にエラーがでます。圧縮されているクラス モジュールを解凍しておく必要があります。 c:\j2mewtk に含まれるクラスの圧縮ファイルの解凍 c:\i-jade に含まれるクラスの圧縮ファイルの解凍 これからを解凍したものを,一つのフォルダにまとめる。 ここでは,まとめるフォルダを c:\jdk1.3\xk-tai とします。 以下のバッチファイル xk-tai-set-f.bat を動かします。 (注意 このクラスファイルを用意するバッチファイルは,エミュレーション する機種によって違います) rem J2ME CLDC, NTTDoCoMo iアプリクラス解凍 rem 一度だけ実行すればいいです。 rem i-JADE Light版のF503用 rem path c:\jdk1.3\bin c: cd \jdk1.3 md xk-tai cd xk-tai jar xvf c:\j2mewtk\lib\midpapi.zip rem 以下の c:\i-jade\i-jade-f.jar が機種依存 -f に注意 jar xvf c:\i-jade\i-jade-f.jar これで開発用のクラスファイルの準備ができました。 ------------------------------------------------------------------------ 作成 音楽データは,502シリーズでおなじみのiメロディの形式です。画像データは, gif が利用できます。色数など限定し,データサイズが小さく作成してください。 どのようなクラスが使用できるかは,別途,書籍等を参考にしてください。 ------------------------------------------------------------------------ コンパイル コンパイルする前に,path の設定が必要です。以下のバッチファイル kjstart.bat を実行すれば,path の設定ができます。これは,前の号までに利用 している,jstart.bat の代わりに使用します。 rem 携帯用開発環境を追加 set CLASSPATH=.;c:\jdk1.3\xk-tai path %path%;c:\jwork;c:\jdk1.3\bin;C:\J2MEWTK\bin doskey command コンパイル時は,「デバック情報を生成しない」とパラメータで指示します。 サイズを節約するためです。 例: javac -g:none ソース名.java ------------------------------------------------------------------------ 検証 通常,Javaは実行直前に,そのプログラムが正しく動作するかどうかのチェック をします。これを検証といいます。 携帯端末等の組み込みJavaの場合,検証を実行直前に行うと動作が遅くなるた め,事前に検証を済ませておきます。事前検証は,J2ME に含まれている, preverify というコマンドを利用します。 例 Island.java をコンパイルして,Island.class とISCanvas.classが作成され たとき,以下のコマンドで検証ができます。 preverify Island ISCanvas 検証が終わると,class ファイルがあったフォルダ内にサブフォルダ /output/ が自動的に生成され,そのなかに同名のクラスファイルができます。 ------------------------------------------------------------------------ 圧縮 検証が済んだクラスファイルとデータ等をまとめて圧縮してダンロードしやす くします。 使用した音楽データ,画像データ等を検証でできた /output/ フォルダ内にコ ピーをします。データが,*.gif, *.mld, *.dat であると仮定します。 例:/output/ フォルダに CD をして,圧縮フィアル名を Island.jar とする 場合 /output/フォルダ内で,以下のコマンドを実行します。 jar cMfv Island.jar *.class *.gif *.mld *.dat jar は,JDK1.3 に含まれるコマンドです。圧縮ファイルを作成します。 jar は,Java アーカイバ(書庫)の省略です。 ------------------------------------------------------------------------ 公開準備 jam ファイル,htmファイルの作成 iアプリを携帯電話からダウンロードするための htm ファイル等を作成します。 htm 内で .jam を指定,.jam 内で,*.jar を指定します。.jam ファイルは アプリケーション記述ファイル(ADF)と呼ばれます。 .htm .jam .jar 同一フォルダに入れておくと管理が簡単です。 jam ファイルの例 Islnad.jam AppName = リトル・アイランド PackageURL = Island.jar AppClass = Island AppSize = 9995 AppVer = 1.2 SPsize = 1004 LastModified = Tue, 08 May 2001 22:24:34 jam ファイルは,= の前後の空白を含めて正確にタイプする必要があります。 AppName は,携帯電話に表示される項目名となります。 AppSize は,検証済みのクラスのサイズです。バイト単位で正確に入れる必要 があります。 SPsize は,スクラッチの大きさです。こちらは必要となるメモリよりも多くて もいいです。 AppVer は目安です。LastModified は携帯電話がダウンロードするさいのバー ジョンチェックに使用します。 jar,jam ファイルが揃った段階で i-JADE エミュレータによる仮テストが可能 になります。 次に i-MODE で閲覧するためのhtmlを用意します。 htmlの例