6

我是安卓新手。标准的 Java 内存和性能分析工具可以与 Android 一起使用吗?

例如,我们可以创建一个 heapdump 文件并分析 Android 应用程序吗?或者使用 Eclipse TPTP 来分析内存/性能?

如果无法为此目的使用标准 Java 工具,那么是否有任何 Android 专用工具用于内存和性能分析?

4

4 回答 4

6

如果您使用 Eclipse,DDMS 应该可以帮助您完成大部分所需的工作。

DDMS - 跟踪对象的内存分配

DDMS 提供了一个功能来跟踪正在分配给内存的对象并查看哪些类和线程正在分配这些对象。当您在应用程序中执行某些操作时,这允许您实时跟踪分配对象的位置。此信息对于评估可能影响应用程序性能的内存使用很有价值。

跟踪对象的内存分配:

在“设备”选项卡中,选择要为其启用分配跟踪的进程。在 Allocation Tracker 选项卡中,单击 Start Tracking 按钮开始分配跟踪。此时,您在应用程序中所做的任何事情都将被跟踪。单击获取分配以查看自单击开始跟踪按钮以来已分配的对象列表。您可以再次单击获取分配以将已分配的新对象附加到列表中。要停止跟踪或清除数据并重新开始,请单击停止跟踪按钮。单击列表中的特定行可查看更详细的信息,例如分配对象的代码的方法和行号。

于 2012-07-16T13:05:03.157 回答
2

JProfiler可以直接读取 Android 堆转储,无需将它们转换为 JSE 格式。

免责声明:我公司开发 JProfiler。

于 2012-07-17T08:04:55.300 回答
1

市场上有现有的性能分析工具。

通用工具,例如 SystemPanel 应用程序 - https://play.google.com/store/apps/details?id=nextapp.systempanel.r1&hl=en。它列出了CPU、内存和网络等性能。

专业工具,例如 TaskSpy - https://play.google.com/store/apps/details?id=com.skstudio.tooldelux。它列出了系统范围的性能,并使您能够分析一个特定的运行进程。真正有用的是它使您能够从远程 PC/mac/linux 计算机上查看性能,而目标测试应用程序仍然可以在您的手机/平板电脑上运行 - 它是无中断的。

于 2012-07-17T05:14:13.833 回答
0

无法直接使用标准 Java 工具。但是,如果我们从 Android 应用程序创建 Heapdump,并将其转换为 Java SE HPROF 格式后,我们可以使用 Eclipse 内存分析器来分析内存。

http://android-developers.blogspot.fr/2011/03/memory-analysis-for-android.html

于 2012-07-17T05:26:50.963 回答