ホーム > デベロッパ > BREW FAQ

BREW FAQ : エミュレータ

エミュレータ用にコンパイルするには ?

Visual C++ (以降、VC) を使用して BREW アプリをエミュレータ用にコンパイルするには、 BREW プログラミング入門 「"HelloWorld" プログラムを作ろう」を参照してください。


SophiaFramework では、 HelloWorld チュートリアル「エミュレータ上で動作させる」を参照してください。


また、Windows DLL が作成できるコンパイラであれば、必ずしも VC を使用する必要はありません。


参考 : " Visual Studio toolkit 2003の使用方法 "

      

デバイス コンフィギュレータとは ?

BREW デバイス コンフィギュレータとは、 エミュレータで使用するデバイスファイルの作成や編集をするためのエディタです。 このエディタを使用して、エミュレータの見た目やキーイベント、画面サイズ、文字コードを設定し、 独自のデバイス ファイルを作成します。


デバイス ファイルとは、エミュレータが携帯電話の動作をエミュレートするために使用するファイルです。 デバイス ファイルを編集することで、開発者はさまざまな携帯電話の動作をエミュレートでき、 品質テストを強化できます。


詳細は、『BREW デバイス コンフィギュレータ ガイド』を参照してください。

      

BREW 2.0 で開発した BREW アプリは、BREW 2.1や3.1 のエミュレータで動作しますか ?

動作します。古いバージョンの BREW SDK を使用して開発した BREW アプリは新しいバージョンのエミュレータでも動きます。

      

BREW SDK 英語版で開発した BREW アプリは、BREW SDK 日本語版のエミュレータで動作しますか ?

日本語を使用しないアプリであれば動作します。

      

エミュレータで BREW アプリを実行したいのですが、 .dll ファイルしか手元にありません。 このような場合、エミュレータで実行できますか ?

.mif ファイルがなければ BREW アプリは実行できません。 しかし、そのアプリで使用しているクラス ID が分かる場合は、 ユーザー自身が「MIF エディタ」を使用して .mif ファイルを作成できます。

      

エミュレータで TCP サーバーを使用する方法を教えてください。

BREW SDK 3.1 のエミュレータで DevicePack1.dpk というデバイス パックを選択すると、 [Device Details] タブの Sever Sockets が 1 となって TCP サーバーが使用できます。

      

「メモリ容量を節約するためにこのアプリケーションはアンロードされました。 新しいバージョンをダウンロードしてください。」というエラーメッセージがエミュレータに表示されました。 再度、エミュレータをダウンロードする必要があるのですか ?

エミュレータをダウンロードする必要はありません。 このエラー メッセージは、アプリのディレクトリ構成が正しくない場合に表示されます。
以下の点に注意して、アプリのディレクトリ構成を修正してください。

  • アプリのサブディレクトリが MIF ファイルと同じディレクトリ内にある。
  • アプリのサブディレクトリと MIF ファイルが同じ名前である。
  • アプリのサブディレクトリ内にアプリのモジュール (DLL ファイル) が存在する。
  • MIF ファイルとアプリのモジュールが同じ名前である。

エミュレータが表示するメッセージの詳細は、 『BREW API リファレンス』の 118 ページ「エミュレータのメッセージ」を参照してください。

      

デバイス パックとは ?

デバイス パックとは、BREW SDK 3.1 のエミュレータ用に拡張されたデバイス ファイルのことです。 BREW SDK 3.1 には、デバイスコンフィギュレータのようなデバイス パックを作成するツールがありません。 デバイス パックの作成は端末メーカーが行っており、最新のデバイス パックは BREW ディベロッパー エクストラネットから入手できます。
BREW ディベロッパー エクストラネットとは、BREW 認定デベロッパー専用の Web サイトです。 この Web サイト上では、一般の BREW 開発者に公開されていないサンプルや情報、 BREW テスト・商用化ユーティリティなどの開発ツールが公開されています。

      

I3D Sample を日本語版の BREW エミュレータ version 2.1 で動作させるには、何か特別な設定が必要ですか ?

I3D Sample は、 日本語版の BREW エミュレータ version 2.1 では動作しませんので、 英語版の BREW エミュレータ version 2.1 (Patch 1 適用済み) を使用してください。
ただし、デフォルトのデバイスファイルでは動作しませんので、 以下の手順を参考にデバイスファイルの内容を変更してから実行してください。

  1. Windows の [スタート] メニューから、デバイス コンフィギュレータを起動してください。
  2. デバイス コンフィギュレータのメニューから [File] - [Open] を選択し、Sharp_Z-800.qsc を開きます。
  3. ディスプレイの Color Depth (色深度) の項目を 8 bpp から 16 bpp に変更します。
  4. メニューから [File] - [Save As] を選択し、新しいファイルを作成します。 (ここでは、ファイル名を "MySharp_Z-800.qsc" とします。)
  5. Windows の [スタート] メニューから、英語版の BREW エミュレータ version 2.1 を起動してください。
  6. エミュレータのメニューから [File] - [Load Device] を選択し、MySharp_Z-800.qsc を開きます。
  7. I3D Sample (TutorI3D) を実行してください。
      

