androidperformancetesting

How to test the performance of an Android application?


How can I test an application for performance in Android? What is the support provided in Android and how do I use it?


Solution

  • If you want to profile your application to find performance bottlenecks you can use the traceview tool. This gives you a graphical view of performance traces of your application.

    To create a trace add the following to your code where you want to start tracing:

    Debug.startMethodTracing("myapp");
    

    and then put the following when you want to stop tracing:

    Debug.stopMethodTracing();
    

    This will create a trace file call myapp.trace in the root directory of the SD Card. As it is written to the SD Card:

    Once the file has been created you'll need to copy it to your PC. You can do this using the adb command:

    adb pull /sdcard/myapp.trace c:/my/dir/myapp.trace
    

    Finally, start traceview giving it the full path to the trace file:

    traceview c:/my/dir/myapp.trace
    

    I did have some problems with traceview failing with OutOfMemory exceptions. I fixed this on Windows by changing the last line of traceview.bat from:

    call java -Djava.ext.dirs=%javaextdirs% -Dcom.android.traceview.toolsdir= -jar %jarpath% %*
    

    to:

    call java -Xmx1g -Djava.ext.dirs=%javaextdirs% -Dcom.android.traceview.toolsdir= -jar %jarpath% %*
    

    Adding the -Xmx1g option allows traceview to use more memory.