Android 11 デベロッパー プレビュー 2 が公開されました。ぜひお試しのうえ、フィードバックをお寄せください

自動車用の Android アプリをテストする

自動車アプリをテストして、ユーザーが操作するときに予期しない問題が発生しないこと、また、使いにくい部分がないことを確認します。アプリは車載コンソールとユーザーのスマートフォン画面の両方でアクセスできるため、両方のタイプの画面で Auto アプリをテストする必要があります。また、ユーザーはいくつかの異なるモードでアプリにアクセスできます。

このトピックでは、ユーザー アクセス モードごとにアプリをテストする方法を示します。さらに、他の必須の機能をテストする手順を示します。

Android Automotive OS 用のアプリをテストする

Android Emulator を使用して、ドライバー向けに最適化されたアプリが Android Automotive OS の車載ディスプレイでどのように動作するかをテストできます。このセクションでは、アプリのテストに使用できる Android Virtual Device(AVD)のセットアップ方法を説明します。

実行構成を編集する

Automotive OS アプリは、他の Android アプリとは異なります。Android Automotive OS は、明示的なインテントとメディア ブラウズ サービスを使用してアプリと対話します。

アプリをテストするには、次の手順に従って、自動車モジュールがアクティビティを起動しないように設定されていることを確認します。

  1. Android Studio で、[Run] > [Edit Configurations] を選択します。

    [Run/Debug Configurations] ダイアログ ボックス。

  2. アプリのモジュールのリストから、自動車モジュールを選択します。

  3. [Launch Options] > [Launch] で、[Nothing] を選択します。

  4. [Apply] と [OK] を順にクリックします。

システム イメージを追加する

特定のメーカーのハードウェアに一致する AVD を作成するには、Android Studio SDK Manager を使用してデバイスのシステム イメージを追加する必要があります。次に、AVD を作成する際に、追加したシステム イメージをダウンロードして、AVD で使用できるようにします。

Polestar 2 のシステム イメージを追加する手順は次のとおりです。

  1. Android Studio で、[Tools] > [SDK Manager] を選択します。
  2. [SDK Update Sites] タブをクリックします。
  3. [Add] Add アイコン をクリックします。
  4. [Name] と [URL] に次のように入力して、[OK] をクリックします。

    Name: Polestar 2 System Image

    URL: https://developer.polestar.com/sdk/polestar2-sys-img.xml

  5. [Apply] と [OK] を順にクリックします。

車の AVD を作成してエミュレータを実行する

以下の手順に従って、Android Automotive OS 搭載車を表す Android Virtual Device(AVD)を作成し、その AVD を使用してエミュレータを実行します。

  1. Android Studio で、[Tools] > [AVD Manager] を選択します。
  2. [Create Virtual Device] をクリックします。
  3. [Select Hardware] ダイアログで [Automotive] を選択し、デバイスを選択して [Next] をクリックします。
  4. Android 9.0(Automotive)など、自動車をターゲットとするシステム イメージを選択して、[Next] をクリックします。
  5. AVD に名前を付け、カスタマイズするその他のオプションを選択して、[Finish] をクリックします。
  6. ツール ウィンドウ バーから、デプロイのターゲットとして Android Automotive OS AVD を選択します。
  7. [Run] Run アイコン をクリックします。

Android Auto 対応の車載ディスプレイでアプリをテストする

DHU を使用すると、開発マシンで Android Auto ヘッドユニットをエミュレートできるため、Android Auto アプリを簡単に実行およびテストできます。DHU は、Windows、macOS、Linux のホストで動作します。

このセクションでは、開発マシンに DHU をインストールして実行し、アプリをテストする方法を説明します。DHU をインストールしたら、USB 経由でスマートフォンとワークステーションを接続して、Android Auto アプリをテストできます。

DHU をインストールする

開発マシンに DHU をインストールする手順は次のとおりです。

  1. デバイスの開発者向けオプションの有効化の説明に従って、モバイル デバイスでデベロッパー モードを有効にします。
  2. 開発環境でアプリをコンパイルし、Android 5.0(API レベル 21)以上を実行している物理的なモバイル デバイスにアプリをインストールします。Nexus デバイスで Android のバージョンを確認するには、[設定] > [デバイス情報](または [タブレット情報])> [Android バージョン] にアクセスします。
  3. Android Auto アプリをモバイル デバイスにインストールします。Android Auto がすでにインストールされている場合は、最新バージョンを使用していることを確認してください。
  4. SDK Manager を開いて、[SDK Tools] タブから DHU パッケージの Android Auto Desktop Head Unit エミュレータをダウンロードします。DHU は、<sdk>/extras/google/auto/ ディレクトリにインストールされます。

