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

BREW FAQ : エミュレータ

エミュレータのデバッグ出力で日本語を表示するには?

下記の手順にて、Visual C++ のアウトプット ウィンドウを使って、デバッグ出力を表示します。

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

カメラのアプリが BREW 2.1 エミュレータで動作しないのですが…

BREW 2.1 エミュレータは、 ICAMERA インターフェースをサポートしておりません。

弊社では、Camulator という ICAMERA インターフェースをシミュレートするツールを
公開しております。

Camulator を使うと、 ICAMERA インターフェースを使うカメラのアプリは BREW 2.1 エミュレータで動作します。

※ BREW 3.1 以降、PCにカメラを接続することによりカメラのアプリをエミュレータ上で動作させることが可能になっています。

 関連情報

      

BREW 2.1 のエミュレーターが動作しないのですが…

MIF ファイルのパスに日本語が入っていると正常に動作しない場合があります。

エミュレーター画面の「ツール」 から 「設定」を選択し、MIF 初期ディレクトリのパスを確認してください。

      

BREW シミュレーターが正常に起動しないのですが…

症状:BREWシミュレーターのアプレットディレクトリを変更したところ、「ターゲットのロードまたは初期化に失敗しました。」というメッセージが表示されてBREWシミュレーターが起動しません。(BREW 4.0.1 SP05 Ja)

※指定したアプレットディレクトリ以下に大量のファイルが存在するときに発生するようです。

対処法:

  1. BREW SDKをインストールしたフォルダの \bin\BREWSim.dat を開きます。
  2. このファイルの[Settings]にある先頭2行を下記のような正しいアプレットディレクトリに設定されているか確認します。
    [Settings]
    AppletDir=C:\Program Files\BREW 4.0.1 SP05 Ja\sdk\examples
    MIFDir=C:\Program Files\BREW 4.0.1 SP05 Ja\sdk\examples
    MMC1Dir=
    SpecifyMIF=0
    SpecifyDNS=0
    Location=29,265,442,609
      .....
    
  3. アプレットディレクトリ以下のファイルの数を減らします。
  4. BREWシミュレーターを再起動します。
      

BREW シミュレータのフォント変更方法

BREW SDK の devicepacks フォルダのデバイス構成ファイルフォルダ内の .dpk ファイルをテキストエディタで編集すればフォントを変更できます。

## BREW Device Configurator
##
## BREW Device Configurator Generated Resource File
##
## ResourceFile Begin:
  ......

FONT_NORMAL 8 Arial

FONT_LARGE 10 Arial

  .....

この中の "FONT_NORMAL 8 Arial" を "FONT_NORMAL 12 MS ゴシック" などにします。

      

エミュレーター とは?

BREW 搭載携帯電話の動作をエミュレートするツールです。BREW SDK に同梱されています。

BREW 開発の初期段階では BREW エミュレーターを使用して、動作確認を行ったりデバッグ作業を行います。

BREW 開発で、最も頻繁に使用するツールです。

エミュレーターと実機では、アプリの振る舞いが異なるところもあるので注意が必要です。

      

デバイス ファイルとは?

デバイス ファイルとは、エミュレーターが携帯電話の動作をエミュレートするために使用するファイルです。

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

      

デバイス パックとは?

デバイス パックとは、BREW SDK 3.1 のエミュレーター用に拡張された デバイス ファイル のことです。

デバイス パックの作成は端末メーカーが行うので、通常、アプリの開発者が作成することはありません。そのため、BREW SDK 3.1 には、 デバイスコンフィギュレータ のようなデバイス パックを作成するツールはありません。

なお、最新のデバイス パックは、 BREW ディベロッパー エクストラネットから入手できます。

BREW ディベロッパー エクストラネットとは、BREW 認定デベロッパー専用の Web サイトです。

この Web サイト上では、一般の BREW 開発者に公開されていないサンプルや情報、 BREW テスト・商用化ユーティリティなどの開発ツールが公開されています。

      

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

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

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

※ BREW SDK 3.1 からはメーカー作成のデバイスファイルが用意されているため、デバイス コンフィギュレータは付属していません。

      

DLL ファイルだけでも、エミュレーターでアプリを実行できますか?

アプリの実行には  DLL ファイル以外に MIF ファイル も必要です。

MIF エディタ」 から、 クラス ID などを指定して、MIFファイルを作成してください。

      

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

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

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

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

      

エミュレーターに、「メモリ容量を節約するために … 」と表示されたのですが ?

アプリのディレクトリ構成が正しくない場合、

「メモリ容量を節約するためにこのアプリケーションはアンロードされました。 新しいバージョンをダウンロードしてください。」

というエラーメッセージがエミュレーターに表示されます。

