Intel x86 AtomとAtom_64システムイメージの違いは何ですか?


97

Android SDK Managerを使用して、Android Mプレビューのシステムイメージをインストールしています。ただし、x86プラットフォームには2つの個別のイメージがあることに気付きました。

ここに画像の説明を入力してください

2つの違いと64ビットのUbuntu 15.04のインストールにどちらを選択する必要があるのですか?(私のCPUにはAMD-Vが含まれており、BIOSで有効になっています。


5
AFAIK、それはちょうど彼らがARM、ARM64、MIPSなどのような異なるCPUアーキテクチャをエミュレートするだけです
CommonsWare

5
IDEとして使用しているマシンは関係ありません。これは、エミュレートするハードウェアに関係しています。したがって、Atom vs Atom_64イメージは、Atom CPUまたはAtom 64ビットCPUを搭載したデバイスでのアプリの実行をエミュレートするかどうかです。
hungryghost

2
1つは32ビットCPUイメージのようで、もう1つは64ビットイメージのようです
ファントマックス

この同様の質問に対する上位の回答参照してください。私見以下の答えよりも明確な説明。
ToolmakerSteve 2018年

回答:


68

この記事によると

Googleのx86 64ビットAndroid 5.0エミュレーターイメージの最近のリリースにより、開発者はIntel Atomプロセッサーベースのデバイス用の64ビットアプリを作成できます。

Android 32ビットと64ビット

Solaris、AIX *、HP-UX *、Linux *、OS X *、BSD、IBM z / OS *など、現在の多くの64ビットプラットフォームは、LP64モデルを使用しています。AndroidはLinuxカーネルに基づいているため、Android 64ビットプラットフォームもLP64モデルを使用します。

Intel 64ビットCPUには32ビット互換モードがあります。32ビットアプリケーションは64ビットプロセッサで実行されますが、64ビット最適化コンパイラを使用してコンパイルすると、64ビット環境のアーキテクチャ上の利点を活用できます

エミュレーターで64ビットアプリを実行する方法

Intel Atomプロセッサ64ビットシステムイメージに基づいて新しいAndroid仮想デバイス(AVD)を作成し、SDK ManagerまたはADTでAVD Managerを開きます。次に、「作成」をクリックし、図に示すようにフィールドに入力します。これで、64ビットAVDエミュレータを実行する準備ができました。

ここに画像の説明を入力してください

64ビットAndroid * OS

デフォルトでは、すべての32ビットアプリケーションは64ビットプロセッサで問題なく実行されますが、64ビットプロセッサで実行するように調整されたアプリケーションよりも実行速度が遅くなる可能性があります。

Androidは64ビット処理の準備ができています

32ビットチップから64ビットチップへの移行の主な利点の1つは、主に現在の理論的なものです。単なるギガバイトではなく、エクサバイトのRAMのサポートです。ただし、64ビットチップがメモリを処理する方法によって、一部のタスクのパフォーマンスが向上する場合もあります。

概要

Intel Atomプロセッサーベースのプラットフォーム用の64ビットテクノロジーを搭載したAndroidは、開発者がアプリケーション最適化するのに役立ちます。64ビット用のAndroidアプリケーションの構築は、従来の32ビットAndroidアプリケーションの構築と同じくらい簡単です。公式のAndroid 64ビットエミュレーターを使用して、64ビットアプリを実行およびデバッグできるようになりました。

多分この記事は、このシステムイメージの違いを理解するのに役立ちます。

更新

この画像でわかるように、Googleはx86エミュレータの使用を推奨しています

ここに画像の説明を入力してください

違いは、x86イメージを使用する場合、適切な条件(HAXM)で高速なハードウェアアクセラレーション仮想化を使用するようになり、中間層が太っているように感じられなくなったことです。


1
「64ビット最適化コンパイラでコンパイルする」アプリケーションについて言及しました。では、アプリケーションを64ビットコンパイラでコンパイルし、64ビット環境で実行する際に利点を得るにはどうすればよいでしょうか。
Artem M

3
@Jorge Casariegoはintel x86 atom system image、エミュレータの速度を向上させるためにAVDによる開発中に使用する必要がありますか?
iraj jelodari 16

8
しかし、ターゲットアーキテクチャを気にしない場合、本質的な質問は次のとおりです。「Atom_64」エミュレータは64ビットIntel CPUでより高速に実行できますか?あなたの長い答えから私にはわかりません。また、「x86」についての言及は単に混乱を招くものです。質問は2つのイメージ間の選択に関するものであり、どちらもx86について言及しているため、AtomとAtom_64について言及することだけが異なります。
ToolmakerSteve 2018年

@ToolmakerSteve確かに同じ疑問があります。また、各パッケージがかなり大きくなったので、パスを不要なデータで埋めるために適切なパッケージを選択することが重要です
Carmine Tambascia

15

参考:Android Studioの公式ドキュメントには、「x86システムイメージがエミュレータで最も高速に実行される」と記載されています。

私は64ビットを試したことがないので、実際にはコメントできません。たぶん他の誰かができます。


1
2つの異なる「x86」システムイメージの間で選択することに関する質問には答えません。1つは「atom_64」について言及し、もう1つは「atom」について言及します。
ToolmakerSteve 2018

9

私は両方を試しましたが、x86_64はx86よりも少し遅いです。少し調べてみたところ、x86は32ビットベースの命令セットと64ビットベースで実行できるのに対し、x86_64は64ビットでしか実行されず、さらに多くのデコードが必要です...

詳細については、https://developer.android.com/ndk/guides/x86-64.htmlで確認することもできます。


1
最初の文は潜在的に有用な情報です。「x86_64」はエミュレータを実行しているPCではなく、エミュレートしているデバイスを指すため、この回答の残りの部分は根本的に混乱しています。結論:特定のターゲットアーキテクチャでの動作の微妙な違いをテストしていない限り、どちらを選択してもかまいません。
ToolmakerSteve 2018

@ToolmakerSteveは、特にホストCPUがハードウェア仮想化テクノロジーを介して直接使用できる場合、ハードウェアがどのようにエミュレートされるかが重要です。
andho

@andhoもっと詳しく説明してもらえますか?よくわかりません; 私のシステムでエミュレートする方が速い/軽い/簡単ですか?x86またはx86_64
buncis

1
@buncis CPUがVTをサポートしていて(ほとんどの場合)、BIOSで有効にしていて、OSにインストールされている必要なモジュールがある場合、エミュレーターの命令はホストCPUで直接実行されるため、x86とx86_64の両方の速度は同じでなければなりません。VTが使用できない場合は、ソフトウェアエミュレーションが使用されます。この場合、x86をエミュレートするために必要なアドレス空間がx86_64よりも小さいため、x86の方が高速/軽量/簡単です(たとえば、64ビットレジストリと32ビットレジストリ)。
andho

2

x86は32ビットシステムを意味します。今、私は上記の答えをすべて読みました、そして私は直接要点に行きます。

x86 Atom-> 32ビットAndroidシミュレーションを備えた32ビットIntel CPU

x86 Atom_64-> 32ビットIntel CPU、64ビットAndroidシミュレーション

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.