【问题标题】:What is the difference between the Intel x86 Atom and Atom_64 system images?Intel x86 Atom 和 Atom_64 系统映像有什么区别?
【发布时间】:2015-06-03 23:22:46
【问题描述】:

我正在使用 Android SDK 管理器为 Android M Preview 安装系统映像。但是,我注意到 x86 平台有两个单独的图像。

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

【问题讨论】:

  • AFAIK,只是它们模拟了不同的 CPU 架构,就像 ARM、ARM64、MIPS 等。
  • 使用什么机器作为 IDE 并不重要。这与您正在模拟的硬件有关。因此,Atom vs Atom_64 图像是您是否想模拟在具有 Atom CPU 或 Atom 64 位 CPU 的设备上运行您的应用程序。
  • 貌似一个是32bit的CPU镜像,另一个是64bit的,
  • 查看热门答案to this similar question;恕我直言,解释比下面的答案更清楚。

标签: android virtualization intel-atom


【解决方案1】:

据此article

借助 Google 最近发布的 x86 64 位 Android 5.0 模拟器 图像,开发人员可以为英特尔凌动创建 64 位应用程序 基于处理器的设备。

Android 32 位与 64 位

当今有许多 64 位平台,包括 Solaris、AIX*、HP-UX*、Linux*、 OS X*、BSD 和 IBM z/OS* 使用 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-Bit Android* OS

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

Android is ready for 64-bit processing

从 32 位芯片迁移到 64 位芯片的主要好处之一是 现在主要是理论上的:支持 EB 的 RAM,而不是 不仅仅是千兆字节。但 64 位芯片处理内存的方式也可以 可以提高某些任务的性能。

总结

采用 64 位技术的基于英特尔凌动处理器的平台的 Android 现在可以帮助开发人员优化他们的应用程序。为 64 位构建 Android 应用程序与构建传统的 32 位 Android 应用程序一样简单。您现在可以使用官方的 Android 64 位模拟器来运行和调试 64 位应用程序。

也许这篇文章可以帮助您了解这个系统映像之间的区别。

更新

Google 现在鼓励使用 x86 模拟器,就像您在这张图片中看到的那样

不同之处在于,在使用 x86 映像时,它现在在适当的条件下使用快速、硬件加速的虚拟化 (HAXM),因此感觉不再有中间层。

【讨论】:

  • 您提到了“使用 64 位优化编译器进行编译”的应用程序。那么,如何使用 64 位编译器编译我的应用程序并在 64 位环境中运行时获得优势?
  • @Jorge Casariego 在 AVD 开发过程中我们是否应该使用 intel x86 atom system image 以获得更好的模拟器速度?
  • 但是如果我们不关心目标架构,那么根本的问题是:“Atom_64”仿真器在 64 位 Intel CPU 上运行得更快吗?从你冗长的回答中我不知道。而且您提到“x86”只是令人困惑,因为问题是关于在两个图像之间进行选择,这两个图像都提到了 x86,只是提到了 Atom 和 Atom_64。
  • @ToolmakerSteve 我确实有同样的疑问。我也看到现在每个包都变得非常大,所以选择正确的包是至关重要的,以便在路径中填充不必要的数据
  • 那么您帖子底部的更新是否意味着带有 HAXM 的 Atom 比 Atom_64 更快?
【解决方案2】:

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

我还没有尝试过 64 位,所以我无法对此发表评论。也许其他人可以。

【讨论】:

  • 没有回答这个问题,即在两个不同的“x86”系统映像之间进行选择,其中一个还提到了“atom_64”,另一个提到了“atom”。
【解决方案3】:

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

你也可以在这里查看https://developer.android.com/ndk/guides/x86-64.html 了解更多信息..

【讨论】:

  • 第一句是潜在有用的信息。这个答案的其余部分基本上是混乱的,因为“x86_64”指的是您仿真的设备,而不是您运行模拟器的电脑。底线:选择哪个并不重要,除非您在特定目标架构上测试一些细微的行为差异。
  • @ToolmakerSteve 硬件的模拟方式很重要,特别是主机 cpu 是否可以通过硬件虚拟化技术直接使用。
  • @andho 你能详细说明一下吗?我糊涂了;那么在我的系统上哪个更快/更轻/更容易模拟? x86 或 x86_64
  • @buncis 如果您的 CPU 支持 VT(大多数都支持)并且您在 BIOS 中启用了它并且在操作系统中安装了必要的模块,那么 x86 和 x86_64 应该具有与模拟器指令相似的速度直接在主机 CPU 上运行。如果 VT 不可用,则使用软件仿真。在这种情况下,x86 更快/更轻/更容易,因为模拟 x86 需要比 x86_64 更小的地址空间(例如,64 位注册表与 32 位注册表)。
【解决方案4】:

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

x86 Atom -> 32bit Intel CPU 和 32bit android 模拟

x86 Atom_64 -> 32bit Intel CPU 和 64bit android 模拟

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 2019-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多