【问题标题】:GPU Version, Renderer, Vendor in AndroidAndroid 中的 GPU 版本、渲染器、供应商
【发布时间】:2015-08-10 18:04:21
【问题描述】:

我想查找 GPU 供应商、它的版本和渲染器。 我用过这段代码:-

 renderer = GLES10.glGetString(GL10.GL_RENDERER);           
 vendor = GLES10.glGetString(GL10.GL_VENDOR);
 version = GLES10.glGetString(GL10.GL_VERSION);

适用于 Android 4.3 及更高版本,但当我在 Android 2.3.6 上运行此代码时,它返回 null。

但是,检查以下代码检查返回“2.0”和 2.3.6 的 GPUVersion:-

final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();               
    GPUVersion = configurationInfo.getGlEsVersion();

但上面 3 行仍然返回 null。

有什么方法可以获取所有设备的上述信息。

【问题讨论】:

    标签: android version gpu renderer vendor


    【解决方案1】:

    有时,跨不同 Android 版本获取值的唯一方法是根据您运行的版本拆分方法。您可以执行以下操作:

    public static String getGlVersion(Context ctx) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
            ActivityManager am = (ActivityManager) ctx.getSystemService(Context.ACTIVITY_SERVICE);
            ConfigurationInfo configurationInfo = am.getDeviceConfigurationInfo();               
            return configurationInfo.getGlEsVersion();
        } else {
            return GLES10.glGetString(GLES10.GL_VERSION);
        }
    }
    

    但请注意,这可能不适用于 所有 版本,您可能需要将该方法拆分为更多案例或更改用于比较的最小 SDK_INT(我怀疑例如蜂窝它已经需要第一种方法,但没有测试过)。

    【讨论】:

    • 我试过 GLES10.glGetString(GLES10.GL_VERSION), GLES20.glGetString(GLES20.GL_VERSION), GLES10.glGetString(GLES20.GL_VERSION), GLES20.glGetString(GL10.GL_VERSION), GLES10.glGetString (GL10.GL_VERSION),我已经尝试过 GLES10.glGetString(GLES10.GL_VERSION)、GLES20.glGetString(GLES20.GL_VERSION)、GL10.glGetString(GLES20.GL_VERSION) 和其他几个 GL ES 2.0,但它总是返回 null。跨度>
    • 在您的原始帖子中,您暗示它对您有用。如果不是这样,请在问题中说清楚。
    • configurationInfo.getGlEsVersion();只是一张支票,它正在返回正确的信息。即 GL 的版本。仍然是 GLES20.glGetString(GLES20.GL_VERSION),为 2.3.6 返回 null。
    猜你喜欢
    • 2013-08-29
    • 2011-12-16
    • 2016-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-15
    相关资源
    最近更新 更多