App内存泄漏问题


一、Java内存泄漏

1、主要原因Activity(静态引用)、Dialog在onDestroy时没有被dismiss等。
2、分析工具:
MAT产生的hrof文件查看引用链,断掉就OK。
AOP在onCreate、onDestroy、finalize埋点。在onDestory被调用后,运行GC,然后,如果finalize很长时间没有被调用就有内在泄漏了。
3、解决方案:
Context->Application
PackageManager管理Task,防止Activity被遗忘在栈底部。
Activity不用了以后,立即调用finish销毁。


二、C内存泄漏
1、主要原因:Bitmap没有回收、Webkit占用的资源、SQLite在内存中的缓存
2、分析工具:
Native Heap(DDMS工具隐藏自带)
3、解决方案:
针对Bitmap建议内存池。Activity.onStop时,把图片释放,Activity.onStart时,getView重新被调用时再读回来。
当Webview所在的Activity.onStop时,调用freeMemory。
减少SQLite的使用,或者单独进程建立ContentProvider。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值