Android の仮想端末でアプリをテストする

Firebase Test Lab for Android では、仮想デバイスの新たなベータ プログラムの一環として、仮想端末によるテストを実施することができるようになりました。仮想端末は、特定の Android Nexus 端末を仮想的に忠実にシミュレーションしたもので、柔軟にスケジュールを設定できるため、日々の開発や継続的なテストに最適です。

仮想端末を使用する理由

仮想端末は、物理端末と比較して次のようなメリットがあります。

  • 高可用性: 仮想端末を使用したテストでは、迅速にテストを実行してテスト結果を得ることができます。仮想端末はオンデマンドで作成できるため、テストをほぼ即座に開始し、アプリを迅速に検証できます。そのため、仮想端末はアプリの小規模なアップデートのテストや、回帰テストに理想的です。
  • 長時間のテスト: 物理端末でのテスト期間は、各端末上で 30 分に限定されています。仮想端末では、最長 60 分のテスト時間に対応しているため、より長いテストを実行でき、特にアプリのパフォーマンスを計測するのに適しています。
  • 低コスト: 仮想端末の使用料金は、アプリのテストに使用する各仮想端末につき 1 時間あたり 1 ドルです。仮想端末は 2016 年 10 月 1 日までベータサービスとして利用可能であり、この期間中は無料で仮想端末を使用してアプリをテストできます。仮想端末は低コストなため、継続的インテグレーション システムを使用した日々のテストや、コードのチェックイン前のテストに最適です。詳しくは Test Lab の課金についての記事をご覧ください。

仮想端末でアプリをテストする方法

仮想端末でのアプリのテストは、物理端末でのテストと同じように実行できます。テスト マトリックスを設定するためにテスト ディメンションを選択する際に、仮想端末を選択するだけです。

アプリのテストに関するおすすめの方法

仮想端末によって、Test Lab でアプリをテストする際の選択肢が広がります。アプリ開発のライフサイクル全体で、次のアプローチによってアプリをテストすることを推奨します。

  • Android Studio: アプリの開発時に、Android Studio のエミュレーターか接続された物理端末を使用して、初期の検証のために各ビルドをテストします。インストゥルメンテーション テストが必要な場合は、Test Lab で利用できる物理端末か仮想端末で、Android Studio からインストゥルメンテーション テストを実施することもできます。
  • Test Lab を低解像度 MDPI 汎用仮想端末で使用する: Test Lab の低解像度 MDPI 汎用スマートフォン仮想端末を使用すると、他の仮想端末よりも迅速に、アプリで Robo テストおよびインストゥルメンテーション テストを実施できます。MDPI 仮想端末は、API レベル 23、24、25 で使用できます。この端末を gcloud コマンドライン インターフェースから使用するには、NexusLowRes モデル ID を使用します。
  • 共有プロジェクトの作業時に、各コードの変更に継続的インテグレーション(CI)システムを使用する: 大規模なプロジェクトで作業する場合や、GitHub や類似のサイトで共有されたプロジェクトに携わる場合は、継続的インテグレーション(CI)システムを使用して、CI システムが実行されるたび、または各 pull リクエストの前に、アプリを仮想端末でテストすることを推奨します。CI システムでの Test Lab の使用について詳しくは、Test Lab for Android と継続的インテグレーション システムを併用するをご覧ください。
  • アプリの大規模なアップデートのリリース前: アプリの UI と機能の大規模な変更を伴うアップデートをリリースする前に、Test Lab を使用してアプリを物理端末でテストすることを推奨します。これによって、一般的なさまざまな物理端末でアプリが問題なく動作することを確認できます。また、仮想端末でシミュレーションされない物理端末の機能を使用したアプリの機能もテストできます。これらの機能について詳しくは、既知の制限をご覧ください。

既知の制限

物理端末の一部の機能は、現時点では仮想端末ではシミュレーションされないか、一部の制限のもとでシミュレーションされます。次の表に、現時点で仮想端末では使用できない機能と、使用に際し一部の制限がある機能を示します。

機能 詳細
x86 以外の Application Binary Interfaces(ABI) 仮想端末は、x86 ABI のみをサポートしています。開発に Android NDK を使用している場合は、x86 命令セット向けにコードを生成してください。詳しくは、ABI の管理をご覧ください。

注: テスト マトリックス内の一部のテストが無効とマークされている場合は、アプリがネイティブ ARM コードを使用していることが原因である可能性があります。
動画のエンコードとデコード 現在、仮想端末では H264 動画のデコードのみがサポートされています。動画のエンコードはサポートされていません。

注: 現在、仮想端末でのテストでは、動画は 1 秒あたり 1 フレームで再生されます。物理端末でのテスト時と比較して動画はスムーズに再生されません。
OpenGL ES 3.x OpenGL ES 3.x 以降のグラフィック ライブラリは仮想端末では使用できません。
Camera HAL v3 Android の Camera HAL v3.0 について詳しくは、Camera HAL v3 の概要を参照してください。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。