3

从终端运行以下命令时:

亚行外壳转储系统 | grep GLES

输出是:

GLES:高通、Adreno (TM) 330、OpenGL ES 3.0 V@53.0 AU@ (CL@)

但是,以编程方式运行时我无法获得输出。

String GPUModel = "";
String command = "adb shell dumpsys | grep GLES";

try {

    InputStream inputStream = Runtime.getRuntime()
                                         .exec(command)
                                         .getInputStream();

    InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
    BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

    GPUModel = bufferedReader.readLine();

} catch (IOException e) {
        e.printStackTrace();
}

GPUModel 为空。

4

2 回答 2

1

您应该使用glGetString获取 GPU 类型:

String renderer = GLES20.glGetString(GLES20.GL_RENDERER);

但是,如果您需要检查 GPU 的某些功能,最好不要检查 GPU 名称,而是检查是否有必要的 GL 扩展可用。您可以通过请求检索所有这些GL_EXTENSIONS

String extensions = GLES20.glGetString(GLES20.GL_EXTENSIONS);
于 2015-04-21T09:30:34.120 回答
1

您无法dumpsys从您的应用程序运行该命令。它需要 DUMP 权限,仅授予系统应用程序和使用与系统相同的密钥签名的应用程序。

于 2015-04-20T19:30:17.050 回答