我需要在我的Android SDK中以编程方式获取GPU信息(包括供应商、渲染器、版本、可用扩展等)。到目前为止,我知道这些方法。
1.运行dumpsys | grep GLES command
(不起作用,因为dumpsys
是系统级命令,仅适用于某些系统应用程序或ADB shell)
1.创建一个GLSurfaceView
,附加一个GLSurfaceView.Renderer
,并在其回调中获取GPU信息(工作正常,但我想知道是否有一种方法可以在不创建GLSurfaceView
的情况下实现这一点,因为我不想在SDK中修改主机应用的视图层次结构)
1条答案
按热度按时间q3aa05251#
看一看Grafika项目。
其中有
GLESInfoActivity
,它演示了如何获取您要查找的信息。函数
gatherGlInfo()
包含您需要的代码,它声明:我们需要一个GL上下文来检查,这意味着我们需要一个EGL表面。创建一个1x1pbuffer。
此
EGLSurface
是从GLES20
类获取信息(OpenGLES信息)所必需的。如果您只需要EGL14
类的信息(EGL信息),则不需要此表面。但是,鉴于您的问题,您将需要GLES20
类的信息,因此需要EGLSurface
。在您的情况下,复制此方法并使用屏幕外表面就足够了,这样就不需要使用
GLSurfaceView
。您还需要
gles
软件包中的一些代码来设置和配置EGL
。