Linux で DHU を実行する場合は、portaudio、libpng、sdl2、sdl2_ttf の各ライブラリもインストールする必要があります。インストール手順は、Linux ディストリビューションによって異なります。たとえば、Debian 派生の Linux ディストリビューションでは、次のコマンドでライブラリをインストールします。

    $ sudo apt-get install libsdl2-2.0-0 libsdl2-ttf-2.0-0 libportaudio2 libpng12-0
    
開発者向けオプションを含むコンテキスト メニュー

図 1. 開発者向けオプションを含むコンテキスト メニュー

ヘッドユニット サーバーが実行されているという通知

図 2. ヘッドユニット サーバーが実行されているという通知

DHU をインストールしたら、USB 経由でスマートフォンとワークステーションを接続して、Android Auto アプリをテストできます。

DHU を実行する

モバイル デバイスを開発マシンに接続し、Android Debug Bridge(ADB)経由でヘッドユニット サーバーへの接続をセットアップして、DHU を実行します。トンネリングをセットアップして DHU を開始する手順は次のとおりです。

  1. Android Auto アプリで、ハンバーガー メニューをタップし、[設定] をタップします。
  2. 下の方にある [Android Auto について] セクションまでスクロールし、[バージョン] をタップして、すべてのバージョンと権限情報を表示します。
  3. [バージョンと権限情報] セクションを 10 回タップします。

    [開発用の設定を許可しますか?] ダイアログが表示されます。

  4. [OK] をタップします。

    これで、デベロッパー モードが有効になり、オーバーフロー メニューの開発者向けオプションにアクセスできるようになります。デベロッパー モードを有効にする必要があるのは、Android Auto アプリを初めて実行するときだけです。

  5. ヘッドユニット サーバーがまだ実行されていない場合は、画面右上の 3 つのドットをタップしてオーバーフロー メニューを開き、[ヘッドユニット サーバーを起動] を選択します。

    デバイス上では、通知領域にフォアグラウンド サービスが表示されます。

  6. Android Auto アプリで、「戻る」ボタンを押してメイン画面に戻り、ナビゲーション ドロワーから [設定] -> [接続済みの車] を開いて、[Android Auto に新しい車を追加] が有効になっていることを確認します。
  7. USB 経由でモバイル デバイスを開発マシンに接続します。
  8. モバイル デバイスの画面がロック解除されていることを確認します。ロック解除されていないと、DHU を起動できません。
  9. 開発マシンで、下記の adb コマンドを実行して、開発マシンのポート 5277 から Android デバイスの同じポート番号にソケット接続を転送します。この構成により、DHU は、スマートフォンで実行されているヘッドユニット サーバーに TCP ソケット経由で接続できます。
        $ adb forward tcp:5277 tcp:5277
        
  10. <sdk>/extras/google/auto/ ディレクトリから desktop-head-unit.exe コマンド(Windows の場合)または ./desktop-head-unit コマンド(Mac または Linux の場合)を実行して、DHU を起動します。
        $ cd <sdk>/extras/google/auto
        $ ./desktop-head-unit
        

    デフォルトでは、ヘッドユニット サーバーはポート 5277 経由で接続します。ホストまたはポートをオーバーライドするには(たとえば、SSH で転送するため)、desktop-head-unit --adb <[localhost:]port> フラグを使用します。次に例を示します。

        $ ./desktop-head-unit --adb 5999
        

    デフォルトでは、DHU は、タッチスクリーン ユーザー インターフェースを使用する最も一般的な形式の Android Auto 互換ヘッドユニットをエミュレートします。マウスで DHU をクリックして、ユーザーのタップ操作をシミュレートできます。入力にロータリー コントローラを使用するヘッドユニットをエミュレートするには、-i controller フラグを使用します。次に例を示します。

        $ ./desktop-head-unit -i controller
        

    DHU がロータリー コントローラ モードの場合、キーボード ショートカットを使用して、コントローラの操作をシミュレートできます(DHU のコマンドとキー バインディングを参照)。ロータリー コントローラ モードでは、DHU はマウスクリックを無視するので、シミュレートされたロータリー コントローラ操作で Android Auto を操作する必要があります。

