如何确定我的Android应用程序是否有内存泄漏?

时间:2012-06-16 15:52:33

标签: android memory-management

我查看了整个互联网\ goolge \ stackoverflow,找不到完整而简单的指南,可以向我解释如何找到我的Android应用程序是否有内存泄漏。 任何人都可以向我解释如何做到这一点,或者更好地给我一个很好的指导吗?

我的应用收集有关电池的数据并将其保存到手机上的数据库中。 每次更换电池时(ACTION_BATTERY_CHANGED),我都会检查电池的百分比是否发生变化,在这种情况下我会保存一些数据。

这个应用需要(25-30)MB RAM我认为这对于这样简单的app来说太过分了。我怀疑它有内存泄漏。

3 个答案:

答案 0 :(得分:23)

答案 1 :(得分:2)

当我遇到与你相同的问题时,我找到了 LeakCanary 。它有助于在调试版本的运行时检测内存泄漏,并为堆栈跟踪历史记录提供舒适的UI。在这里,您可以阅读有关此工具的更多信息,以便检测内存泄漏以及其他一些有关Android开发的有用提示:http://cases.azoft.com/4-must-know-tools-for-effective-android-development/。 希望它适合您和其他移动开发人员!

答案 2 :(得分:1)

通常,如果您使用应用程序并且正在累积内存

12 MB ... 13.5 MB ... 15 MB ...想想积累湿度的云......等等

如果您看到此模式,则表明您的应用内存泄漏。

另一种可能性是你没有泄漏,但你只是使用太多的物体或太大的物体,或者你不能很好地节省物品。 考虑到位图是非常昂贵的,因此处理位图在android中可能不是那么微不足道,这是内存和资源有限的环境。