4


エミュレータの使用法

Sun JavaTM Wireless Toolkit for CLDC のエミュレータは、デスクトップコンピュータ上で MIDP デバイスをシミュレートします。エミュレータを使用すると、アプリケーションが MIDP 環境でどのように動作するかを確認でき、デスクトップコンピュータ上だけですべての開発サイクルを行うことができます。

エミュレータは、特定のデバイスを表すものではなく、サポートされている API を正しく実装するものです。


4.1 エミュレータのスキン

「スキン」とは、エミュレータの表面にある薄い層のことで、エミュレータの外観、画面の特徴、入力コントロールなどを指定するものです。Sun JavaTM Wireless Toolkit for CLDC には、さまざまな種類のデバイスを表すスキンが付属しています。


表 4-1 エミュレータのスキン

名前

画面サイズ

キャンバスサイズ

Colors

入力

DefaultColorPhone

240 x 320

240 x 289

4096

ITU-T

DefaultGrayPhone

180 x 208

180 x 177

4096

ITU-T

MediaControlSkin

180 x 208

180 x 177

4096

ITU-T

QwertyDevice

636 x 235

540 x 204

4096

Qwerty


 

必要に応じて、独自のエミュレータスキンを作成することもできます。詳細は、『基本カスタマイズガイド』を参照してください。


4.2 エミュレータのコントロール

エミュレータは、標準的なデスクトップウィンドウ内で携帯電話のように動作し、外観も似ています。この節では、エミュレータを制御する方法を説明します。説明や図は DefaultColorPhone スキンに基づいていますが、どのスキンの動作も同様です。

図 4-1 DefaultColorPhone エミュレータスキン


On the default emulator, the power button is on the top right and the soft buttons are on either side of the select button.

ボタンをマウスでクリックすることで、ボタンの押し下げをシミュレートできます。ほとんどのボタンにショートカットキーが割り当てられているので、通常はそれを使用する方が簡単です。キーボードの 0 〜 9 の数字キーは、エミュレータの 0 〜 9 のボタンに対応します。次の表では、いくつかのショートカットキーについて説明します。


表 4-2 ショートカットキー

エミュレータのボタン

キーボードキー

左ソフトウェアボタン

F1

右ソフトウェアボタン

F2

POWER ボタン

Esc

SELECT ボタン

Enter


 