BREW SDK3.1 付属のシミュレータで、リムーバブルディスク (miniSD や MMC) を使用したファイル アクセスをシミュレートできますか ?

リムーバブルディスクを使用したファイル アクセスは、 以下の手順でシミュレートできます。

  1. Windows の [スタート] メニューから、 BREW MIF エディタ ver 3.0 を起動します。
  2. [依存ファイル] タブを選択し、外部クラスモジュールとして AEECLSID_CARD0_ACCESS を追加してください。 外部クラスモジュールの追加方法は、 『BREW SDK 3.0 ユーザードキュメンテーション』の「外部依存クラスの追加」を参照してください。
  3. Windows の [スタート] メニューから、 BREW シミュレータ ver 3.0 を起動します。
  4. [プロパティ] タブを選択し、[MMC1 ディレクトリ] を設定します。 ここで設定したディレクトリがリムーバブルディスクのディレクトリになります。
  5. リムーバブルディスクにアクセスするために、 ファイル名の先頭に AEEFS_CARD0_DIR を設定します。 詳細は、『BREW 3.0 API リファレンス』の「IFileMgrインタフェース」を参照してください。
  6. IFILEMGR_OpenFile を使用し、リムーバブルディスク上のファイルをオープンします。

以下に、リムーバブルディスク上のテキスト ファイルから、 データを読み込むサンプルコードを記載します。

IFileMgr*  fileMgr;
IFile*     file;
char       fileName[32] = {0};
char       buffer[128]  = {0};
int        size = 0;

if (SUCCESS == 
ISHELL_CreateInstance(pMe->m_pIShell, AEECLSID_FILEMGR, (void**)&fileMgr)) {

 // リムーバブルディスクにアクセスするため、
 // ファイル名の先頭に AEEFS_CARD0_DIR を設定します。
 STRCAT(fileName, AEEFS_CARD0_DIR);
 STRCAT(fileName, "test.txt");

 // リムーバブルディスク上のテキスト ファイルをオープンします。
 file = IFILEMGR_OpenFile(fileMgr, fileName, _OFM_READ);

 if (file != NULL) {
  // リムーバブルディスクからファイルを読み込みます。
  size = IFILE_Read(file, buffer, sizeof(buffer) - sizeof(char));

  if (size > 0) {
   // リムーバブルディスクから読み込んだテキスト ファイルの内容を
   // ログに表示します。
   DBGPRINTF("*** read from file : %s ***", buffer);
  }

  // IFile インターフェイスを解放します。
  IFILE_Release(file);
}

 // IFileMgr インターフェイスを解放します。
 IFILEMGR_Release(fileMgr);
}
      

エミュレータのファイルシステムの制限を拡張するには?

エミュレータが使用しているデバイスファイルによっては、 ファイルシステムの制限が厳しく、 デバッグ用の .dll ファイルでは、 サイズ制限を超えてしまう場合があります。
このような場合、デバイスファイルを編集することで、 ファイルシステムの使用制限を拡張することができます。 以下にその手順を示します。

  1. BREW SDK に付属の [BREWデバイスコンフィギュレータ] を起動し、 メニューから [ファイル]-[開く] を選択し、 ご使用のデバイス ファイルを開きます。
  2. コンフィギュレータの右ペインの上部にある [詳細] ボタンを押し、[デバイス属性] ダイアログを表示します。
  3. ダイアログの [ファイルシステム] タブにある [書き込みできる最大容量] ボックスの値を変更して、 [OK] ボタンを押します。
  4. メニューから [ファイル]-[保存] を選択して、 デバイス ファイルを保存します。
  5. BREW エミュレータを起動し、 メニューの [ファイル]-[デバイスの読み込み] を選択し、 先ほど編集したデバイス ファイルを開きます。
  6. この状態で BREW アプレットを実行しますと、 指定した制限サイズまでファイルシステムを利用できます。
 
      

端末にアプリをインストールして実行すると、「エラーが発生しました(004) ※クリアキーを...」というメッセージが表示され、アプリが起動できません。

