创建新的AVD,检查快照和使用主机GPU

时间:2014-04-06 03:49:27

标签: android android-emulator

我设法create an AVD,但我无法检查SnapshotUse Host GPU。两者有什么好处?为什么我不能同时使用这两个? Vogella tells me这两个方法都加快了流程的不同部分,所以我觉得它们都应该能够被使用。

enter image description here

1 个答案:

答案 0 :(得分:2)

我认为你不能;我的AVD经理明确禁止它:

enter image description here

来自Android: why snapshots and gpu are mutually exclusive?

  

Android模拟器基于QEMU,它必须模拟在真实手机上运行的Android所能找到的各种硬件设备。特别是它模拟了一种名为“金鱼”的神话般的手机。

     

保存快照时,必须将设备RAM保存在快照中。但是,这并不仅仅意味着主RAM - 它还指的是手机硬件的所有其他小部分 - 例如CPU寄存器,实时时钟硬件的状态以及任何/所有寄存器这部虚拟电话中的其他所有硬件。

     

如果你没有启用GPU,那么图形硬件状态相当简单 - 它将是一个帧缓冲区,还有一些代表x维,y维和像素格式的寄存器。

     

但是,如果您已启用GPU直通,则保存该硬件的状态会复杂得多。 QEMU必须保存每个纹理的状态,设置的摄像机,几何图形以及保存在GPU中的其他更多东西。流向GPU的命令流也必须在任意点被中断,并且记录那些命令的执行状态(很难,因为可能已经部分地执行了多级流水线和一些指令)。

     

此外,qemu实际上可能很难获得这些信息,因为qemu只是将它传递给主机GPU。 qemu没办法向主机GPU驱动程序询问已经执行了什么以及没有执行什么操作。至少,这需要主机操作系统和GPU驱动程序的支持,甚至可能需要更改GPU管道以简化管道,以便可以在任意点停止和重新启动管道。