我最近安装了 Bluestacks Android 模拟器。我碰巧看到在 ProcessExplorer 下运行的进程,惊讶地发现它是一个 .NET 应用程序。

这HD-Frontend.exe是 Bluestacks UI 进程,并以黄色突出显示,因为它已加载 .NET 框架。还有许多与 Bluestacks 相关的其他进程,并且大多数也是 .NET。
在 Reflector.NET 中打开 EXE 也显示它是 .NET。

我认为 Android 是基于 Java 的。这里发生了什么?
我最近安装了 Bluestacks Android 模拟器。我碰巧看到在 ProcessExplorer 下运行的进程,惊讶地发现它是一个 .NET 应用程序。

这HD-Frontend.exe是 Bluestacks UI 进程,并以黄色突出显示,因为它已加载 .NET 框架。还有许多与 Bluestacks 相关的其他进程,并且大多数也是 .NET。
在 Reflector.NET 中打开 EXE 也显示它是 .NET。

我认为 Android 是基于 Java 的。这里发生了什么?
Android 是基于 Java 的,但这并不意味着 Android 模拟器必须用 Java 编写——只是在功能上模拟 Android 设备。
虽然BlueStack 的网站没有列出我能找到的模拟器的任何系统要求,但至少有几个网站——例如Bazooka Apps和Android Emulator for PC——提到了 .NET 作为要求。
最终,正在发生的事情的证据就在您找到的流程列表和 Reflector 结果中。
它是一个仿真工具,其工作是读取 dex 代码响应 android 手机应如何响应,而不是编译和运行该 dex,因此它可以在 python 或 ruby 上,也没有你必须制作 android 的界限java上的模拟器,因为android是建立在java之上的。