8

试图弄清楚应用程序在为 ARM 编译时如何在 VMWare 中的 Android x86 上运行。GUI 是否在 Qemu 上运行?如果 Android x86 真的是 x86,它们究竟如何运行?

4

4 回答 4

8

英特尔发布了一个库('libhoudini'),可将 arm 指令转换为 x86。然后它们在 x86 CPU 上执行。

于 2014-02-18T08:52:17.913 回答
5

首先,Android 应用程序(纯 Java)实际上并没有“为 ARM 编译”,就像 Java 应用程序被编译成中间Java 字节码以供任何支持 JVM 的平台执行一样,用 Java 编写的 Android 应用程序被编译成Dalvik字节码可以在任何支持 Dalvik VM 的平台上运行。在这方面,Android 应用程序如何运行 x86 或 ARM 或 MIPS 类似于 Java 应用程序如何在 x86、SPARC、POWER 等上运行。

当然,如果应用程序包含本机代码,则该应用程序需要包含对 x86 的支持,才能在 x86 模拟器或实际的 x86 手机/平板电脑上运行。

至于你问题的第二部分,请记住 Android 的操作系统部分已编译到 x86 平台,所以我假设在 x86 计算机上运行 x86 Android 与在 VM 中运行 Windows 时完全相同。使用 OSX。

于 2013-08-09T13:01:18.250 回答
4

当应用程序包含 ARM 本机代码时,Android x86 fork “AndroVM”(官方网站已不存在,有人已在此处镜像文件)进行了 ARM 仿真。

据我所知,Android x86的正式版不做ARM仿真;使用本机 ARM 代码的应用程序立即崩溃。

Genymotion (AndroVM sequel) 默认不模拟 ARM。不过,有一个非官方的 hack可以添加 ARM 仿真。

于 2013-11-22T11:25:48.510 回答
4

如果您之前因为您的应用依赖于 ARM 二进制文件而无法使用 Android 模拟器,那么您现在可以使用 Android 9 x86 系统映像或任何 Android 11 系统映像来运行您的应用。有关更多详细信息,请参阅Android 9 和 11 系统映像上的 ARM 二进制文件支持

于 2020-04-01T07:41:58.210 回答