暂时未有相关云产品技术能力~
移动端领域 Bug 贡献者
上一篇介绍了如何高效地量化绘制性能,并对 RecyclerView 加载速度做了 2 次优化,使得表项加载耗时从 370 ms 缩减到 288 ms。这一篇继续介绍后续的 2 种优化手段
RecyclerView 出场率很高。它的加载性能影响着用户体检。本篇分享一次完整的 RecyclerView 性能优化过程:从用工具定位问题,再不断尝试各种优化方案,最终达成 50% 的性能优化。
缓存是 RecyclerView 时间性能优越的重要原因。缓存池是所有缓存中速度最慢的。这一篇从源码出发,探究哪些情况下表项会被缓存到缓存池。
又一道关于 RecyclerView 面试题:“RecyclerView 滚动时,新表项是如何一个个被填充进来的?旧表项是如何一个个被回收的?”这篇以走读源码的方式,解答这个问题。
RecyclerView 表项动画的属性值是怎么获取的,又存储在哪里?这一篇继续通过 走查源码 的方式解答这个疑问。
RecyclerView 缓存之一的 scrap 结构中存的是什么?为什么要 scrap 缓存?pre-layout 及 post-layout 过程中 scrap 缓存内容如何变化?读源码来解答。
RecyclerView 表项动画是怎么实现的?RecyclerView 在做表项动画时会布局几次?pre-layout 是什么意思?一起来读一读源码,对这些问题追根溯源。
如何让列表加载分页数据过程无感知。一种实现方案是预加载,即在一页数据还未看完时就请求下一页数据。这一篇介绍一个超简单的预加载实现方案。
每次数据变化都全量刷新整个列表是很奢侈的,不仅整个列表会闪烁一下,而且所有可见表项都会重新绑定一遍数据。这一篇对 DiffUtil 进行二次封装以让其更易于使用。
上篇介绍了一种新的监听 RecyclerView 表项点击事件的方法。实现了将点击事件和RecyclerView.Adapter解耦。这一篇介绍如何监听 RecyclerView 表项子控件点击事件。
RecyclerView没有提供表项点击事件监听器,只能自己处理。这一篇介绍一种更加解耦,更易于使用的表项点击事件监听方法。
RecyclerView 缓存机制是面试中的常客。上一篇文章讲述了“从哪里获得回收的表项”,这一篇会结合实际回收场景分析下“回收哪些表项?”。
RecyclerView 内存性能优越,这得益于它独特的缓存机制,这一篇以走读源码的方式探究 RecyclerView 的缓存机制。