Android 基础技术——列表卡顿问题如何分析解决

笔者希望做一个系列,整理 Android 基础技术,本章是关于列表卡顿问题如何分析解决

onBindViewHolder 优化

是否有耗时操作、重复创建对象、设置监听器、findViewByID、局部的动画对象等操作

是否存在内存泄漏

发生内存泄露,会导致一些不再使用到的对象没有及时释放,这些对象占用了宝贵的内存空间,很容易导致后续需要分配内存的时候,内存空间不足而出现OOM(内存溢出)。 无用对象占据的内存空间越多,那么可用的空闲空间也就越少,GC就会更容易被触发,GC进行时会停止其他线程的工作,因此有可能会造成界面卡顿等情况。

列表滑动图片加载优化

滑动过程中图片不加载、列表滑动停止才加载

      if (newState == RecyclerView.SCROLL_STATE_IDLE) {
          Glide.with(this).resumeRequests();
        } else {
          Glide.with(this).pauseRequests();
        }

是否存在过度绘制、布局是否过于复杂

查看是否有不必要的背景设置

为什么开启了硬件加速会不卡顿

是否开启了硬件加速

硬件加速利用了设备的GPU来执行绘制操作,相比于软件绘制,它具有更高的性能和效率。开启硬件加速后,列表滑动时绘制操作就会交由GPU来处理,减少了CPU的负担,从而提升了滑动的流畅性,避免了卡顿现象的发生。硬件加速能够更快地完成绘制操作,并且能够更好地应对复杂布局和过度绘制等问题,提供更好的用户体验。

分析工具方法

Debug.startMethodTracing和 Debug.stopMethodTracing TraceView 能抓到当前方法以及当前方法的所有递归子方法耗时

Android Profile CPU Java/Kotlin Method Sample

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值