2016-03-30 26 views
0

我想測量某個使用TextureView的Android視圖的FPS(刷新率)。爲此,我需要一些以編程方式測量FPS的方法(例如,不使用ADB.exe而不使用第三方應用程序或工具)。我看過this question但它不回答在哪裏記錄幀時間。Android如何以編程方式測量視圖或應用程序的FPS

在屏幕刷新或組成時,Android中是否有API來獲取事件?使用它可以相對簡單地測量幀時間,從而計算出FPS。

CPU使用率相同的問題。任何或所有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); 
} 

如果你需要知道的CPU使用率,你可以隨時使用top。水木清華這樣的:從Android應用is not difficult

[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 
... 
... 
... 

調用系統命令。

+0

棒極了!謝謝。我會試一下 –

相關問題