エミュレータでアプリの拡張エクスペリエンスを実行する

対象となる XR デバイス
このガイダンスは、次のようなタイプの XR デバイス向けのエクスペリエンスを構築する際に役立ちます。
オーディオ&
ディスプレイ グラス

アプリをテストする際は、Android XR エミュレータを使用して、物理テストデバイス以外のテスト容量を拡張します。エミュレータ コントロールを使用すると、オーディオ グラスとディスプレイ グラスの一般的なシナリオでアプリがどのように動作するかをテストできます。エミュレータで仮想 Android XR デバイスを実行する方法と、使用できるエミュレータ コントロールの詳細については、次のセクションをご覧ください。

エミュレータでアプリを実行する

エミュレータでアプリを実行する手順は次のとおりです。

  1. Android Studio の デバイス マネージャー で、グラス AVD のホストデバイスとして機能する作成したスマートフォン AVD を見つけて、[開始] をクリックします。

    クリック

  2. Android Studio の デバイス マネージャー で、作成したグラス AVD を見つけて、[開始] をクリックします。

    クリック

  3. エミュレータでアプリを起動するには、Android Studio のメイン ツールバーにあるターゲット デバイスのプルダウン メニューからスマートフォン AVD を選択し、[Run] をクリックします。

    Android Studio のアプリ実行構成

グラス用のエミュレータ コントロールを使用する

エミュレータ コントロールを使用すると、オーディオ グラスとディスプレイ グラスの一般的なシナリオでアプリがどのように動作するかをテストできます。使用できる各コントロールの詳細については、次のセクションをご覧ください。

タッチパッド入力

オーディオ グラスとディスプレイ グラスにはタッチスクリーンがないため、操作には実機のタッチパッドを使用します。Android XR エミュレータの場合、タッチパッドは表示領域のすぐ下にあります。

タッチパッド領域内でパソコンのマウスを使用してタッチをシミュレートし、[Two Finger] モードを有効にして 2 本指の操作を行います。

エミュレータのタッチパッド領域の右側は、実際のデバイスのグラスの前面(レンズがある側)に対応し、左側は、実際のデバイスのグラスの後面(グラスが耳にかかる側)に対応します。この向きを把握することは、前方または後方にスワイプするなどのジェスチャーをシミュレートする際に重要です。

図 1. Android XR エミュレータのタッチパッド領域は、ディスプレイ領域のすぐ下にあります。

音声入力を行う

マイクを切り替えるには、エミュレータ コントロールから [Microphone] を選択します。これにより、パソコンのデフォルトのマイク入力デバイスを使用してエミュレータに接続し、入力を送信します。これは、エミュレータの拡張コントロールで [Virtual microphone uses host audio input] オプションを使用した場合と同じ効果があります。

マイクがオンになっている間は、話しかけて起動ワードを使用したり、コマンドを実行したりできます。

図 2. マイクを有効にすると、パソコンのマイクを使用して音声入力を行えます。

オーディオ グラスをシミュレートする

ディスプレイ グラス用にアプリをテストする際は、アプリがオーディオ グラスとディスプレイ グラスの両方をサポートできるように、オーディオ グラスをシミュレートする必要があります。

これらのユースケースをテストできるように、グラスアプリでは音声のみモードを有効にできます。

  1. スマートフォン エミュレータで、グラスアプリを開きます。

    グラスアプリのアプリアイコン。

  2. [デバイスの設定] をタップし、[音声のみモード] を切り替えます。

    グラスで音声のみモードを切り替える。

  3. スマートフォン エミュレータとグラス エミュレータを停止します。

  4. Android Studio の Device Manager で、スマートフォン AVD を見つけて、オーバーフロー メニューの [Cold Boot] をクリックします。

    クリック

  5. 他の手順に沿って、Glass エミュレータを再起動してアプリを実行します。

ディスプレイのスヌーズ タイムアウトを無効にする

ディスプレイのタイムアウト動作は、オーディオ グラスとディスプレイ グラス向けのアプリ エクスペリエンスを開発する際に考慮すべき重要な要素です。そのため、通常のアプリテストを行う際は、デフォルトの動作のままにしておくことをおすすめします。ただし、ディスプレイのタイムアウトがテストの妨げになる場合は、次の ADB コマンドを使用してデフォルトの動作を無効にできます。

adb shell dumpsys activity service com.google.android.glasses.core/com.google.android.projection.core.app.service.AndroidProjectionCoreService preferences_set pref_automatic_snooze_timeout false

デフォルトのディスプレイ タイムアウト動作を復元するには、次の ADB コマンドを実行します。

adb shell dumpsys activity service com.google.android.glasses.core/com.google.android.projection.core.app.service.AndroidProjectionCoreService preferences_set pref_automatic_snooze_timeout true

Gemini Live を使用する

