我懵了,面试大厂被熟悉的App启动流程和RecycleView连环三问坑了

本文讨论了RecyclerView与ListView的区别,详细解释了RecyclerView的四级缓存机制及其缓存流程,强调了性能优化策略,包括局部刷新、避免主线程操作、预加载等。此外,还分享了面试准备建议,涵盖了Android架构、源码阅读和面试技巧。
摘要由CSDN通过智能技术生成

和listview区别

  • Recycleview布局效果更多,增加了纵向,表格,瀑布流等效果

  • Recycleview去掉了一些api,比如setEmptyview,onItemClickListener等等,给到用户更多的自定义可能

  • Recycleview去掉了设置头部底部item的功能,专向通过viewholder的不同type实现

  • Recycleview实现了一些局部刷新,比如notifyitemchanged

  • Recycleview自带了一些布局变化的动画效果,也可以通过自定义ItemAnimator类实现自定义动画效果

  • Recycleview缓存机制更全面,增加两级缓存,还支持自定义缓存逻辑

Recycleview有几级缓存,缓存过程?

Recycleview有四级缓存,分别是mAttachedScrap(屏幕内),mCacheViews(屏幕外),mViewCacheExtension(自定义缓存),mRecyclerPool(缓存池)

  • mAttachedScrap(屏幕内),用于屏幕内itemview快速重用,不需要重新createView和bindView

  • mCacheViews(屏幕外),保存最近移出屏幕的ViewHolder,包含数据和position信息,复用时必须是相同位置的ViewHolder才能复用,应用场景在那些需要来回滑动的列表中,当往回滑动时,能直接复用ViewHolder数据,不需要重新bindView。

  • mViewCacheExtension(自定义缓存),不直接使用,需要用户自定义实现,默认不实现。

  • mRecyclerPool(缓存池),当cacheView满了后或者adapter被更换,将cacheView中移出的ViewHolder放到Pool中,放之前会把ViewHolder数据清除掉&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值