如何将从 Genymotion 下载的 Android 虚拟设备(ova 文件)安装到另一台不是 运行 Genymotion 的机器上的 VirtualBox

how to install Android virtual appliances (ova files) downloaded from Genymotion into VirtualBox on another machine that is not running Genymotion

理论上应该可以。

实践中:

有人知道如何在 VirtualBox 中使这些 Android .ova 虚拟设备 运行 完全独立于任何 Genymotion 安装吗?

为了添加上下文,我的开发环境已经在 VirtualBox 来宾中 OS。 运行 Genymotion 需要我从 VirtualBox 内部 运行 VirtualBox,这是 (a) 一个坏主意,并且 (b) 行不通。如果我可以 运行 来自我主机上 VirualBox 的 Android 图像,那么我可以轻松地在我的开发环境中使用 adb connect <IP of virtualized Android device>:5555 连接到虚拟化 Android 设备和 test/deploy 本机应用程序。我根本不关心是否安装了 Genymotion;我只想能够从他们广泛的 Android 设备图像中挑选。

帮忙?

更新:

这是加载图像时显示挂起启动屏幕的屏幕截图:Custom Phone - 6.0.0 - API 23 - 768x1280

screenshot.png

你想做的事不可能做成你想做的事,4.2以上的设备。

这是一个简短的解释:当您以标准方式启动 Genymotion 设备时,Android OS 是在 VirtualBox VM 内部启动的,但是所有 UI 处理(使用OpenGL) 在 VM 外部完成,以使渲染管道使用计算机的 GPU。使用此硬件加速使 Genymotion 设备相当流畅和快速。

当您直接从 VirtualBox 启动 Genymotion VM 时,OS 将启动但渲染不会进行硬件加速。从 2.3 到 4.2 有一个后备解决方案:渲染将由 VM 内部的 CPU 计算。 从 4.3 开始,软渲染不是一个好的解决方案,因为它会减慢 OS 太多以至于无法接受,这就是我们禁用它并且无法启用它的原因。

为了根据您的开发环境为您提供帮助,您可以尝试这个解决方案,这是一个小技巧但应该有效:

  • 你绝对应该直接使用 Genymotion 启动你的设备
  • 在启动设备之前,您必须按照您所说的将设备更改为使用桥接网络连接。您可以直接使用 Genymotion 设备的设置或命令行工具来完成,这比通过 VBox 软件浏览要快。

命令行如下:

gmtool admin edit <device-name> --network-mode bridge --bridged-if <your-host-interface>

然后你会遇到问题,因为 ADB 连接将由 Genymotion 设备的 window(显示设备的那个)完成。你需要禁用它。可以使用此命令行完成:

gmtool device -n <device-name> adbdisconnect

然后需要获取设备的本地IP。你可以通过运行这个命令得到它:

adb shell "ifconfig | awk '/inet addr/{print substr($2,6)}' | awk 'NR==2'"

然后您可以使用 ADB 从您的 Android 开发环境来宾虚拟机中进行连接:

adb connect <device-ip>

重要说明: 开发工具(尤其是 Android Studio)有时会杀死 ADB 服务器。这将使您失去 ADB 连接,您将不得不重新连接。

另一个注意事项:命令行工具是付费功能的一部分,但考虑到您的设置,您似乎不属于 "free for personal use" 情况。

我希望你能成功,也许会发现我们在 Genymotion 上实现的其他适合你兴趣的好功能。

干杯;-)