|
Tech Note 20: Palm OS Emulator (POSE)を使う April 02, 2003
|
(adapted from "NS Basic Programming for Palm OS", by Michael J. Verive)
NS Basicは独自のPalm emulatorやデバッガーを組み込んでいません。代わりにPalm OS Emulator(POSEとも呼ぶ)を使います。POSEを使うと、様々なOSバージョンを使ってあなたのアプリケーションをテストすることができます。
他のROMイメージを使ってテストを行いたい場合、あなたのデバイスのROMをダウンロード(シリアルケーブルとPOSEに付属する"ROM Transfer"プログラムを使う)するか、Palm, Inc. (またはデバイスのメーカー)からROMを取得します。Palm, Inc.からのダウンロードはwww.palmos-japan.com/dev/tools/emulator/からできます。
「ROMイメージをダウンロードするには、法律上、Palm社と契約を結ぶ必要があります。プロトタイプライセンスと機密保持契約を締結するためには、Palm OS デベロッパプログラムのメンバにならなければなりません。Palm OS デベロッパプログラムに参加した後は、Developer Seeding Programへの参加をお勧めします。参加申請として契約書に署名の上提出していただく必要があります。以上のプロセスを経ることで、ROMイメージやその他の貴重なプレリリース情報を入手することができます。米国を拠点とする開発者であれば、署名契約の必要のない“clickwrap”契約によってもイメージを入手できる場合があります。」
これ以上よくは説明できないでしょう。
POSEは通常NSBasic for Palmのインストールと共にインストールされ、NSBasic Toolsディレクトリ(デフォルト:c:\nsbasic\tools)に置かれます。ZIPファイルからPOSEをインストールする場合、エミュレータファイルを新しいディレクトリに抽出して下さい(私は"POSE"としますが、好きな名前を使って結構です)。このディレクトリ内にサブディレクトリを作り"Skins"と名前を付け、この中にスキンファイルを入れます。このディレクトリ名は"Skins"としなければならず、POSEに認識されるためにスキンファイルはこのディレクトリに入れなければなりません。スキンを抽出する時、アンインストーラに無視するように指示しない限り、最初に入っていたディレクトリに入ってしまいます(私はWinZipを使ってます。最新版はwww.winzip.comから取得できます)。このステップを忘れた場合、POSEは常にデフォルトの"generic"スキンを使って起動します。"Skins"ディレクトリの中を見てみて下さい。多分その中にサブディレクトリがあり、その中にスキンファイルが入っていると思います。スキンファイルを"Skins"ディレクトリに移せば、このスキンが有効になるはずです。
これらのスキンはただ似せてあるだけなのでしょうか? 実は本物のPalmデバイス全く同じ見た目と操作性を持っています。これはPalmIIIcのものです:
そんな訳ないですね。はい、上の文は嘘です。スキンはPOSEを本物のをデバイスのようにはしてくれません。しかし、見た目はちょっと感動しますよね!
先にも述べましたように、POSEはROMと一緒に配付されていません。しかし、ROMを転送するアプリケーションが付いてきます。これをあなたのPalmデバイスにダウンロードすると、デバイスが使っているROMをPC側へコピーすることができます。(現在はシリアルクレードルを使うデバイスでしかこれを行うことができませんが、USBを使うデバイスが増えてきていますので、あなたがこれを読んでいることには状況が変わっているかもしれません。)
ROMを転送するには、PC上のPOSEを起動させてから、POSE上を右クリックし"Transfer ROM"を選択します。その後は指示に従っていただくと、数分でROMがダウンロードされPOSEで使えるようになります。
NS BasicからPOSEを起動することができますし、コンパイル後に自動的にアプリケーションをロードし、実行させることができますが、私は個人的にはPOSEを1つ目のウィンドウに、NS Basic IDEを2つ目に、NS Basic downloadディレクトリを3つ目として開くのが好きです。そしてコンパイルオプションはPOSEにもデバイスにもダウンロードしないようにしています。この場合、POSEへアプリケーションを自分でインストールします。ウィンドウ間の切り替えは、少しのキーかマウス操作だけですし、アプリケーションをPOSEへロードするのも、(他のアプリケーションが動作中でなければ)PRCファイルをPOSEへドラッグするだけです。
POSEについて説明するのはこれで十分でしょう。ではここで述べた手順にそってPOSEを起動してみましょう。まだ、POSEをインストールしていないようでしたら、今インストールするのが良いタイミングです。
より簡単にPOSEを起動するために、私はデスクトップ上にPOSEのショートカットを置いています。Emulator.exe(通常はc:\nsbasic\toolsディレクトリに入っている)ファイルを右クリックし、デスクトップ上へドラッグします。Windowsがコピーか移動かショートカット作成かを聞きますので、ショートカット作成を選びます。POSEを起動させたいときは、この作ったショートカットをダブルクリックするだけです。
POSEを実際に実行される前にROMを与えてあげる必要があります。初めてPOSEを起動すると、新しいセッションを始めることも含め、いくつかのオプションを選択するように聞かれます。
"New"をクリックし、1つのROM(あなたのデバイスからダウンロードしたものか、PalmやHandspringなどのメーカーからのもの)を選びます。POSEがPalmの起動スクリーンを表示し、その後Preferences画面を表示するはずです。「ホーム」ボタンを押すと、アプリケーションアイコンが並んだ、見なれたPalmの画面が表示されるはずです。
毎回この手順を追うのは面倒ですので、ここでPOSEを右クリックし、"Save"を選択してPOSEのセッション(Emulator Session File:.psfファイル)を保存します。これでこのセッションファイルを選ぶことによって、このROMと共にPOSEを直接起動できます。後でPOSEにアプリケーションをインストールした場合、異なったPalmデバイス毎に、それぞれにインストールされたアプリケーションを持つセッションファイルを保存できます。
既に述べてますが、ファイルを動作中のPOSEへドラッグすることによって、アプリケーションおよびデータベースをPOSEへインストールできます。別の方法として、POSEを右クリックして"Install Application/Database"を選びます。PRCおよびPDBファイルはPalmフォーマットでなくてはなりません。AccessやWordファイルをPOSEへドラッグして正常にロードされると思わないで下さい。
毎回POSEを起動する度にロードしたいPDBやPRCファイルがある場合、POSEが入っているディレクトリ(通常はc:\NS Basic\tools)にAutoLoadと名前を付けてサブディレクトリを作成して下さい。AutoLoadディレクトリに入っているPDBやPRCファイルは自動的にロードされます。
しかし、配付時に、これらのファイルをあなたのアプリケーションに含めるのを忘れてしまう可能性が高いので、十分注意しましょう。
データベースやアプリケーションをエキスポートするのはインストールとはちょっと異なります。単純にデータベースやアプリケーションをWindowsデスクトップ上にドラッグできません。代わりに、POSEが動作中に右クリックして"Export database"を選びます。あなたのPOSEに存在するどのアプリケーションやデータベースでもエキスポートできます。これを使うと、POSE内であなたのNS Basicアプリケーションを使ってデータベースを作成し、このデータベースをエキスポートすることによって、他のユーザに配ることが可能です。
さらに、POSE dbexportプログラム(POSEにposedbexport.prcのロードが必要)を使うと、エミュレータ上のRAMをベースとしているデータベースをエキスポートできます。
POSEは素晴らしいツールですので、POSE上で動作するアプリケーションは実際のPalmデバイスでも動作すると考えがちです。私はそれほど多くの例外を見ていませんが、実機上ではPOSEと異なった動作がありえます。実際、POSEは実機よりもかなりチェックが厳しく、時々珍しいエラーメッセージに驚くかもしれません。これらのほとんどのメッセージは無視できますが、アプリケーションの配付前には必ず実機で確認することが大切です。
POSE 3.4を使うと、アプリケーションの動作に対してPOSEのチェックを厳しくするための多くの制御が行えます。また、必要に応じてエラーレポートを作成できます。POSEを右クリックし、"Settings"、"Debugging..."を選ぶと、様々なデバッグオプションが見れます。
ほとんどのNS Basicアプリケーションは、"MemMgr Data Access"、"Offscreen Form Object"、"UIMgr Data Access"のチェックを外すことによって、一般的な無視できるエラーを避けられることができます。これらのエラーは実際のPalmデバイスでは起こりませんので、POSEにこれらを無視させることによって、修正が必要なエラーにだけ焦点を当てることができ、デバッグ作業はかなり早くなるでしょう。
POSEで実験していると小悪魔(gremlin)に遭遇するでしょう。これは私が話を作り上げている訳ではありません!POSEを右クリックすると"Gremlins"という選択肢があるのに気が付くでしょう。基本的にGremlinsとは、あらゆるフィールドにあらゆる情報を入力したり、色々な場所をタップしたりスクロールするような、ちょっといやらしい疲れを知らないユーザと説明するのが適切でしょう。"Gremlins"、"New"と選択すると、新しい小悪魔群(New Gremlin Horde)を作ることができます。これはアプリケーションや一集まりのアプリケーションを実行します。また、各アプリケーションを何回実行するとか、起こりえるイベント、エラー、動作をどうログするかを決められます。
あなたのアプリケーションをGremlinsを使ってテストすることを強くお勧めします。POSEは多くのオプションを持っていますが、圧倒されないで下さい。1回に1つのテクニックを使っていけば十分です。
ちょと複雑で遅いですが、本物のデバイスかのようにPOSEのセッションをHotSyncできます。1つの方法として、POSEを実行しているWindowsマシンの2つのシリアルポートを使います。1つをHotSyncを実行するために使います。POSEにHotSyncさせるためには、POSEを右クリックし"Settings"、"Preferences"を選択し、"
POSEは一般的なWindowsインターフェースとは違いますので、終了の仕方を説明しておきましょう。POSEを終了するには、POSEを右クリックし、"Exit"を選んで下さい。
POSEで色々と実験してみて、機能を修得して下さい。しかし、再度強調しますが、あなたのアプリケーションの最終テストとしては信用しないで下さい。これは単なる模擬ソフトでしかありませんので、実機には完全に取って代わりません。