gpt4 book ai didi

android - 我的 Android 应用程序泄漏,我应该检查什么?

转载 作者:行者123 更新时间:2023-11-30 04:09:09 25 4
gpt4 key购买 nike

我的 Android 应用程序泄漏,我应该检查什么?

我看了avoiding memory leaks并且我在 Activity 的 onDestroy() 方法中添加了一些 unbindDrawables() 调用以进行清理,但没有任何改变。我还用 getApplicationContext() 替换了每个 getContext() 调用,但也没有任何改变。

我在 DDMS eclipse 透视图中监控堆大小:当我第一次启动应用程序时,分配了 3Mb,在 10 次关闭/重新启动后分配了 10Mb。

我的 View 主要由 ViewFlippers 和许多继承自 LinearLayout 的子类的嵌套布局组成。

编辑:

运行 MAT 识别泄漏嫌疑人后,主要问题是:

16 instances of "org.apache.http.impl.conn.tsccm.ConnPoolByRoute", 
loaded by "<system class loader>" occupy 4,000,328 (44.08%) bytes.

最佳答案

如果您到处都在使用 getApplicationContext() 那么您肯定在泄漏内存!这通常是个坏主意。您需要在适当的地方使用适当的上下文。

进行堆转储,使用分析器(如 MAT 或 jhat)并查看不应该存在的实例(应该被销毁的 Activity )。跟踪引用链并找出它们没有被回收的原因。

关于android - 我的 Android 应用程序泄漏,我应该检查什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11103049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com