テキストの入力方法は、実際のデバイスでの入力方法と同じです。文字を入力するには、目的の文字が表示されるまで数字キーを繰り返し押します。たとえば、数字キー 5 を 2 回押すと、文字 K を入力できます。テキストの入力中にアスタリスクキー (*) を押すと、大文字、小文字、数字、記号を切り替えることができます。現在のモードは、画面上部のインジケータに表示されます。シャープ記号 (#) を押すと、空白を入力できます。

代わりに、キーボードで直接タイプしてテキストを入力することもできます。この入力方法は便利ですが、エンドユーザーのほとんどはこの方法を利用できないということを忘れないでください。

また、テキスト領域で情報をコピーしてペーストすることもできます。Ctrl キー + v キーを押すと、クリップボードからテキストボックスまたはテキストフィールドにテキストをペーストできます。テキストボックスまたはテキストフィールドの内容をコピーするには、Ctrl キー + c キーを押します。テキストフィールドの内容全体が、クリップボードにコピーされます。


4.3 エミュレータの環境設定

エミュレータの設定を調整して、特定のデバイスの動作により近づけたり、さまざまなリソース条件の下でアプリケーションをテストしたりできます。

4.3.1 ネットワークプロキシ

エミュレータでは、デスクトップコンピュータのネットワーク接続が使用されます。たとえば、HTTP 接続を行う MIDlet をエミュレータで実行する場合、エミュレータはデスクトップコンピュータのネットワーク設定を使用して HTTP 接続を試みます。

開発用コンピュータがファイアウォールの内にある場合は、HTTP 接続にプロキシサーバーを使用していることがあります。不明な場合は、ブラウザの設定を調べて、プロキシサーバーを使用しているかどうかを確認してください。

プロキシサーバーを使用している場合は、同じプロキシサーバーを使用するようにエミュレータを設定する必要があります。そのためには、「編集」->「環境設定」を選択します。「ネットワーク構成」区画で、使用するプロキシサーバーの名前とポート番号を入力します。使用する HTTP のバージョンも選択できます。

プロキシサーバーが HTTP 基本認証 (RFC 2617 を参照) を使用している場合は、「認証」にチェックマークを付け、ユーザー名とパスワードを入力します。

4.3.2 ストレージサイズ

各エミュレータに割り当てられた持続ストレージの量を設定または変更したり、ヒープサイズ (アプリケーションのオブジェクトに許可されるストレージの量) を変更したりすることができます。「編集」->「環境設定」を選択し、「ストレージ」の項目を選択します。

図 4-2 ストレージの環境設定


The Ktoolbar preferences Storage tab shows storage root directory, storage size, and heap size

4.3.2.1 持続ストレージ

エミュレータには持続的なストレージがあります。このストレージは、デフォルト設定では電話のスキンディレクトリの appdb サブディレクトリに置かれます。これらのファイルの拡張子は .db です。

たとえば、Windows では DefaultColorPhone エミュレータスキンの持続ストレージは、workdir¥appdb¥DefaultColorPhone¥manager_storage_settings.db に保存されます。

同じエミュレータスキンのインスタンスを同時に複数実行する場合、ツールキットでインスタンスごとに一意のファイルパスが生成されます。たとえば、Windows では DefaultColorPhone のインスタンスに、workdir¥appdb¥temp.DefaultColorPhone1workdir¥appdb¥temp.DefaultColorPhone2 などのファイルパス名を割り当てられます。



注 - ファイル workdir¥appdb¥DefaultColorPhone¥in.use は、使用中としてマークされたストレージのルートの数を追跡します。エミュレータがクラッシュした場合は、in.use ファイルを削除する必要があります。



ツールキットでは、ストレージファイルの保存場所を変更したり、ストレージのサイズを制限したりできます。使用可能な持続ストレージが小さいときにアプリケーションの動作をテストする場合、この機能は役立ちます。

持続ストレージの設定を調整するには、「編集」->「環境設定」を選択し、左側の区画で「ストレージ」をクリックします。「ストレージのルートディレクトリ」フィールドに、持続ストレージに使用するディレクトリの名前を入力します。入力できるのは相対パスだけです。指定したディレクトリは、appdb サブディレクトリ内に作成されます。

デフォルトでは、1M バイト (1024K バイト) の持続ストレージを指定できます。K バイト単位で制限を入力できます。ストレージの実装では、アプリケーションの使用領域のほかに、いくらかのオーバーヘッドがあることに注意してください。たとえば、持続ストレージのサイズとして 8K バイトと入力した場合、アプリケーションデータとストレージオーバーヘッドの合計で 8192 バイトまで使用できます。

エミュレータの持続ストレージを消去するには、「ファイル」->「ユーティリティー」を選択します。「データベースの消去」ボタンをクリックして、持続ストレージを消去します。「データベースの消去」ボタンは、インストール済みのアプリケーションには影響しません。

4.3.2.2 ヒープサイズ

「ヒープ」とは、アプリケーションのオブジェクトが保存されるメモリーです。ヒープサイズを変更するには、「編集」->「環境設定」を選択し、「ストレージ」の項目を選択します (図 4-2 を参照)。デフォルトでは、ヒープサイズは 1M バイトです。最大ヒープサイズを設定して、実際のデバイスの条件により近いシミュレーションを行うことができます。「ヒープサイズ」フィールドに最大ヒープサイズを K バイト単位で入力します。

4.3.3 エミュレータのパフォーマンスの調整

エミュレータでは、ディスプレイやネットワーク接続など、デスクトップコンピュータのさまざまなリソースが使用されます。デスクトップベースのエミュレータに比べ、実際の MIDP デバイスでは、プロセッサは低速で、メモリは少なく、ネットワーク接続も低速であることが多く、ディスプレイの種類も異なる場合があります。

Sun JavaTM Wireless Toolkit for CLDC では、実際のデバイスの制約された環境をシミュレートできます。エミュレータは実際のデバイスを表すものではありませんが、パフォーマンスの設定を調整することで、さまざまな実行条件の下でアプリケーションがどのように動作するかを確認できます。

「編集」->「環境設定」を選択し、左側の区画で「パフォーマンス」をクリックします。図 4-3 を参照してください。

図 4-3 エミュレータのパフォーマンスの調整


The emulator Preferences Performance tab sets Graphics primitives latency, Display refresh, Enable VM speed emulation, and Enable network throughput emulation

「グラフィックプリミティブの応答時間」を調整すると、Graphics クラスの描画メソッドをアプリケーションで呼び出した時点から実際に描画が行われるまでの時間が変化します。

画面の特徴を変更するには、「表示の更新」の種類から 1 つを選択します。「定期的」を選択した場合は、「更新レート」も指定する必要があります。

より低速な実際のデバイスをシミュレートするには、「VM スピードエミュレーションを有効」にチェックマークを付け、速度を選択します。

シミュレーションでのネットワークスピードを調整するには、「ネットワークスループットエミュレーションを有効」にチェックマークを付け、ビット/秒単位の速度を選択します。


4.4 一時停止と再開

MIDlet のライフサイクルは MIDP の仕様で定義されています。MIDlet の開始や停止は、デバイスによって行われます。さらに、着信などの外部イベントが発生したときに、デバイスで MIDlet を一時停止することもあります。

エミュレータでは、実行中の MIDlet の一時停止や再開を簡単に行うことができます。一時停止されたときのアプリケーションの動作をテストする場合に、この機能は非常に便利です。

エミュレータの実行中に、エミュレータウィンドウのメニューから「MIDlet」->「一時停止」を選択します。実行中の MIDlet が一時停止され、「着信...」のメッセージが画面に表示されます。

操作を再開するには、メニューから「MIDlet」->「再開」を選択します。


4.5 エミュレータの単独での実行

開発中は通常、「実行」ボタンをクリックするか、「プロジェクト」->「OTA 経由で実行」を選択して、ツールキットから直接エミュレータを実行することになります。ただし、テストやデモの目的で、エミュレータを単独で実行したい場合があります。この節では、いくつかの方法について説明します。Sun JavaTM Wireless Toolkit for CLDC インストーラが作成するプログラムグループには、エミュレータを単独で実行するためのオプションがいくつか含まれています。

コマンドプロンプトからエミュレータを実行することもできます。詳細は、付録 Bを参照してください。


4.6 サードパーティ製エミュレータの使用

デバイスの製造元やワイヤレス通信事業者などのサードパーティが、ツールキットと互換性のあるデバイスエミュレータを作成していることもあります。ほかのエミュレータをツールキットにインストールして、より多様な実装でアプリケーションを実行してみることができます。通常の手順では、サードパーティ製のエミュレータを解凍またはインストールし、そのディレクトリを workdir¥wtklib¥devices ディレクトリにコピーします。次にツールキットを起動したときに、このエミュレータが使用可能になります。

現在使用できるエミュレータの一部は、次のリストに記載されています。

http://developers.sun.com/techtopics/mobility/midp/articles/emulators/