23

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

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

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

4

3 回答 3

2

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

于 2016-04-25T11:59:25.290 回答
1

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

12 MB ... 13.5 MB...15 MB ... 想想积聚湿气的云 ... 等等

如果您看到这种模式,则表明您的应用程序存在内存泄漏。

另一种可能性是您没有泄漏,但您只是使用了太多对象或太大的对象,或者您没有足够好地节省对象。考虑到位图非常昂贵,因此在内存和资源有限的环境中处理位图可能不是那么简单。

于 2014-03-04T19:53:21.857 回答