「エラーが発生しました(004) ※クリアキーを...」と、いうエラーメッセージは、アプリのフォルダ内にアプリ用の .sig ファイルが存在しない場合に、表示されるメッセージです。実機上のアプリのフォルダを確認し、.sig ファイルが存在するかを確認してください。参考として、実機上でアプリ (app) を動作させる場合のフォルダ構成を以下に記載します。

root/
  app.mif・・・モジュール情報ファイル
	
  app/・・・・アプレットフォルダ
    app.mod	・・・実機実行形式
    app.sig ・・・SIGファイル(実機でアプリを実装する場合に必要となります)
      

エミュレータで日本語を入力することはできますか?

デバイスファイルを切り替えることで、エミュレータで日本語の入力ができます。デバイスファイルは、BREW SDK 2.1.1 JP に含まれている「Sharp Z-800_Ja_SJIS.qsc」を使用します。
以下の手順で、デバイスファイルの切り替えができます。

  1. エミュレータを起動します。
  2. [ファイル] メニューの [デバイスの読み込み] をクリックします。
  3. [デバイスの選択] ダイアログを表示します。
  4. 「Sharp Z-800_Ja_SJIS.qsc」を選択します。
  5. [デバイスの選択] ダイアログの [開く] をクリックします。

また、デバイスコンフィギュレータを使用してデバイスファイルの内容を日本語に対応させることで、日本語を使用することも可能です。
エミュレータで日本語を使用するには、デバイス属性の言語とフォントにある以下の項目を変更してください。

  • 言語  → "日本語" に変更してください。
  • エンコード  → "S-JIS" に変更してください
  • フォントの種類を変更してください。  → 日本語表示に対応しているフォントに変更してください。 例えば、"MS ゴシック"、"MS 明朝" など。

以下の手順で、デバイスファイルの内容を日本語に対応できます。

  1. デバイスコンフィギュレータを起動します。
  2. [ファイル] メニューの [開く] をクリックします。
  3. [リソースファイルを開く] ダイアログを表示します。
  4. [内容を変更するデバイス ファイル] を選択し、[開く] をクリックします。
  5. [デバイス属性] グループの [詳細] をクリックします。
  6. [デバイス属性] ダイアログ ボックスを表示します。
  7. [言語とフォント] タブを選択します。
  8. [言語] ボックス一覧の [日本語] を選択します。
  9. [エンコード]ボックス一覧の [S-JIS] を選択します。
  10. [アクティブなフォントの種類] グループの [Windowsフォント] を選択します。
  11. [Windowsフォント] グループの [標準] フォントの [設定] をクリックします。
  12. [フォント] ダイアログ ボックスを表示します。
  13. [フォント名] ボックスの一覧の [MS ゴシック] 選択します。
  14. [フォント] ダイアログ ボックスの [OK] をクリックします。
  15. [Windowsフォント] グループの [大きい文字] フォントの [設定] をクリックします。
  16. [フォント] ダイアログ ボックスを表示します。
  17. [フォント名] ボックスの一覧の [MS ゴシック] 選択します。
  18. [フォント] ダイアログ ボックスの [OK] をクリックします。
  19. [デバイス属性] ダイアログ ボックス の [OK] をクリックします。
  20. [ファイル] メニューの [保存] をクリックし、変更内容を保存します。
      

デバッグ出力で浮動小数点数を出力できますか?

BREW のドキュメントには記載がありませんが、 DBGPRINTF は内部的に SPRINTF 関数を使用して 文字列を書式化していると思われます。 SPRINTF の説明にあるように、 この関数では %f 書式化文字列をサポートしていません。

浮動小数点数を出力するには、FLOATTOWSTR 関数を使用して いったんワイド文字列に変換してから、さらに char 文字列に変換し、 それを DBGPRINTF で出力するとよいでしょう。

      

デバッグ出力で日本語を表示できますか ?

表示できます。

エミュレータでは、Visual C++ のアウトプット ウィンドウを使用して、 デバッグ出力を日本語で表示します。 アウトプット ウィンドウにデバッグ出力を表示するには、 以下の手順で Visual C++ からエミュレータを起動してください。

  1. VC のメニューボタンから [プロジェクト] - [設定] を選択します。
  2. [プロジェクトの設定] ダイアログ ボックスの[デバッグ] タブを選択します。
  3. [デバッグセッションの実行可能ファイル] に BREW エミュレータを設定してください。
  4. [OK] ボタンを押して変更を反映してください。
  5. [ビルド] - [デバッグの開始] - [実行] を選択してください。
  6. BREW エミュレータが立ち上がります。

実機では、BREW Logger を使用してください。