以下の点について確認してください。

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

エミュレーターで日本語を入力するには?

デバイスファイルを切り替えることで、エミュレーターで日本語の入力ができます。

デバイスファイルは、BREW SDK 2.1.1 JP に含まれている「Sharp Z-800_Ja_SJIS.qsc」を使用します。

以下の手順で、デバイスファイルの切り替えができます。

続きを読む »

      

エミュレーターでデバッグ出力する方法は?

エミュレーターのメニューバーの [表示] → [出力ウィンドウ] で、 デバッグ用の出力ウィンドウが表示されます。なお、ログを保存することもできます。

ただし、この出力ウィンドウでは日本語が文字化けしてしまうので、日本語を表示する場合は、「エミュレーターのデバッグ出力ウィンドウで日本語を表示するには? 」をご参照ください。

      

デバッグ出力で浮動小数点数を出力するには?

デバッグ出力で浮動小数点数を出力する手順は以下のとおりです。

  1. FLOATTOWSTR 関数で浮動小数点数をワイド文字列に変換します。
  2. WSTRCOMPRESS 関数でワイド文字列を char 文字列に変換します。
  3. DBGPRINTF で char 文字列を出力します。
      

エミュレーターのファイルシステムの容量を増やすには?

BREW SDK 2.1 の場合は、以下のようにデバイスファイルを編集してファイルシステムの容量を増やします。

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

BREW SDK 3.1 にはデバイスコンフィギュレータが付属していないのでデバイスパックを直接書き換える必要があります。

ファイルシステムの最大サイズの書き換え方法は 以下の通りです。

  1. sdk/devices/<利用しているデバイスパック>/<機種名>.dsdファイルをテキストエディタなどで開けます。
  2. IDS_DD_HW_EFS_SIZE
    IDS_DD_HW_EFS_MIN_FILES
    以上の 2 つの項目を編集します。

※ dpk ファイルの変更について:

機種によっては dpk ファイルも変更します。

dpk ファイルに含まれる

  FS_LIMITS_PER_MODULE 2560 5242880
  FS_LIMITS_PER_MODULEで始まる行の 2 つの数値の並びを、

dsd ファイル中の

  IDS_DD_HW_EFS_MIN_FILES
  IDS_DD_HW_EFS_SIZE

と同じ値にします。

      

エミュレーターで TCP サーバーを使用するには?

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

      

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

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

      

I3D Sample を BREW 2.1 のエミュレーターで動作させるには?

I3D Sample は、日本語版 BREW 2.1 のエミュレーターでは動作しません。

英語版 BREW 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 2.1エミュレーターを起動してください。
  6. エミュレーターのメニューから [File] - [Load Device] を選択し、MySharp_Z-800.qsc を開きます。
  7. I3D Sample (TutorI3D) を実行してください。
      

エミュレーターでは正常に動作していたのに、実機では異常終了するのですが … ?

下記の項目についてチェックします。

  1. AEECallback 構造体は初期化されていますか?
  2. 変数の初期化を忘れてませんか?
  3. ファイルやネットワークなど MIF ファイルの特権レベルは正しく設定されていますか?
  4. 実機で動作させたとき、アプリ実行に必要なヒープ容量は確保されてますか?
  5. 不正な境界でメモリアクセスしていませんか?
    ARM CPU の場合、奇数番地から2バイトや4バイトのデータをアクセスすると、CPU 例外が発生します。
  6. 大域変数や静的変数を使っていませんか?
  7. DBGPRINTF() などを使って、実機上での動作を追跡してみてください。
    ※ 大量に DBGPRINTF() を実行すると端末のバッファが溢れてログが欠損することがあります。

    そのような場合、端末を sync dbgprintf モードに設定します。

    BREW 3.1 端末ならば、

      ###273933284#
      ###4#

    と続けて押すと sync モードに移行できます。

      ###0#

    で解除できます。(※)

※ SYNC モードを解除できない場合:

デバッグキーモードから解除されるタイミングには機種依存があります。ある機種は端末再起動でデバッグに関する設定がすべて解除されるのに対して、ある機種ではデバッグキーモードの設定のみ解除されたりします。

端末再起動後も SYNC モードが解除されない場合は、再度デバッグキーモードに移行し、 ###0# を押します。

このとき、端末は SYNC モードでキー入力への応答が非常に遅くなっていますので、ゆっくりとキーを押して、確実にキー入力を処理させることがポイントです。

ロガーを表示させて、キーイベントがログに表示されたら、次のキーを押す操作を繰り返せば確実に設定できます。


      

リムーバブルディスクへのファイルアクセスをエミュレートするには …?

BREW 3.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 を使用し、リムーバブルディスク上のファイルをオープンします。

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

続きを読む »