Wear OS エミュレータでテストする

Android Emulator を使用すると、仮想デバイスで Wear OS アプリケーションをテストできます。その機能の多くは、Android エミュレータのメイン ドキュメントで説明されています。このページでは、Wear OS 開発に固有の機能、テスト機能、トラブルシューティングのヒントに焦点を当てています。

基本的な設定手順については、Wear OS でアプリを作成して実行するをご覧ください。

Wear OS のテスト機能

エミュレータには、Wear OS の機能をテストするための専用ツールが用意されています。

Bluetooth オーディオをテストする

エミュレータで Bluetooth オーディオをテストするをご覧ください。

センサーをシミュレートする

エミュレータでは、データの種類に応じて、ツールバーからセンサーデータをシミュレートするさまざまな方法が用意されています。

Android Studio のツールバー アイコン
図 1.: Android Studio の [Running Devices] ツールバー。
  • Health Services データ:
  • その他のセンサー(位置、ポーズ、心拍数など):
    • 他のセンサータイプについては、エミュレータ ツールバーのオーバーフロー ボタン(...)をクリックして、[Extended Controls] ウィンドウを開きます。
    • 位置情報: [Extended Controls] > [Location] に移動して、単一の GPS ポイントを指定するか、ルートをシミュレートします。これは、Fused Location Provider API を使用してアプリをテストし、おおよその位置情報の処理を検証する際に便利です。
    • Device Pose(加速度計とジャイロスコープ): [Extended Controls] > [Virtual Sensors] > [Device Pose] に移動します。[Rotation](回転)(X-Rot、Y-Rot、Z-Rot)と [Movement](移動)(X、Y、Z)のスライダーを調整して、モーションベースのインタラクションをテストします。
    • 心拍数と追加センサー: [拡張コントロール > 仮想センサー > 追加センサー] に移動します。心拍数や、気温磁場近接気圧相対湿度などのセンサーをシミュレートします。

スマートウォッチの入力をシミュレートする

  • タッチとジェスチャー: 標準的なマウス操作はタッチ操作を模倣します。
  • 物理ボタン(回転サイドボタンとベゼルを含む):

    • エミュレータ パネルの上部にあるボタンを使用して、ハードウェア ボタン(ボタン 1 「ボタン 1 のアイコン」、ボタン 2 「ボタン 2 のアイコン」)や、手のひらで覆うなどの他の物理的な操作をシミュレートできます。デバイスを傾けて 「手のひらアイコン」 スワイプして戻る

    • [Rotary input] で、エミュレータ ツールバーのオーバーフロー メニュー(...)を開き、[Rotary input] を選択します。

デバイスをペア設定

エミュレータは、物理スマートフォンまたは仮想スマートフォンとのペア設定をサポートしています。Android Studio の Device Manager で Wear OS エミュレータ ペアリング アシスタントを使用して、セットアップをガイドします。詳しくは、スマートウォッチをスマートフォンに接続するをご覧ください。

重要な注意事項

テストの際は、次の技術面とパフォーマンス面の重要な考慮事項に注意してください。

64 ビット アーキテクチャのみ(最近のイメージ)

Wear OS 4(API 33)以降のエミュレータ システム イメージは、64 ビット アーキテクチャx86-64arm64-v8a)のみをサポートしています。

パフォーマンスの違い

エミュレータのパフォーマンス(特にバッテリー消費量とレンダリング速度)は、実機と大きく異なる場合があります。最終的なパフォーマンスの検証とバッテリーの最適化は、常に実際のハードウェアでテストしてください。

既知の問題

このセクションでは、Wear OS エミュレータに固有の一般的な問題について説明します。エミュレータに関する一般的な問題については、Android Emulator に関する既知の問題のトラブルシューティングのメインページをご覧ください。

  • 手首の傾きセンサーの警告: the host has not provided value yet for sensorHandle=16 のようなログメッセージが繰り返し表示されることがあります。これらは無視して構いません。
  • タイル レンダラ: DashedArcLine オブジェクトと circularProgressIndicator() によって構築された要素が、API 36 エミュレータで正しくレンダリングされない場合があります。