モバイル デバイスで起動された Android Auto

図 3. モバイル デバイスで起動された Android Auto

開発マシンで起動された DHU

図 4. 開発マシンで起動された DHU

注: Media Controller アプリを使用して、メディア統合をテストすることもできます。

DHU をセットアップして起動したら、コマンドラインで DHU コマンドを実行して、ターミナルからアプリを実行およびテストできます。キーボード ショートカットでそれらのコマンドを実行することもできます。

DHU コマンドを発行する

DHU コマンドにより、音声入力の再生や表示モード(日中 / 夜間)の切り替えなどの Android Auto 機能を使用して、アプリをテストできます。DHU を起動したターミナル ウィンドウから DHU にコマンドを発行できます。DHU ウィンドウを選択して、キーボード ショートカットでコマンドを発行することもできます。すべてのコントロールに対応する DHU のコマンドとキー バインディングのリストについては、DHU のコマンドとキー バインディングをご覧ください。

日中モードと夜間モードを切り替える

Android Auto は、昼と夜で異なるカラーパターンをサポートしています。日中モードと夜間モードの両方でアプリをテストする必要があります。次のいずれかの方法で、夜間モードと日中モードを切り替えられます。

  • DHU を起動したターミナルで daynight コマンドを実行する。
  • DHU ウィンドウを選択して、N キーを押す。

マイクをテストする

DHU は、音声入力用のマイクの使用をサポートしています。録音済みの音声トラックを入力として扱うように DHU に指示することもできます。その場合、DHU は、マイクを通してトラックを聴いた場合と同様に動作します。

録音済みのサウンド ファイルを入力として使用するには、次のコマンドを入力します。

    $ mic play <sound_file_path>/<sound_file>.wav
    

開発の便宜を図るため、一般的な音声コマンドに対応する以下のサウンド ファイルが用意されています。これらのサウンド ファイルは、<sdk>/extras/google/auto/voice/ ディレクトリにインストールされます。

exitnav.wav
「Exit navigation(ナビを終了)」
navgoogle.wav
「Navigate to 1600 Amphitheatre Parkway, Mountain View(1600 Amphitheatre Parkway, Mountain View までナビ開始)」
navsoh.wav
「Navigate to Sydney Opera House(シドニー オペラハウスまでナビ開始)」
nextturn.wav
「When is my next turn?(次はどこで曲がる?)」
showalternateroute.wav
「Show alternate routes(別のルートを表示)」
howlong.wav
「How long until I get there?(到着するまでどれくらいかかる?)」
navhome.wav
「Navigate to home(自宅までナビして)」
navwork.wav
「Navigate to work(職場までナビして)」
pause.wav
「Pause music(音楽を一時停止)」
showtraffic.wav
「Show traffic(交通状況)」

DHU のコマンドとキー バインディング

DHU は以下のコマンドをサポートしています。

表 1. コマンドとキー バインディング

