Firebase Summit で発表されたすべての情報をご覧ください。Firebase を使用してアプリ開発を加速し、自信を持ってアプリを実行する方法を紹介しています。詳細

Android仮想デバイスでテストを開始します

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

このドキュメントでは、Test Lab の AVD について、利点と既知の制限事項を含めて説明します。また、開発ライフサイクル全体でアプリをテストする方法に関する推奨事項も提供します。

Test Lab AVD はAndroid Studio の AVDに似ていますが、両者にはいくつかの違いがあります。たとえば、Test Lab の AVD には、Wi-Fi 接続ではなくエミュレートされたデータ接続があります。

.armまたは (ARM) サフィックスが付いた Test Lab AVD は、次の利点を提供する高度なエミュレーターです。

  • テスト実行時間の短縮

  • 一貫性を保つため、Android Studio の AVD に合わせた画面サイズと密度

.armまたは (ARM) サフィックスを持つ AVD を使用すると、他のタイプの物理デバイスよりも次の利点があります。

利点説明ユースケース
高可用性仮想デバイスを使用してテストすると、テストを実行してテスト結果をより迅速に取得できます。仮想デバイスはオンデマンドで作成されるため、テストはほぼ即座に開始され、アプリの検証が迅速に行われます。アプリの小規模な更新のテスト、または回帰テスト用。
より長いテスト期間物理デバイスでのテストは、各デバイスで 45 分のテスト期間に制限されています。仮想デバイスは、最大 60 分のテスト期間をサポートします。より長いテストの実行。
低コスト仮想デバイスの料金は、アプリのテストに使用される仮想デバイスごとに 1 時間あたり 1 ドルです。継続的インテグレーション システムを使用した毎日のテスト、またはコードのチェックイン前。詳細については、「 Test Lab の使用レベル、クォータ、および価格」を参照してください。

仮想デバイスでアプリをテストする

物理デバイスでテストするのと同じ方法で、仮想デバイスでアプリをテストできます。テスト ディメンションを選択してテスト マトリックスを構成するときに、仮想デバイスを選択するだけです。 Test Lab でのテストの実行について詳しくは、Firebase Test Lab で Android のテストを開始する をご覧ください。

サポートされているモデルと API を表示する

Test Lab でサポートされている AVD モデルと API を表示するには、次のコマンドを実行します。

gcloud firebase test android models list --filter=virtual

アプリをテストするためのベスト プラクティス

仮想デバイスを使用すると、Test Lab でアプリをテストする際のオプションの範囲が広がります。このセクションのベスト プラクティスを使用して、アプリの開発ライフサイクル全体でアプリをテストすることをお勧めします。

Android Studio エミュレーターまたは接続された物理デバイスを使用する

アプリを開発するときは、Android Studio エミュレーターまたは接続された物理デバイスを使用して、初期検証のために各ビルドを調べます。インストルメンテーション テストがある場合は、Test Lab が提供する物理デバイスまたは仮想デバイスで Android Studio からこれらのテストを実行することもできます。

共有プロジェクトで作業するときは、コードを変更するたびに CI システムを使用する

大規模なプロジェクトに取り組んでいる場合、または GitHub または同様のサービスを使用して共有されているプロジェクトに貢献している場合は、継続的インテグレーション (CI) システムを使用することをお勧めします。

CI システムが実行されるたびに、または各プル リクエストの前に、仮想デバイスでアプリをテストします。 CI システムで Test Lab を使用する方法の詳細については、継続的インテグレーション システムで Android 用の Test Lab を使用する を参照してください。

重要なアプリの更新をリリースする前に、Test Lab を使用して物理デバイスでアプリをテストします

UI と機能が大幅に変更されたアプリの更新プログラムをリリースする前に、Test Lab を使用して物理デバイスでアプリをテストすることをお勧めします。これにより、アプリがさまざまな一般的な物理デバイスで安定してパフォーマンスを発揮できるようになります。また、物理デバイスでのテストにより、仮想デバイスによってシミュレートされない物理デバイスの機能に依存するすべてのアプリ機能のテスト カバレッジが保証されます。これらの機能の詳細については、既知の制限を参照してください。

仮想デバイスの更新

Android チームは定期的に新しい仮想デバイス イメージを追加し、古いイメージを非推奨にし、既存のイメージを更新します。これらの更新を仮想デバイス イメージに適用して、ユーザーのエクスペリエンスを反映した最新の Android バージョンに対してテストを実施できるようにします。

まれに、これらの更新により、テストが予期せず失敗することがあります。互換性を損なう可能性のある既知の更新がある場合、Test Lab はリリース ノートに情報を含めます。ベスト プラクティスとして、これらの変更に対して可能な限り堅牢なテスト フレームワーク ( Espressoなど) を使用することをお勧めします。それが不可能な場合は、更新頻度の低い ARM 仮想デバイスをターゲットにすることをお勧めします。

既知の制限

一部の物理デバイス機能は、現在仮想デバイスによってシミュレートされていないか、いくつかの制限付きでシミュレートされています。次の表は、仮想デバイスで現在利用できない機能、または特定の制限付きで利用できる機能をまとめたものです。

特徴詳細
アプリケーション バイナリ インターフェイス (ABI)すべてのデバイスがすべての ABI をサポートしているわけではありません。 Android NDK を使用して開発している場合は、対象のデバイスでサポートされている ABI のコードを必ず生成してください。詳細については、「 Test Lab で利用可能なデバイス」を参照してください。 ABI 管理の詳細については、 Android ABIを参照してください。デバイスでサポートされている ABI を確認するには、使用可能なテスト デバイスを確認する を参照してください。

注:テスト マトリックスのテストが無効とマークされている場合、アプリがデバイス ABI でサポートされていないネイティブ コードに依存していることが原因である可能性があります。

グラフィック性能Nexus および Pixel 仮想デバイスは、ソフトウェア グラフィック レンダリングを使用します。グラフィックスを多用するアプリケーションでは、パフォーマンスが低下します。アプリがグラフィックを多用する場合は、代わりにSmallPhone.armおよびMediumPhone.armモデルまたは物理デバイスを使用してください。
画面収録Nexus および Pixel デバイスでの画面記録は、1 秒あたり 1 フレームです。
グラフィック API OpenGL ES 3.x は、API レベル 29 未満のデバイスではサポートされていません。新しいデバイスは、OpenGL/Vulkan API と 100% 互換ではありません。グラフィックの小さな違いに気付くかもしれません。

次のステップ