Recientemente, investigué cómo obtener el FPS de las aplicaciones de Android.
Finalmente, todos los métodos utilizan “dumpsys SurfaceFlinger –latency ” para obtener el valor de FPS.
Pero como una aplicación de tercera parte como GameBench, en realidad no tiene permiso para acceder al método de volcado de Surfaceflinger
if ((uid! = AID_SHELL) &&
! PermissionCache :: checkPermission (sDump, pid, uid)) {
result.appendFormat (“Denegación de permiso:”
“no se puede volcar SurfaceFlinger desde pid =% d, uid =% d \ n”, pid, uid);
} más {..}
- ¿Por qué Apple no ofrece una PC para juegos con tarjetas NVIDIA SLI duales?
- ¿Qué características / mecanismos de juego / etc. hacen que una computadora / videojuego sea difícil de dominar?
- ¿Deberían los videojuegos convertirse en películas?
- ¿Cuáles son los elementos más básicos que constituyen un juego de computadora?
- ¿Por qué se considera Call of Duty 4: Modern Warfare el mejor CoD de todos los tiempos?
¡¿Cómo GameBench obtuvo el FPS? !!
1. ejecutar cliente de escritorio
En este paso, el cliente de escritorio empujará gen.sh y gbhelperdaemon a / data / local / tmp /. luego ejecuta el gbhelperdaemon.
el gbhelperdaemon es pertenecer shell, por lo que puede ejecutar “dumpsys SurfaceFlinger –latency ” para obtener fps
2. ejecuta la aplicación GameBench
En este paso, la aplicación conectará el socket creado en gbhelperdaemon y obtuvo el valor fps de gbhelperdaemon
GameBench FPS 获取 猜想