如何确定我的安卓应用程序是否存在内存泄漏?

23

我在互联网、谷歌和stackoverflow上搜寻了很久,但找不到一份全面且简单的指南,可以向我解释如何查找我的android应用程序是否存在内存泄漏。

有人能否向我解释如何做到这一点,甚至给我一个好的指南?

我的应用程序收集有关电池的数据,并将其保存到手机上的数据库中。每当电池发生变化(ACTION_BATTERY_CHANGED)时,我都会检查电池百分比是否发生了变化,如果是,则保存一些数据。

这个应用程序占用了25-30MB的RAM,我认为对于这样一个简单的应用程序来说,这太多了。我怀疑它存在内存泄漏。

3个回答


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

1
一般情况下,如果您使用一个应用程序并且它正在累积内存,比如12MB、13.5MB、15MB等,就像云累积湿度一样......等等。如果您看到这种模式,那么您的应用程序可能存在内存泄漏。另一种可能性是您没有泄漏,但您只是使用了太多对象或太大的对象,或者您没有充分节约对象。请注意,位图非常昂贵,因此在Android中处理位图可能并不那么简单,因为Android是一种内存和资源有限的环境。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接