1 / 22

BREW を学ぶ

BREW を学ぶ. Microsoft Visual Studio .NET 2003 を使って BREW アプリの作成手順を学ぶ. 情報工学科1組 石原 第4週目. "HelloWorld" プログラムを作る. 画面に "Hello World" と表示する簡単な BREW アプリを作成する。. BREW エミュレータで実行する BREW アプリケーションの実体は .dll ファイルです。これを "BREW モジュール " という。 BREW モジュールには、必ず MIF ファイルが必要で、

Download Presentation

BREW を学ぶ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BREWを学ぶ Microsoft Visual Studio .NET 2003を使って BREWアプリの作成手順を学ぶ 情報工学科1組 石原 第4週目

  2. "HelloWorld" プログラムを作る 画面に"Hello World"と表示する簡単なBREWアプリを作成する。 BREW エミュレータで実行する BREW アプリケーションの実体は .dll ファイルです。これを "BREW モジュール" という。 BREW モジュールには、必ず MIF ファイルが必要で、 HelloWorld.dll モジュールには HelloWorld.mif というファイルが 必要になる。 この二つは必ずペアで扱う。 MIF ファイルは BREW モジュール に関するメタ情報を記述するためのもの。

  3. BREW アプリケーションを開発に必要な作業 • 各 BREW アプレットのクラス ID の作成 • 各 BREW アプレットの振る舞いの実装 • BREW モジュールのメタ情報を記述した MIF ファイルの作成 • BREW モジュール (DLL) の作成

  4. MIF ファイルの作成 HelloWorld アプリケーションでは、HelloWorld.dll と いう BREW モジュールに、 “HelloWorld”という名前 の BREW アプレットを含めることにする。 HelloWorld アプレットのクラス ID は 0x1234にする。 これらの BREW モジュールの情報や、そこに含まれ ているアプレットの情報は、 MIF ファイルに格納する。 まず MIF ファイルの作成手順を見ていく。

  5. BREW MIF エディタ を起動。 • BREW モジュールに一つのアプレットを含める設定を行う。まず [アプレット] タブの [新規アプレット] ボタンを押す。

  6. [ClassID の生成] ダイアログが表示されるので、[名前] に “HelloWorld”と入力し、[ローカル] ラジオボタンを選択する。また [ClassID] に "1234" と入力。

  7. HelloWorld.bid というファイル名で保存。  このファイルに HelloWorld アプレットの  クラス ID が格納される。 • MIF エディタに戻り、[アプレット] タブの[ClassID]  から 0x00001234 を選択する。これは HelloWorld  アプレットを表すクラス ID 。 • アプレットの名前や種類、アイコンを設定する。 [名前] には “Hello World”と入力し、[アプレットの種類] では “ツール” を選択。 • HelloWorld.mif というファイル名で保存。

  8. *.bid ファイルの中身 • MIF ファイルを作成する途中で .bid ファイルを作成。このファイルは、 BREW アプレットのクラス ID を定義した C 言語のヘッダーファイルで、テキストエディタで開いてみると、次のようになっていることが分かる。 #define AEECLSID_HELLOWORLD 0x00001234 • この .bid ファイルは、後で BREW アプレットの実装を行うときに、ソースコードにインクルードすることになる。

  9. BREW プロジェクト(DLLファイル)の作成 • Microsoft Visual Studio .NET 2003 を起動 。 • メニューの [ファイル] - [新規作成] - [プロジェクト]を選択し、[Visual C++ プロジェクト] を選択

  10. ウィザードの [ステップ 1/2] では、BREWアプリケーションで使用する機能。以下のような機能がある。 • 今回は “Hello World”と表示するだけの単純なアプリケーションでいずれの機能も使用しないので、何も選択せずに [Finish] ボタンをクリック。

  11. BREW プロジェクトの内容 BREW アプリケーション ウィザードが生成した ファイルを調べてみる。 Visual C++ の左側の [FileView] タブを見ると、三つのファイルが プロジェクトに追加されている。 • AEEAppGen.c • AEEModGen.c • HelloWorld.c

  12. *AEEAppGen.c と AEEModGen.c  この二つのファイルは、 BREW アプリケーション ウィザードで  生成した複数の BREW プロジェクトから共有されるソース  コードなので、不用意に編集してはいけない。 [FileView] で HelloWorld.c をダブルクリックして、このファイルを開いてみる。

  13. HelloWorld.c // // ユーザーがアプレットを起動要求したときに、呼び出されます。 // 開発者は指定されたクラスIDのBREWアプレットを作成して返すことで、 // BREWアプレットを起動します。 // int AEEClsCreateInstance( AEECLSID ClsId, // クラスID IShell * pIShell, // シェル インターフェイス IModule * po, // モジュール インターフェイス void ** ppObj) // 作成したアプレットを返すポインタ { *ppObj = NULL; if (ClsId == AEECLSID_HELLOWORLD) { if(AEEApplet_New(sizeof(AEEApplet), ClsId, pIShell, po, (IApplet**)ppObj, (AEEHANDLER) HelloWorld_HandleEvent, NULL)) { return AEE_SUCCESS; } } return EFAILED; }

  14. // // HelloWorld アプレットのイベント ハンドラ // static boolean HelloWorld_HandleEvent( IApplet * pi, // アプレット構造体 AEEEvent eCode, // イベント コード uint16 wParam, // イベント パラメータ (16ビット) uint32 dwParam) // イベント パラメータ (32ビット) { switch (eCode) { case EVT_APP_START: // ここにコードを追加します。 HelloWorld_OnAppStart((AEEApplet*) pi); return TRUE; case EVT_APP_STOP: // ここにコードを追加します。 return TRUE; default: break; } return FALSE; }

  15. BREW ウィザードが生成したコードは、 AEEClsCreateInstance()と HelloWorld_HandleEvent() という二つの関数。 • AEEClsCreateInstance() は、ユーザーが BREW アプレットのアイコンを選択して起動したときに呼び出される関数。開発者はこの関数内で BREW アプレットのデータ構造体を作成して返す必要がある。 • HelloWorld_HandleEvent() は、ユーザーが携帯電話のキーを押したり、アプリを終了させたりなど、さまざまな操作を行ったときに呼び出される関数。

  16. BREW アプレットの構造 • BREW アプレットは、 “アプレット構造体” と “イベント ハンドラ” のペアで構成される。 • アプレット構造体とは、 BREW アプレットがデータを格納するための構造体で、そのアプレットでグローバルに使用する変数などを格納しておく。 BREW ウィザードが生成したコードでは、デフォルトで AEEApplet 構造体が使用されている。 • イベント ハンドラとは、BREW 実行環境からのさまざまな通知を受け取る関数で、ユーザーがキーを押したときなどに呼び出される。 BREW ウィザードが生成したコードでは、デフォルトで HelloWorld_HandleEvent() 関数が使用されている。

  17. 画面への描画 // // アプレットが開始したときに呼び出される。 // static void HelloWorld_OnAppStart(AEEApplet* app) { AECHAR text[] = {'H','e','l','l','o',' ','W','o', 'r', 'l', 'd', '\0'}; // 画面ビットマップに文字列を表示する IDISPLAY_DrawText(app->m_pIDisplay, AEE_FONT_BOLD, // 太字のフォント text, // 表示する文字列 -1, // -1 = 文字列をすべて表示する 0, // 無視される 0, // 無視される NULL, // クリッピングしない IDF_ALIGN_CENTER | IDF_ALIGN_MIDDLE); // 左右中央揃え、上下中央揃え // 更新された画面ビットマップを表示する IDISPLAY_Update (app->m_pIDisplay); }

  18. BREWエミュレータ用にコンパイルする すべてのファイルを確認。 Helloworld.bid と HelloWorld.mif は 他のファイルと同じ フォルダ内に入れておく。 コンパイルを行うには、 メニューから [ビルド] - [ソリューションのビルド] を選択。 ソースコードに誤りがなければ、正常にビルドが行われ、 アウトプット ウィンドウに次のようなメッセージが表示される。 HelloWorld.dll - エラー 0 警告 0 HelloWorld プロジェクト フォルダに、 HelloWorld.dll というファイルが作成される。

  19. BREW エミュレータで実行する BREW エミュレータで動作させるためには、 HelloWorld.dll ファイルと HelloWorld.mif ファイルが必要。 この二つのファイルを次のような場所にコピー。 • C:\Applet\HelloWorld.mif • C:\Applet\HelloWorld\HelloWorld.dll BREW エミュレータを起動。デフォルトでは BREW SDK の Examples フォルダにある BREW アプレットがエミュレータ画面 に表示されるので、エミュレータの読み取るフォルダを C:\Applet に変更する必要がある。 メニューから [ファイル] - [アプレットディレクトリの変更] を選択 し、 [フォルダの参照] ダイアログで C:\Applet フォルダを選択 して [OK] を押す。

  20. 最初のアイコンを選択した状態で画面に “Hello World”というタイトルが 表示されていれば、 BREW エミュレータが MIF ファイルを認識している 証拠。この段階ではアプリケーション本体である .dll は実行されていない。 タイトルの "Hello World" というテキストは、 MIF ファイルの [アプレット] タブの [名前] 項目に入力したものが表示される。 アイコンを選択した状態で Enter を押して、画面中央に太字で “Hello World”と表示されれば作成されたことになる。

  21. 今後の予定 BREWエミュレータの基本ツールを把握しておく。 また次回までに、BREW API の基本的な使い方 についてサンプルプログラムを使い、学んでいく。 また、参考書を見て知識を深め、次回以降の オリジナルのアプリを作成するための構想を立てる。

  22. 参考資料 株式会社 ソフィア・クレイドル HP http://www.s-cradle.com/developer/index.html#brew

More Related