Android OpenGL ES 2.0 模拟器

Posted

技术标签:

【中文标题】Android OpenGL ES 2.0 模拟器【英文标题】:Android OpenGL ES 2.0 emulator 【发布时间】:2012-02-14 23:53:09 【问题描述】:

我有一台支持 OpenGL ES 2.0 (HTC Desire) 的设备,当然,在设备上部署应用程序的速度要比在模拟器上快得多。默认的android模拟器不支持2.0,androidX86项目和类似的androbox项目不支持本机代码(NDK),所以即使Hello-Jni在它们上面崩溃(所有样本在标准AVD上都可以正常工作,除了Hello-GL2样本ofc),不知道是否支持 OpenGL ES 2.0,请告诉我。

那么,如果有支持 OpenGL 2.0 的原生方式 (NDK) 开发 - 如何在没有设备的情况下测试应用程序?

【问题讨论】:

不能在设备上测试一下吗?我不认为我真的必须使用模拟器。 好吧,但我不是单独的开发者,至少还有一个人,他还没有任何 Android 设备。如果我刚刚弄坏了我的设备,我应该怎么做?好吧,购买新的/维修的东西是好的,但总有一些选择。 @JamesMcLaughlin 仅当您实际拥有设备时才可以选择。 @Jashaszun 如果你不这样做并且你成功地开发和发布了一个应用程序,我向你致敬。 @JamesMcLaughlin 这正是我希望做的,因为我买不起安卓手机。 :) 【参考方案1】:

模拟器现在支持 OpenGL: http://android-developers.blogspot.com/2012/04/faster-emulator-with-better-hardware.html

确保在创建 avd 时添加 GPU 仿真硬件属性并将其设置为 yes(根据下面的链接):

http://developer.android.com/tools/devices/emulator.html

【讨论】:

我可以确认这一点。默认情况下不启用,您必须自己启用它。然后,您可以运行 NDK 附带的示例“hello-gl2”来验证您是否愿意。 @Flynn81 我无法确认这一点。根本不适合我的。我在我的个人资料上发布了一个未回答的类似问题,处理常见的 open gl 2 android 错误(nullpointerexception),如果您知道更多信息,请查看【参考方案2】:

更新:正如 *** 用户所说,android 模拟器现在支持 OpenGL ES 2.0(2017 年 2 月)

https://sites.google.com/a/android.com/tools/recent/androidemulatorrevision2530feb2017


正如 Google 自己所说,在 Android 官方文档中,Android 模拟器尚不支持 OpenGL ES 2.0 功能。

请参考这个官方文档。

http://developer.android.com/resources/tutorials/opengl/opengl-es20.html

我希望这能回答你的问题。

对于 OpenGLles20 模拟器,您可以使用 GenyMotion www.genymotion.com/

【讨论】:

嗯,我明白这一点 - 阅读我的第一篇文章,询问是否存在某种支持 OpenGL ES 和本机代码的替代模拟器。 根据我用 OpenGL ES 2.0 进行大约 1 年深度 NDK 开发的卑微经验,不,没有办法。 :( 最好的方法是在设备上进行测试,即使模拟器支持着色器,它也会以一种有效的方式运行缓慢。 现在不再是这种情况了,使用 adt 17 及更高版本以及 4.0.3 rev 3 sdk,您可以创建支持 OpenGL 的 AVD。 来自那个链接Note: Be careful not to mix OpenGL ES 1.x API calls with OpenGL ES 2.0 methods! The two APIs are not interchangeable and trying to use them together only results in frustration and sadness.lol 这个答案现在已经过时了。模拟器支持open gl 2.0。 sites.google.com/a/android.com/tools/recent/…【参考方案3】:

截至 2017 年 2 月,模拟器 25.3.0 完全支持 OpenGL 2.0。

https://sites.google.com/a/android.com/tools/recent/androidemulatorrevision2530feb2017

完全符合 GLES 2.0。给定一个具有符合桌面 OpenGL 驱动程序的主机 GPU,模拟器现在可以通过 100% 的 CTS dEQP-GLES2 必须通过。

稳定后,假设它没有严重的错误,你应该可以用它进行测试。

【讨论】:

【参考方案4】:

您可以使用当前发布的基于英特尔的模拟器。只需更新您的 sdk,您也可以在模拟器上运行 open gl 应用程序。

【讨论】:

你能提供更多关于你的评论的细节吗? 如果您遇到问题,可以参考此链接***.com/questions/10761696/… 有一个适用于 Android 的 Intel 模拟器? :O 不错

以上是关于Android OpenGL ES 2.0 模拟器的主要内容,如果未能解决你的问题,请参考以下文章

如何在Android上将OpenGL ES 1.0代码转换为OpenGL Es 2.0?

如何在Android上使用OpenGL ES 2.0绘制点

Android openGL ES 2.0里Surfaceview背景透明

Android:了解 OnDrawFrame、FPS 和 VSync (OpenGL ES 2.0)

Android设备上的OpenGL ES 2.0扩展[关闭]

Android Opengl ES 2.0 FrameBuffer 不工作