Intel x86 Atom和Atom_64系统映像之间有什么区别?


97

我正在使用Android SDK Manager为Android M预览版安装系统映像。但是,我注意到x86平台有两个单独的映像。

在此处输入图片说明

两者之间有什么区别,我应该为64位Ubuntu 15.04安装选择哪一个?(我的CPU包括AMD-V,并且在BIOS中启用了AMD-V,以防万一。)


5
AFAIK,只是它们模拟了不同的CPU体系结构,就像ARM,ARM64,MIPS等一样。–
CommonsWare

5
使用哪种计算机作为IDE都没有关系。这与您要仿真的硬件有关。因此,Atom vs Atom_64映像是您是否要模拟在具有Atom CPU或Atom 64位CPU的设备上运行应用程序。
hungryghost

2
它看起来像一个是32位CPU的图像,另一种是64位的一个,
Phantômaxx

看到这个类似问题的最高答案; 恕我直言,比下面的答案更清楚的解释。
制造商史蒂夫(Steve)

Answers:


68

根据这篇文章

借助Google最近发布的x86 64位Android 5.0仿真器映像,开发人员可以为基于Intel Atom处理器的设备创建64位应用程序。

Android 32位与64位

当今许多64位平台(包括Solaris,AIX *,HP-UX *,Linux *,OS X *,BSD和IBM z / OS *)都使用LP64模型。由于Android基于Linux内核,因此Android 64位平台也使用LP64模型。

英特尔64位CPU具有32位兼容模式。虽然32位应用程序将在64位处理器上运行,但是使用64位优化编译器进行编译可以使他们利用64位环境的体系结构优势

如何在模拟器上运行64位应用程序

基于Intel Atom处理器64位系统映像创建新的Android虚拟设备(AVD),然后在SDK Manager或ADT中打开AVD Manager。然后单击“创建”并填充如图所示的字段。现在,可以运行64位AVD仿真器。

在此处输入图片说明

64位Android *操作系统

默认情况下,所有32位应用程序在64位处理器上运行时都不会出现故障,但运行速度可能比调整为在64位处理器上运行的应用程序慢。

Android已准备好进行64位处理

从32位芯片过渡到64位芯片的主要好处之一,目前基本上是理论上的:支持EB级的内存,而不只是GB的内存。但是64位芯片处理内存的方式也可以提高某些任务的性能。

摘要

具有基于Intel Atom处理器平台的64位技术的Android 现在可以帮助开发人员优化其应用程序。为64位构建Android应用程序与构建传统的32位Android应用程序一样容易。现在,您可以使用官方的Android 64位模拟器来运行和调试64位应用程序。

也许本文可以帮助您了解此系统映像之间的区别。

更新资料

Google现在鼓励使用x86模拟器,就像您在此图中看到的一样

在此处输入图片说明

区别在于,当使用x86映像时,它现在在适当的条件下(HAXM)使用了快速的,硬件加速的虚拟化,因此不再有多余的中间层。


1
您提到了“使用64位优化编译器进行编译”的应用程序。那么,如何在64位环境中运行时使用64位编译器编译应用程序并获得优势呢?
Artem M

3
我们应该intel x86 atom system image在通过AVD开发期间使用@Jorge Casariego 来提高模拟器速度吗?
iraj jelodari '16

8
但是,如果我们不在乎目标体系结构,那么基本问题是:“ Atom_64”仿真器在64位Intel CPU上的运行速度是否更快?您的冗长回答我不知道。您提到“ x86”简直是令人困惑,因为问题是关于两个图像之间的选择,两个图像都提到了x86,而这两个不同之处仅在于提到了Atom与Atom_64。
制造商史蒂夫

@ToolmakerSteve我确实有同样的疑问。我还看到现在每个包装都变得很大,因此,选择正确的包装对于填充不必要的数据至关重要,这是至关重要的
Carmine Tambascia 19-10-27

15

仅供参考:在官方的Android Studio 文档中,它说“ x86系统映像在模拟器中运行最快”。

我还没有尝试过64位,所以我不能对此发表评论。也许别人可以。


1
不回答有关在两个不同的“ x86”系统映像之间进行选择的问题,其中一个还提到“ atom_64”,另一个提到“ atom”。
制造商史蒂夫(Steve)

9

我已经尝试过,并且x86_64恰好比x86慢一点。经过一些研究,我发现x86可以在基于32位的指令集和基于64位的指令集上运行,而x86_64只能在64位的指令集上运行,这需要更多的解码...

您还可以在此处查看https://developer.android.com/ndk/guides/x86-64.html 了解更多信息。


1
第一句话是潜在有用的信息。这个答案的其余部分从根本上是混乱的,因为“ x86_64”是指您正在仿真的设备,而不是您在其上运行仿真器的PC。最重要的是:选择哪种都没关系,除非您要测试特定目标体系结构上行为上的细微差别。
ToolmakerSteve18年

@ToolmakerSteve重要的是如何仿真硬件,特别是是否可以通过硬件虚拟化技术直接使用主机cpu。
andho's

@andho您可以详细说明吗?我很困惑; 因此,在我的系统上要模拟的哪个更快/更轻/更容易?x86或x86_64
Buncis

1
@buncis,如果您的CPU支持VT(大多数情况下),并且已在BIOS中启用了VT,并且已在操作系统中安装了必要的模块,则x86和x86_64的速度应相似,因为仿真器指令直接在主机CPU上运行。如果VT不可用,则使用软件仿真。在这种情况下,x86更快/更轻便/更容易,因为与x86_64相比,仿真x86需要更小的地址空间(例如64位注册表与32位注册表)。
andho,

2

x86表示32位系统。现在,我已阅读以上所有答案,我将直接指出重点。

x86 Atom->具有32位android仿真的32位Intel CPU

x86 Atom_64->具有64位android仿真的32位Intel CPU

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.