x86 ハードウェア用の Android 11 システム イメージは、x86 PC 用の Android Studio 内の Android エミュレータで ARM エミュレーションをサポートするようになりました。
Googleがリリースしたのは、 Android 11 開発者プレビュー 2 今月上旬。 このリリースで、Google は Android エミュレータ上でより効率的なアプリのデバッグを可能にする重要な変更を加えました。 Androidスタジオ. x86 CPU 用の Android 11 システム イメージにより、C または C++ の依存関係を持つアプリケーションをより多く実行できるようになりました。 完全な ARM エミュレーションを使用せず、ハードウェア アクセラレーションと x86 の CPU 仮想化を利用してスムーズに動作 ハードウェア。
ネイティブ コード (C または C++) で書かれた Android アプリは、さまざまな CPU アーキテクチャを念頭に置いてコンパイルする必要があります。 ARM、ARM64、x86、x86-64 などの異なる CPU アーキテクチャをターゲットとするアプリの異なるバージョンが必要です。 これは、Android ランタイム (ART) で実行される Kotlin アプリや Java アプリとは対照的に、ネイティブ コードは特定のアーキテクチャの機械命令に直接コンパイルされるためです。
x86 ベースのコンピューター上で実行されている Android エミュレーターを介してアプリをテストするには、x86 CPU 用の別のバージョンが必要です。 スマートフォンは通常、ARM または ARM64 CPU に基づいているため、x86 バージョンのアプリはスマートフォンでは動作しません。 今まで唯一、 この問題の解決策は、物理 Android デバイスを使用するか、x86 CPU 用の完全な ARM エミュレーションを備えたエミュレータ イメージをインストールすることでした。 後者のオプションはパフォーマンスに負荷がかかり、x86 のハードウェア アクセラレーションと CPU 仮想化を最大限に活用できません。 CPU が提供します。
これを解決するために、Google は ARM と互換性のある新しい Android 11 x86 システム イメージをリリースしました。 これらのシステム イメージは、異なる言語で記述されたアプリ間、またはアプリとオペレーティング システムの間を仲介する ABI (アプリケーション バイナリ インターフェイス) を利用します。 ARM バイナリ内の ARM 命令は排他的に x86 に変換されますが、残りのコードは引き続き x86 で実行されます。 この ARM バイナリの分離により、プロセスのパフォーマンスへの負荷が低くなり、低レベルのハードウェアでも実行されます。
C++ の依存関係を使用して Android アプリのデバッグを容易にするだけでなく、開発者は次のことも可能になります。 Chromebook 用の x86 バージョンの代わりに、ABI とともにアプリの ARM バージョンを公開するだけです。 未来。 これにより、さまざまな Chromebook での Android 11 を対象としたより多くのアプリのサポートが促進されます。
新しい x86 互換の Android 11 システム イメージは、以下からダウンロードできます。 Androidスタジオ を使用して Android仮想デバイスマネージャー またはSDKマネージャー。