如何将从Genymotion下载的Android虚拟设备(ova文件)安装到另一台未运行Genymotion

时间:2016-08-21 00:54:57

标签: android virtualbox avd genymotion

从理论上讲,它应该起作用。

  • 从机器#1复制:%LOCALAPPDATA%\Genymobile\Genymotion\ova\xxx.ova
  • 在机器#2上安装到VirtualBox:File -> Import Appliance..
  • 更改网络设置:
    • 更新"适配器1" => Bridged, Intel PRO/1000 MT Desktop
    • 禁用"适配器2"
  • 启动..

在实践中:

  • Android的早期版本可以正常运行,但比起KitKat更新的版本只是在启动时挂起
  • 挂起的某些版本似乎正在运行init.d脚本,导致循环重复创建并终止新进程

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

要添加上下文,我的开发环境已经在VirtualBox来宾操作系统中。要运行Genymotion,我需要从VirtualBox内部运行VirtualBox,这是(a)一个坏主意,(b)不能工作。如果我可以在我的主机上运行VirualBox的Android图像,那么我可以轻松地在我的开发环境中使用adb connect <IP of virtualized Android device>:5555连接到虚拟化的Android设备并测试/部署本机应用程序。我一点也不关心安装Genymotion;我只希望能够从他们广泛选择的Android设备图片中进行选择。

帮助?

更新

这是一个屏幕截图,显示加载图片时悬挂的启动屏幕:Custom Phone - 6.0.0 - API 23 - 768x1280

screenshot.png

1 个答案:

答案 0 :(得分:2)

如果想要这样做,你想做的事情是不可能的,设备高于4.2。

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

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

为了帮助您根据您的开发环境,您可以尝试这个小型黑客但应该工作的解决方案:

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

这是命令行:

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

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

gmtool device -n <device-name> adbdisconnect

然后您需要获取设备的本地IP。您可以通过运行此命令来获取它:

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

然后,您可以在Android dev环境来宾VM中使用ADB进行连接:

adb connect <device-ip>

重要提示:开发工具(特别是Android Studio)有时会杀死ADB服务器。这将使您松开ADB连接,您将不得不重新连接。

另一个注意事项:命令行工具是付费功能的一部分,但考虑到您的设置,似乎您不在免费供个人使用&#34;情况下。

我希望你能成功,也许会发现我们在Genymotion上实现的其他不错的功能,这些功能将满足您的兴趣。

干杯; - )