カテゴリ コマンド サブコマンド 引数 キーボード ショートカット 説明
システム help [コマンド] コマンドの完全なセットを表示します。コマンド名(例: help day)を指定すると、そのコマンドのヘルプが表示されます。
quit Alt+q ヘッドユニットを終了します。
sleep [秒数] 1 秒間スリープします。引数を指定すると(例: sleep 30)、指定した秒数だけスリープします。このコマンドは、DHU 用のスクリプトを作成する場合に役立ちます(コマンドラインから I/O リダイレクトを使用してスクリプトを実行できます。./desktop-head-unit < script.txt とすると、ファイル script.txt からコマンドが読み込まれます)。
screenshot filename.png スクリーンショットを filename.png に保存します。
マイク mic begin m マイクをアクティブにして(ハンドルのマイクボタンを押すのと同じです)、コンピュータのマイクからの入力を待ちます。
play filename.wav DHU が filename.wav を音声入力として扱い、ファイルのサウンドがマイクを通して中継された場合と同様に動作するようにします。ユーザーには、再生されるサウンド ファイルは聞こえませんが、Android Auto からの応答は聞こえます。
repeat 同じサウンド ファイル パラメータで再度 mic play を呼び出した場合と同様に、最後の mic play コマンドを繰り返します。
入力 dpad up
down
left
right
矢印キー ロータリー コントローラの操作をシミュレートします。
soft left
soft right
Shift+矢印キー 一部のロータリー コントローラで使用可能なサイドボタンを押す操作をシミュレートします。
click Return ロータリー コントローラを押す操作をシミュレートします。
back Backspace 一部のロータリー コントローラの下にある戻るボタンを押す操作をシミュレートします。
rotate left
rotate right
1
2
ロータリー コントローラを左(反時計回り)または右(時計回り)に回転する操作をシミュレートします。
flick left
flick right
Shift+1
Shift+2
ロータリー コントローラを左(反時計回り)または右(時計回り)に高速回転する操作をシミュレートします。
tap x y 指定された座標でタップイベントをシミュレートします。例: tap 50 100
日中 / 夜間 day Shift+N キー 日中モード(高輝度、フルカラー)を有効にします。
night Ctrl+N 夜間モード(低輝度、高コントラスト)を有効にします。
daynight n 現在のモード(日中 / 夜間)を切り替えます。

スマートフォン画面でアプリをテストする

以下の手順に従って、アプリをスマートフォンにサイドローディングしてテストします。

手順 1: Android Auto アプリで、デベロッパー モードと提供元不明のアプリを有効にする

  1. Google Play で入手可能な Android Auto アプリをスマートフォンにインストールします。Android Auto がすでにインストールされている場合は、最新バージョンを使用していることを確認してください。
  2. Android Auto アプリで、ハンバーガー メニューをタップし、[設定] をタップします。
  3. 下の方にある [Android Auto について] セクションまでスクロールし、[バージョン] をタップして、すべてのバージョンと権限情報を表示します。
  4. [バージョンと権限情報] セクションを 10 回タップします。

    [開発用の設定を許可しますか?] ダイアログが表示されます。

  5. [OK] をタップします。
  6. 画面右上の 3 つのドットをタップしてオーバーフロー メニューを開き、[デベロッパー向けの設定] をタップします。
  7. [アプリモード] をタップして、[デベロッパー] を選択します。

    アプリの画面がデベロッパー向けの設定のリストに戻ります。

  8. [提供元不明のアプリ] が表示されるまで下にスクロールして、チェックボックスをオンにします。
  9. Android Auto を再起動します。

手順 2: スマートフォンで USB デバッグを有効にする

  1. [設定] > [デバイス情報] で、[ビルド番号] を 7 回タップして、開発者向けオプションを有効にします。
  2. [設定] > [開発者向けオプション] に戻り、[USB デバッグ] を有効にします。

手順 3: スマートフォンにアプリをインストールしてテストする

  1. USB 経由でスマートフォンをマシンに接続し、開発中のアプリを直接マシンにインストールできるようにします。adb devices コマンドを使用して、開発用コンピュータが USB 経由で接続されたデバイスを検出できることを確認します。
  2. デバイスをセットアップして USB 経由で接続したら、SDK の platform-tools/ ディレクトリに移動し、次のコマンドを実行してデバイスに .apk をインストールします。

    adb -d install path/to/your/app.apk
        

    これで、アプリをテストしてすべてが機能するかどうかを確認できます。

その他のテスト要件

このトピックで説明したユーザー アクセス モードごとにアプリをテストするだけでなく、アプリが次の機能を実行できることをテストして確認する必要があります。

メディアアプリの「コールド スタート」をテストする

Android Auto メディアアプリは、アクティビティが開かれていなくても動作しなければなりません。アプリは次の条件下で適切に応答する必要があります。

  • アクティビティが開かれる前に MediaBrowserService が実行されている。
  • ユーザーがログインしていない。
  • アクティビティを表示できない。

さらに、以下のシナリオをテストします。

  • メディアアプリを強制停止してから、Android Auto を起動する。
  • メディアアプリのデータを消去してから、Android Auto を起動する。

アプリが要求される動作を実行できない場合は、適切なエラー メッセージを設定します。