我知道如何獲取/proc/
中的CPU信息,但有什麼方法可以獲取GPU信息嗎?像CPU一樣?有什麼方法可以獲取GPU信息?
回答
還有就是,你可以通過使用OpenGL GPU獲得信息:
Log.d("GL", "GL_RENDERER = " + gl.glGetString(GL10.GL_RENDERER ));
Log.d("GL", "GL_VENDOR = " + gl.glGetString(GL10.GL_VENDOR ));
Log.d("GL", "GL_VERSION = " + gl.glGetString(GL10.GL_VERSION ));
Log.i("GL", "GL_EXTENSIONS = " + gl.glGetString(GL10.GL_EXTENSIONS));
欲瞭解更多信息,請參閱:https://developer.android.com/guide/topics/graphics/opengl.html
什麼是gl?試圖理解它。裏面gl.glGet ... – 2013-04-04 06:57:52
它在這裏: http://developer.android.com/reference/javax/microedition/khronos/opengles/GL10.html – 2013-04-04 07:04:32
對不起,但是,請你解釋如何在'Activity'中聲明gl? – 2013-04-04 07:23:11
我希望它有用對你有用.. 首先這段代碼檢查設備是否支持GPU還是不支持。
// Check if the system supports OpenGL ES 2.0.
final ActivityManager activityManager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
final ConfigurationInfo configurationInfo = activityManager
.getDeviceConfigurationInfo();
final boolean supportsEs2 = configurationInfo.reqGlEsVersion >= 0x20000;
if (supportsEs2) {
Log.i("JO", "configurationInfo.reqGlEsVersion:"
+ configurationInfo.reqGlEsVersion + "supportsEs2:"
+ supportsEs2);
// Request an OpenGL ES 2.0 compatible context.
myGlsurfaceView.setEGLContextClientVersion(2);
final DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
// Set the renderer to our demo renderer, defined below.
myRenderer = new MyRenderer(this, myGlsurfaceView);
myGlsurfaceView.setRenderer(myRenderer, displayMetrics.density);
myGlsurfaceView.setRenderMode(GLSurfaceView.RENDERMODE_CONTINUOUSLY);
} else {
// This is where you could create an OpenGL ES 1.x compatible
// renderer if you wanted to support both ES 1 and ES 2.
return;
}
第二個:此代碼給GPU信息..
把它放在MyRenderer類裏面這個代碼..
public void determineGraphicSupport(GL10 gl){
int _graphicEngine = GRAPHICS_CANVAS;
String extensions = gl.glGetString(GLES20.GL_EXTENSIONS);
//String version = GLES10.glGetString(GL10.GL_VERSION);
String version = GLES20.glGetString(GLES20.GL_VERSION);
//String renderer = gl.glGetString(GL10.GL_RENDERER);
String renderer = GLES20.glGetString(GLES20.GL_RENDERER);
boolean isSoftwareRenderer = renderer.contains("PixelFlinger");
boolean supportsDrawTexture = extensions.contains("draw_texture");
int[] arGlMaxTextureSize = new int[1];
gl.glGetIntegerv(GLES20.GL_MAX_TEXTURE_SIZE, arGlMaxTextureSize, 0);
if(!isSoftwareRenderer && supportsDrawTexture && _width >= 480 && _height >= 800
&& arGlMaxTextureSize[0] >= 4096)
_graphicEngine = GRAPHICS_OPENGL_DRAW_TEXTURE;
else
_graphicEngine = GRAPHICS_CANVAS;
}
更簡單的辦法: 亞行外殼dumpsys | grep的GLES
這裏是一個SampleActivity讓GPU信息:
public class MainActivity extends Activity implements GLSurfaceView.Renderer{
private TextView textView;
private GLSurfaceView glSurfaceView;
private StringBuilder sb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.textView);
final ActivityManager activityManager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
final ConfigurationInfo configurationInfo = activityManager
.getDeviceConfigurationInfo();
sb=new StringBuilder();
sb.append("GL version:").append(configurationInfo.getGlEsVersion()).append("\n");
textView.setText(sb.toString());
this.glSurfaceView = new GLSurfaceView(this);
this.glSurfaceView.setRenderer(this);
((ViewGroup)textView.getParent()).addView(this.glSurfaceView);
}
@Override
public void onClick(View v) {
}
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
sb.append("RENDERER").append(gl.glGetString(GL10.GL_RENDERER)).append("\n");
sb.append("VENDOR").append(gl.glGetString(GL10.GL_VENDOR)).append("\n");
sb.append("VERSION").append(gl.glGetString(GL10.GL_VERSION)).append("\n");
sb.append("EXTENSIONS").append(gl.glGetString(GL10.GL_EXTENSIONS));
runOnUiThread(new Runnable() {
@Override
public void run() {
textView.setText(sb.toString());
glSurfaceView.setVisibility(View.GONE);
}
});
}
@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
}
@Override
public void onDrawFrame(GL10 gl) {
}
}
獲取GPU信息的完美示例。如何在Android應用程序中包含jar文件的java庫項目中實現相同的功能。 – 2017-07-20 20:15:34
你不能用JAR(Java歸檔)來完成它,因爲它需要Android SDK。您可以將其作爲Android庫模塊(AAR)進行開發。 – Vinay 2017-07-25 08:30:29
- 1. 有什麼方法可以獲得一些信息,至少可以捕獲(...)嗎?
- 2. 方法獲取GPU信息OS或OpenGL API
- 3. 在Linux中獲取GPU信息C
- 4. 什麼時候可以從意圖獲取信息?
- 5. 有什麼方法可以獲取有關com端口對應設備的信息嗎?
- 6. 獲取c信息的好方法是什麼?
- 7. 獲取這些信息的正確方法是什麼?
- 8. 有什麼方法可以獲取網頁查看源內容?
- 9. 有什麼方法可以進行遞歸獲取請求嗎?
- 10. 有什麼方法可以獲取警報框的來源?
- 11. 有什麼方法可以通過box api獲取特定箱子用戶執行的活動信息嗎?
- 12. 有什麼方法可以獲取我朋友現在在Facebook上觀看哪些視頻的信息?
- 13. 有什麼辦法可以獲得tkinter菜單按鈕的信息嗎?
- 14. HTML5:有什麼方法可以顯示輸入字段的錯誤信息?
- 15. 有什麼方法可以監控Windows Phone 7上的電話信息嗎?
- 16. MVC Post方法沒有從get方法獲取任何信息?
- 17. 如何獲取有關NVIDIA GPU的詳細信息?
- 18. 可以從JSON API獲取信息
- 19. 以編程方式獲取Outlook信息
- 20. 有什麼辦法可以與Intel GPU一起使用libgpuarray?
- 21. Android:有什麼方法可以收聽傳出的短信?
- 22. 從AST獲取方法調用信息
- 23. 重寫setter方法,並獲取信息
- 24. 如何獲取方法詳細信息?
- 25. 獲取Enumerable.DefaultIfEmpty的方法信息
- 26. 有什麼方法可以告訴ZeroMQ消息來自哪裏?
- 27. 有什麼方法可以管理onPanResponderMove?
- 28. 有什麼方法可以替代Response.Write?
- 29. 有什麼方法可以定製TDBadgedCell
- 30. 有什麼方法可以跟蹤PDF?
認真你就下來投票不用說什麼? – 2013-04-04 06:54:24