2016-03-30 2 views
0

Я хотел бы измерить FPS (частоту обновления) определенного Android View, который использует TextureView. Для этого мне нужно каким-то образом измерить FPS программно (например, не использовать ADB.exe и не использовать сторонние приложения или инструменты).Android, как измерять FPS вида или приложения программно

Я видел this question, но он не отвечает, где регистрировать время кадра.

Есть ли API в Android, чтобы получить событие, когда экран обновляется или составлен? Используя это, было бы относительно просто измерить время кадра и, следовательно, вычислить FPS.

Тот же вопрос для использования ЦП. Любые или все API для оценки эффективности!

+1

Рассмотрите эту библиотеку: https://github.com/friendlyrobotnyc/TinyDancer – chRyNaN

ответ

2

Ну, это выглядит как TinyDancer может делать то, что вы хотите:

//you can add a callback to get frame times and the calculated 
//number of dropped frames within that window 
TinyDancer.create() 
    .addFrameDataCallback(new FrameDataCallback() { 
     @Override 
     public void doFrame(long previousFrameNS, long currentFrameNS, int droppedFrames) { 
      //collect your stats here 
     } 
     }) 
     .show(this); 
} 

Если вам нужно знать, использование процессора, вы всегда можете использовать top. Smth так:

[email protected]:/data # top -n 1 -s cpu 

User 28%, System 29%, IOW 0%, IRQ 0% 
User 189 + Nice 162 + Sys 355 + Idle 509 + IOW 0 + IRQ 0 + SIRQ 2 = 1217 

    PID PR CPU% S #THR  VSS  RSS PCY UID  Name 
31096 0 20% S 20 463368K 78884K fg u0_i77 com.android.chrome:sandboxed_process0 
29042 1 11% S 54 451036K 84876K fg u0_a10 com.android.chrome 
    130 2 9% S 25 79228K 37136K fg system /system/bin/surfaceflinger 
... 
... 
... 

Вызов системных команд из приложения Android is not difficult.

+0

Превосходно! Спасибо. Я дам ему попробовать –

Смежные вопросы