问题
How can an android application developer test FPS (Frames per second) for their application? I'm talking about general application, not game.
It can be on emulator or phone.
I've been looking for this but have not found a way. It would be great, if any developer can shed light on this.
回答1:
As mention by Guykun and kcoppock, if you are only using the View widgets or Canvas you normally don't look for FPS to determine visual performance.
As you don't mention what you are doing other than 'not a game' you may want to review how Android does drawing.
http://developer.android.com/guide/topics/graphics/2d-graphics.html
Most of the performance issues come from doing stuff on the UI thread. Use Strict Mode for finding problems.
http://android-developers.blogspot.com/2010/12/new-gingerbread-api-strictmode.html
Also use the tools to find performance hot spots:
http://developer.android.com/guide/developing/debugging/debugging-tracing.html
http://developer.android.com/guide/developing/debugging/debugging-ui.html
[Edit August 2017: Google has improved the training documentation regarding performance]
https://developer.android.com/training/best-performance.html
And if you want more details of what's going on under the hood see the Google IO session on what they did for Hardware Accelerated Rendering
http://www.youtube.com/watch?v=v9S5EO7CLjo
[Post Google IO 2012 Update]
For Jelly Bean, Google has done additional work on UI performance. See the Google IO 2012 session:
http://www.youtube.com/watch?v=Q8m9sHdyXnE
回答2:
You can use TinyDancer
For details please review my answer here
回答3:
There are apps available in the marketplace that can measure FPS of other games. Please try GameBench for instance and it can show you the FPS.
[Disclaimer]: I am one of the founders of GameBench.
回答4:
I have used GameBench for FPS Analysis of an android application(it is not a game, I wanted to check the FPS when an animation of my app starts running). GameBench captures key frame rate (FPS) metrics, which are the best objective indicator of the fluidity of a UX.
My requirement was to verify the FPS to be 30FPS when an animation of my android application starts.
I have verified the following with the Graph report provided by the GameBench tool,
- When the animation starts, the FPS moved from 0 FPS to 30FPS.
- When the animation ends the FPS moved from 30FPS to 0 FPS
See screenshot.
To use this tool, you have to install an android application and a desktop launcher.
- Install the GameBench application in your android device.
- Register to GameBench using an email address and install the desktop application.
- Download and install the GameBench Desktop Launcher.
- Connect the device with the desktop. You may receive a pop-up on your device asking you to allow USB Debugging
- In the GameBench Android app, you can select the app(which I already installed on the tablet) for the analysis.
- Then you can record the Frame per seconds and generate the report(its available in web dashboard too, the FPS,screenshot, performance,battery etc).
Reference:
- https://play.google.com/store/apps/details?id=com.gamebench.metricscollector
- https://www.gamebench.net/
- https://docs.gamebench.net/web-dashboard/getting-started
As a side note,
I have used FPS Meter app also, but it seems inaccurate in my case. Got 29FPS to 31 FPS when my animation in the android application starts. Expected FPS is 30FPS.
https://play.google.com/store/apps/details?id=com.ftpie.fpsmeter&hl=en
来源:https://stackoverflow.com/questions/10983486/fps-testing-in-android-application