Androidエミュレータ を使用すると、コンピュータで仮想 Android デバイスを実行できます。 開発者はこれを使用して、机を電話でいっぱいにすることなくアプリをテストします。 Android アプリを開いたり、大きな画面でモバイル ゲームをプレイしたりするためにこれを使用する人もいます。
3 台の異なる携帯電話に同じ APK をインストールした人なら誰でも、その魅力を理解できるでしょう。 エミュレータを使用すると、別の物理的な携帯電話をクリアすることなく、Android のバージョンを変更し、デバイスをリセットし、テストを再度実行できます。 悔しさも本物です。 アプリはテストでは完璧に動作しても、実際のハードウェアでは失敗する可能性があります。 エミュレータは、制御され、柔軟性があるため価値があります。 実際のモバイル使用の完全なコピーではありません。
Androidエミュレータ とは何ですか?
Androidエミュレータ は、ホスト コンピュータ上に仮想 Android デバイスを作成するソフトウェアです。 Android オペレーティング システム、ストレージ、画面、アプリ データ、およびタッチ式入力のコントロールを提供します。 ホスト コンピュータは、CPU、メモリ、グラフィックス、ストレージ、およびネットワーク接続を提供します。
Google には、Android Studio に公式 Androidエミュレータ が含まれています。 開発者は、さまざまなデバイス構成を作成し、それらに対してアプリを実行できます。
Android Studio、Androidエミュレータ、および AVD は関連していますが、同じものではありません。
- 開発環境はAndroid Studioです。
- Androidエミュレータ は、仮想デバイスを実行するソフトウェアです。
- Android Virtual Device は、そのデバイスの構成です。
AVD は、Android のバージョン、システム イメージ、画面、ストレージ、シミュレートされたハードウェアなどの詳細を定義します。 エミュレータはそれを読み取り、仮想デバイスを起動します。
Androidエミュレータ はどのように動作しますか?
このプロセスは、ユーザーが AVD を選択すると始まります。 エミュレータは Android システム イメージをロードし、ホスト コンピュータからリソースを割り当てます。
基本的な実行は次のようになります。
- AVD を選択または作成します。
- Androidのシステムイメージを読み込みます。
- CPU、メモリ、ストレージ、ディスプレイ、入力リソースを割り当てます。
- Android を起動し、アプリをインストールまたはテストします。
- デバイスの状態を保存するか、別のテストのためにリセットします。
マウスの動きとキーボード入力は、タップ、スワイプ、および入力になる可能性があります。 エミュレータは、位置、画面の回転、ネットワーク速度、通話、メッセージ、および一部のセンサー入力も再現できます。
パフォーマンスはホストとシステム イメージによって異なります。 ハードウェア アクセラレーションは、エミュレータがホストの CPU と GPU をより効率的に使用するのに役立ちます。 正確な Android エミュレーターの動作方法 は、ゲスト イメージ、ホスト アーキテクチャ、および利用可能なアクセラレーションによって異なります。
Androidエミュレータ は何に使用されますか?
アプリの開発とデバッグ
開発者はこれらを使用して、Android アプリを構築、インストール、検査、デバッグします。 複数の物理的な電話機の間を移動することなく、ログを表示し、変更をテストし、問題を繰り返すことができます。 ADB は、APK ファイルのインストール、ログの収集、ファイルの転送、自動タスクのサポートを行うことができます。
互換性と自動テスト
Android アプリは、さまざまな画面サイズ、API レベル、デバイス構成で動作する必要があります。 QA チームは、複数の仮想デバイスで同じフローを実行し、結果を比較できます。 自動テストには、開始、停止、コピー、リセットできるデバイスの利点もあります。
フィードバックが速いエミュレータを信頼します。 実際のデバイスでも重要なフローをテストせずにリリースを承認することはできません。
パソコン上の Android アプリとゲーム
すべてのエミュレータ ユーザーが開発者であるわけではありません。 コンシューマ ツールを使用すると、Android アプリやゲームを PC または Mac 上で実行できるようになります。 大きな画面、キーボード コントロール、ゲームパッドのサポートにより、一部のアプリが使いやすくなります。
開発者はログと API レベルを重視します。 ゲーマーはフレーム レート、コントロール、アプリの互換性を重視します。 この違いはツールを選択する際に重要です。
Android エミュレータの利点と制限
エミュレータは、作業の制御と再現性が必要な場合に強力です。 結果が物理的なハードウェアや実際のモバイル条件に依存する場合には、この効果は弱くなります。
| 利点 | 関連する制限事項 |
|---|---|
| すべての携帯電話を購入せずに、いくつかの Android バージョンをテストする | 仮想プロファイルはすべての実際のモデルを再現するわけではありません |
| すぐにテストをリセットして繰り返します | 結果は製造元のソフトウェアと物理ハードウェアによって異なる場合があります |
| デバッグおよび自動化ツールを使用する | 一般ユーザーにとってセットアップは専門的だと感じるかもしれない |
| 位置、回転、ネットワーク、および選択したセンサーをシミュレートします | シミュレーションでは、実際のネットワークやセンサーの動作をすべてキャプチャできるわけではありません |
| 1 台のコンピュータから Android を実行する | 各インスタンスはローカルの CPU、メモリ、ストレージ、グラフィックスを使用します |
複数のインスタンスを一緒に実行すると、リソースの使用量が顕著になります。 1 つの仮想デバイスがうまく機能する場合があります。 5 つあれば、静かなラップトップが騒々しく熱いマシンに変わります。 ハードウェア アクセラレーションは役立ちますが、複数の Android システムを実行するコストが削減されるわけではありません。 Google は、さまざまなホスト向けの最新の ハードウェア アクセラレーション ガイダンス を公開しています。
カメラの出力、バッテリーの使用、生体認証、NFC、通知、モバイル ネットワーク、メーカーの変更により、エミュレーターの外部では動作が異なる場合があります。 Google では、リリース前に 実端末でのテスト を推奨しています。 最後のテストは、実際のユーザーが手に持つ環境を反映する必要があります。
Androidエミュレータ 対 シミュレータ 対 実デバイス
これらの用語はしばしば混同されます。 製品名が常に完全にそれに従うわけではありませんが、共通の区別は役に立ちます。
| 要素 | Androidエミュレータ | シミュレータ | 実デバイス |
|---|---|---|---|
| 主要モデル | 仮想 Android 環境を実行します | 選択したソフトウェアの動作を再現します | 物理ハードウェア上で Android を実行 |
| ハードウェアの動作 | 部分的に仮想化またはエミュレートされている | 通常はより抽象的です | そのデバイスのネイティブ |
| 最適な使用方法 | 開発、デバッグ、反復可能なテスト | インターフェイスと動作のチェック | 最終的な互換性とパフォーマンスのチェック |
| リセットして繰り返す | 簡単 | 簡単 | さらに準備が必要です |
| メインギャップ | 物理的な細部をすべて再現することはできません | 限定的なハードウェアのリアリズムを提供します | あなたが持っているデバイスのみをカバーします |
実際のデバイスはリセットに時間がかかり、大規模に再現するのが困難です。 エミュレータは仮想であるため、それほど便利ではありません。 優れたチームは、最も明確な答えが得られる場合にそれぞれを使用します。
Androidエミュレータ と クラウドフォン
ローカルの Androidエミュレータ と クラウドフォン の両方を使用して、ユーザーは Android にアクセスできます。 さまざまな運用上の問題を解決します。
| 要素 | ローカルのAndroidエミュレータ | クラウドフォン |
|---|---|---|
| Android が動作する場所 | ユーザーのコンピュータ上で | リモートクラウドインフラ上 |
| 主な強み | 柔軟なローカル開発とテスト | 永続的なリモート Android アクセス |
| 地域のリソース | ホストの CPU、メモリ、ストレージ、グラフィックスを使用します | Android ワークロードをリモート インフラストラクチャに移動します |
| アクセス | 通常は 1 つのホスト設定に関連付けられています | リモートアクセスとチーム権限向けに設計 |
| ベストフィット | 開発、デバッグ、ゲーム、短いローカルタスク | 繰り返されるモバイル作業、チーム、デバイス群、自動化 |
アプリのデバッグ、API レベルのチェック、または 1 台のコンピューターでいくつかのゲームを実行するには、ローカル エミュレーターを選択します。 直接的で構成可能であり、多くの場合、安価に開始できます。
Android 環境を 1 台のコンピュータから離れた場所で利用できるようにする必要がある場合は、クラウドフォン の方が合理的です。 共有アクセス、永続的なアプリの状態、または一元化された自動化を必要とするチームに適合します。 アプリの互換性、コスト、チーム アクセス、デバイス管理はすべて、クラウドフォン と Androidエミュレータ の決定に影響します。
MoreLogin クラウドフォン は、リモート ARM ベースのインフラストラクチャで Android ワークロードを実行します。 これにより、チームに共有デバイス アクセスと自動化制御が提供されます。 これは、ローカル テストが継続的なリモート操作に変わるときに重要になります。
作業にリモート アクセスと永続的なデバイス状態が必要な場合、Androidエミュレータ の代替品 を使用すると、1 台のローカル コンピュータへの依存度を減らすことができます。 有益な質問は、Android ワークロードをどこで実行する必要があるか、そして誰がそれを制御する必要があるかということです。
一般的な Androidエミュレータ の例
これらのツールはさまざまなユーザー向けに構築されています。
- Android Studio エミュレータは、アプリの開発、デバッグ、テストに重点を置いています。
- BlueStacks は消費者向けアプリとモバイル ゲームに重点を置いています。
- Genymotion は、開発およびテストのワークフローをサポートします。
- LDPlayer は主に Windows 上での Android ゲームに焦点を当てています。
- NoxPlayer はゲームや一般的な Android アプリの使用をサポートします。
名前は仕事ほど重要ではありません。 開発者は、AVD 制御、デバッグ、自動化、および API レベルの範囲を探す必要があります。 ゲーマーはコントロール、パフォーマンス、アプリのサポートに注目する必要があります。 Windows ユーザーは、Windows 用のAndroidエミュレータ を選択する前に、ハードウェア要件、アプリのサポート、コントロールを比較する必要があります。
Androidエミュレータ よくある質問
Android Studio はAndroidエミュレータですか?
いいえ。 Android Studio は統合開発環境です。 これには、Android アプリの作成、構築、デバッグ、テストのためのツールが含まれています。 Androidエミュレータ は、そうしたツールの 1 つです。 AVD 構成によって定義された仮想デバイスを起動します。
Androidエミュレータ は仮想マシンですか?
Androidエミュレータ では、仮想マシンに関連する多くのアイデアが使用されています。 ゲスト Android システムをロードし、仮想ハードウェアを割り当て、ハイパーバイザーを使用する場合があります。 これらの条件は完全な代替品ではありません。 Androidエミュレータ には、Android 用に作成されたデバイス コントロールとテスト機能も含まれています。
Androidエミュレータ は実際のデバイスの代わりに使用できますか?
完全にはそうではありません。 エミュレータは、開発、デバッグ、反復可能なテストに優れています。 物理的なハードウェア、製造元のソフトウェア、パフォーマンス、モバイル ネットワーク、および実際のユーザーの状態を含む最終チェックには、依然として実際のデバイスが必要です。
Androidエミュレータ には強力なコンピュータが必要ですか?
それは仮想デバイスとワークロードによって異なります。 新しい Android バージョン、大きな画面、要求の厳しいアプリ、およびいくつかの実行中のインスタンスには、より多くのリソースが必要です。 ハードウェア アクセラレーションは、ホストがサポートしている場合にパフォーマンスを向上させることができます。
Androidエミュレータ は APK ファイルをインストールできますか?
はい。 開発者は、Android Studio、ADB、またはサポートされているドラッグ アンド ドロップ コントロールを通じて APK をインストールできます。 正確な方法はエミュレータによって異なります。
Androidエミュレータ は クラウドフォン と同じですか?
いいえ。 通常、ローカル エミュレータはユーザーのコンピュータ上で Android を実行します。 クラウドフォン は、リモート インフラストラクチャ上で Android ワークロードを実行し、ネットワーク経由でインターフェイスを送信します。 1 つは、ローカル テストの柔軟性を優先することです。 もう 1 つは、永続的なリモート アクセスと集中管理を優先します。

JP
