┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃.&&&& **** %%%%.  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の例 リトル・アイランド
リトル・アイランド
503iシリーズ用
アクションゲーム

DownLoad

 携帯電話からこのhtmlを見ると,1 を押すとダンロードが始まります。ダンロード が済むと,実行させるかどうかを聞いてきます。また,一度ダウンロードしたも のは,接続を切って,後で動作させることもできます。 ------------------------------------------------------------------------ 仮テスト  i-JADE等のエミュレータでテスト  i-JADEを利用してテストします。jworkフォルダ内に ijade.batとして,以下の ように用意しておくことを勧めます。  java -jar c:\i-jade\i-jade-f.jar  実行すると,パソコン上に携帯の画面とファイル選択画面がでます。ファイル 選択画面で,jam ファイルを選択し,実行を押します。  携帯の数字キーは,パソコンのテンキーに対応,携帯の方向キーは,パソコンの カーソルキーに対応,パソコンのマウスも利用可能です。  エミュレーションはスピード等は実機よりも早いです。音も再生されます。  パソコンの機種によっては,音等正常に出ない場合があります。 ------------------------------------------------------------------------ 公開 ウェブに上げる。 実テスト  実際の携帯でテスト  jar,jam, htm ファイルを同一フォルダにいれて,アップされると簡単です。 ======================================================================== 補足  環境設定 コンパイラ,エミュレータ等の準備(上記で終了済み)  作成   プログラム・データ作成 プログラム,音楽データ,画像データの作成  コンパイル javac (← JDK1.3コマンド, J2MEクラス,nttdocomoクラス)  検証 preverify (← J2MEコマンド)  圧縮 jar  (← JDK 1.3コマンド)  公開準備  .jam ファイル,htmファイルの作成  仮テスト  i-JADE等のエミュレータでテスト  公開 ウェブに上げる。  実テスト  実際の携帯でテスト  のうち,コンパイル・検証・圧縮・公開準備は自動化がしやすい仕事です。この 作業を自動化した開発支援ツールがいくつか無料で公開されています。  この説明のように,単純なレベルで流れを身につけてから,支援ツールを利用さ れることもお勧めします。 ------------------------------------------------------------------------ 次号の予定  制御文  感想は,斎藤まで,suehiro@he.mirai.ne.jp  広告等のお問い合わせ:*** ------------------------------------------------------------------------ 著作権について  このメールマガジンで公開しているプログラムソースは,著作権を当方スタッ フが所有しますが,商用を含めて,再利用,改変,発表を制限しません。  ただし,ゲームサンプルに関しては,公開等に制限があります。  本文に関しては,斎藤末広が著作権を所有します。再利用に関しては,承諾を 必要とします。 広告募集 http://www2.odn.ne.jp/~egu33/jmaga/java-maga.html