如何测试Android应用程序的性能?

Bha*_*war 73 testing performance android

如何在Android中测试应用程序的性能?Android提供的支持是什么?如何使用它?

Dav*_*ebb 96

如果要对应用程序进行概要分析以查找性能瓶颈,可以使用该traceview工具.这为您提供了应用程序性能跟踪的图形视图.

要创建跟踪,请将以下内容添加到要开始跟踪的代码中:

Debug.startMethodTracing("myapp");
Run Code Online (Sandbox Code Playgroud)

然后在要停止跟踪时输入以下内容:

Debug.stopMethodTracing();
Run Code Online (Sandbox Code Playgroud)

这将myapp.trace在SD卡的根目录中创建跟踪文件调用.因为它被写入SD卡:

  • 如果您使用的是模拟器,则需要在AVD中添加SD卡.
  • 您需要通过在Manifest中添加以下内容来授予应用程序写入SD卡的权限:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

创建文件后,您需要将其复制到PC.您可以使用以下adb命令执行此操作:

adb pull /sdcard/myapp.trace c:/my/dir/myapp.trace
Run Code Online (Sandbox Code Playgroud)

最后,开始traceview为它提供跟踪文件的完整路径:

traceview c:/my/dir/myapp.trace
Run Code Online (Sandbox Code Playgroud)

我确实遇到了一些异常traceview失败的问题OutOfMemory.我通过更改最后一行来解决这个问题traceview.bat:

call java -Djava.ext.dirs=%javaextdirs% -Dcom.android.traceview.toolsdir= -jar %jarpath% %*
Run Code Online (Sandbox Code Playgroud)

至:

call java -Xmx1g -Djava.ext.dirs=%javaextdirs% -Dcom.android.traceview.toolsdir= -jar %jarpath% %*
Run Code Online (Sandbox Code Playgroud)

添加-Xmx1g选项允许traceview使用更多内存.


Sam*_*muh 5

同样,从理论上讲,DDMS可以为程序获取内存分配,然后您可以使用探查器分析转储。 DDMS参考。
我在理论上使用斜体字的原因是,我本人还没有尝试执行任何此类操作。