グラス エミュレータで Gemini Live をトリガーする手順は次のとおりです。

  1. Gemini Live を試す前に、スマートフォン エミュレータで Google アプリを最新バージョン(必要な最小バージョンは 16.46.63)に更新します。

    1. スマートフォン エミュレータで、Google Play ストア アプリを開きます。
    2. 「Google」を検索し、Google アプリを選択します。

      Google Play ストア アプリから Google アプリを更新します。

    3. [更新] を選択します。

  2. グラス エミュレータから Gemini Live をトリガーするには、タッチパッドを 2 秒ほど長押しします。

    初回は、スマートフォン エミュレータで一連の権限のリクエストがトリガーされます。必要な権限をすべて付与してから、グラスエミュレータのタッチパッドをもう一度 2 秒ほど長押しします。

    グラス エミュレータで Gemini Live を使用するために必要なすべての権限を承認します。

    Gemini Live が有効で、聞き取りを行っている場合、グラス エミュレータに次のように表示されます。

    Gemini Live が有効になっていると、ディスプレイに視覚的なインジケーターが表示されます。

  3. スマートフォン エミュレータで、ホストマイク入力がグラス エミュレータで有効になっていることを確認します。次のような通知が表示されます。

    スマートフォン エミュレータの通知は、ホストのマイク入力がアクティブであることを示しています。

カスタム環境を使用する

実際の環境の写真(2D 静止画像や 360 度パノラマ画像など)やウェブカメラ入力を使用してテストし、Jetpack Compose Glimmer を使用して、拡張現実エクスペリエンスがそれらのシナリオでどのようにレンダリングされるかを評価できます。

デフォルトのテーマは、ライト環境とダーク環境向けに事前に最適化されていますが、ブランド固有のカスタマイズを行う場合は、慎重に再テストする必要があります。ユーザーの環境に関係なく、光学シースルー ディスプレイで UI の高い視認性とコントラストが維持されるように、慎重にテストしてください。

エミュレータ内でカスタムの静止画像またはウェブカメラのカメラ入力を背景として使用するには:

  1. エミュレータ コントロールから [Environments] を選択します。
  2. プルダウン メニューで、カスタムのアップロードされた画像の場合は [カスタム環境] を選択し、ウェブカメラの入力の場合は [カメラ] を選択します。

    Android Studio で、カスタムの写真環境画像またはウェブカメラのカメラ入力を選択します。

  3. カスタム環境の場合は、使用するイメージを選択するか、[最近の環境] リストから以前に使用したイメージを選択します。

    アプリの UI をプレビューしている間、カスタム環境がバックグラウンドに表示されます。

360 度のパノラマ写真環境

エミュレータは、JPG 形式または PNG 形式の標準的な正距円筒図法のパノラマをサポートしています。360 度写真を使用すると、より現実的な背景でメガネアプリをテストできます。この背景では、動きや頭の回転が、一目でわかる UI 要素の評価に影響します。

環境内でビューを回転させるには、Shift キーを押しながら、マウスまたはキーボードの矢印キーを使用します。

スクリーンショットを撮影する

エミュレータ内で実行されているアプリの視覚的な出力をキャプチャするには、スクリーンショットを撮ります。

これを行うには、エミュレータ コントロールの [Take screenshot] をクリックします。

エミュレータ コントロールを使用して、Android Studio でエミュレータ ディスプレイのスクリーンショットをキャプチャします。
 

これは、Android XR エミュレータで他の仮想デバイスのスクリーンショットを撮影する場合と同じように機能し、撮影したスクリーンショットを PNG ファイルとして保存します。

画面録画をキャプチャする

エミュレータ内で実行されているアプリの画面を録画するには:

  1. エミュレータ コントロールの [Record Screen] をクリックします。

    エミュレータ コントロールを使用して、Android Studio でエミュレータ ディスプレイの画面録画をキャプチャします。

  2. ユーザー インタラクションをハイライト表示する場合は、[タップを表示] を選択します。

  3. 必要な部分をキャプチャしたら、[録画を停止] をクリックします。

    プレビューが表示され、ファイルをパソコンに保存できます。

写真や動画を撮影する

Android XR エミュレータのカメラ キャプチャ機能はまだ利用できません。

ディスプレイのスヌーズ タイムアウトを有効にする

デフォルトでは、アプリの開発中やテスト中にエミュレータのディスプレイがスリープ状態になることはありません。ただし、実際のディスプレイ グラスのエクスペリエンスを設計する際には、ディスプレイのタイムアウト動作が重要になります。ディスプレイ グラスにはバッテリーと熱に関する厳しい制約があるため、ユーザーがデバイスをできるだけ長く使用できるように、消費電力を最適化する必要があります。ディスプレイ スヌーズ タイムアウトを有効にしてアプリをテストし、実際のデバイスの動作を観察して、それに応じてアプリを調整できるようにします。

ディスプレイのタイムアウトを有効にするには、次の ADB コマンドを実行します。

adb shell dumpsys activity service com.google.android.glasses.core/com.google.android.projection.core.app.service.AndroidProjectionCoreService preferences_set pref_automatic_snooze_timeout true

タイムアウトなしのデフォルトの動作を復元するには、次の ADB コマンドを実行します。

adb shell dumpsys activity service com.google.android.glasses.core/com.google.android.projection.core.app.service.AndroidProjectionCoreService preferences_set pref_automatic_snooze_timeout false