性能优化 2:内存泄露

性能优化:内存泄露

  • 卡顿
  • 工具
    LeakCanary是Square公司为Android开发者提供的一个自动检测内存泄漏的工具

Android手机对应用都有个最大内存使用限制

    // 打印看一下手机跟APP分配的内存信息
    public void getMemoryInfo() {
        StringBuilder sb = new StringBuilder();

        ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
        int memoryMax = am.getMemoryClass();
        int memoryLarge = am.getLargeMemoryClass();

        sb.append("memoryMax:" + memoryMax + " | ");
        sb.append("memoryLarge:" + memoryLarge);
        Log.i("MEMO", sb.toString());
    }
内存泄露常见场景
  1. String拼接采用StringBuilder
  2. 复用系统自带资源
  3. RecycleView的ViewHolder复用
  4. 避免onDraw()方法中执行对象的创建
  5. 避免Activity泄露
  6. 用Application的Context
  7. 注意Cursor对象及时关闭
  8. ArrayMap跟HashMap相比效率高
  9. 图片压缩(鲁班压缩等)
  10. 代码编写规范,避免内存抖动等问题
内存检测

目前内存检测手段

  1. https://developer.android.google.cn/studio/profile/memory-profiler
  2. https://www.jianshu.com/p/8ad323834338
  3. https://www.jianshu.com/p/7cd328fbfd68
  4. https://blog.csdn.net/a_maker/article/details/78958587
  5. https://www.liaohuqiu.net/cn/posts/leak-canary-read-me/
  6. https://blog.csdn.net/Double2hao/article/details/78784758
  7. https://blog.csdn.net/u014651216/article/details/80205113
  8. https://www.imooc.com/u/3771512/articles
  9. 给 App 提速:Android 性能优化总结
  10. Android 优化指南
  11. 10 条提升 Android 性能的建议
  12. 完美解决AppBarLayout的滑动问题
  13. Android之硬件加速
  14. Android 最佳实践之工具
  15. Android性能优化-检测App卡顿
  16. LeakCanary使用详细教程(附Demo)
  17. LeakCanary
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

初心一点

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值