如何testingAndroid应用程序的性能?

我如何testingAndroid应用程序的性能? Android提供的支持是什么,我该如何使用它?

如果你想分析你的应用程序来查找性能瓶颈,你可以使用traceview工具 。 这为您提供了应用程序性能跟踪的graphics视图。

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

 Debug.startMethodTracing("myapp"); 

然后当你想停止跟踪时,放置以下内容:

 Debug.stopMethodTracing(); 

这将在SD卡的根目录中创build一个跟踪文件调用myapp.trace 。 正如它被写入SD卡:

  • 如果您使用模拟器,则需要将SD卡添加到AVD 。
  • 您需要通过将以下内容添加到您的清单中来为您提供应用程序写入SD卡的权限:

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

文件创build完成后,您需要将其复制到PC上。 您可以使用adb命令执行此操作:

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

最后,启动traceviewtraceview提供跟踪文件的完整path

 traceview c:/my/dir/myapp.trace 

我确实遇到了traceview失败和OutOfMemoryexception的问题。 我通过将traceview.bat的最后一行从:

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

至:

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

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

另外,从理论上讲 ,DDMS可以为你的程序获得内存分配,然后你可以使用分析器分析转储。 DDMS参考。
我在理论上用斜体表示的原因是我自己还没有尝试过这样做。

我觉得traceView包含了太多的信息,你很容易迷路。

我的解决scheme只是在代码中的三个地方login系统时间。

之前和之后,在大家慢的代码中心。

像二进制search,下一步,逐步缩小,最后find罪魁祸首的代码。

你可以使用负载运行。

使用这个链接find更多的邻接它。

http://www.perftesting.co.uk/recording-and-performance-testing-android-applications-with-hp-loadrunner-vugen/2011/11/14/

要遵循的步骤是:

  1. 创build新的VuGen脚本
  2. select移动应用程序-HTTP / HTML
  3. 录制选项 – >select录制模拟器
  4. logging模拟器的path为D:\ android \ AVD Manager.exe
  5. 在命令行-avd AVD_NAME -netspeed full -netdelay none其中AVD_Name是你的名字Device
  6. select工作目录
  7. 点击完成

现在你可以执行你的testing了。

另一种testing方法是在Load Runner上使用TruClient

移动网站要遵循的步骤是:

  1. 新的VuGen脚本
  2. 移动协议
  3. selectTruClient Mobile Web
  4. 点击创build
  5. 现在你可以生成脚本
  6. 点击发展脚本button
  7. 出现PoP向上窗口select设备
  8. select操作,您可以logging脚本

本地移动应遵循的步骤是:

  1. 新的VuGen脚本
  2. 移动协议
  3. selectTruClient原生移动
  4. 点击创build
  5. 现在你可以生成脚本
  6. 点击开发脚本
  7. 出现用Firefox插入的TruClient窗口
  8. 点击常规设置
  9. configurationSERVER URL PORT
  10. 如果你不知道服务器URL端口意味着在你的设备上安装OS MONITOR应用程序。 在这里你可以findIP地址
  11. input用户名和密码
  12. 点击完成

你可以logging脚本并执行你的testing….