本项目是一个基于微信朋友圈 UI 的性能测试平台,旨在研究 Android 滑动性能和功耗表现。项目包含三个主要模块,分别用于不同方面的测试和研究。
Read this in English
本项目包含三个主要模块:
原始的高性能微信朋友圈实现,来自 fork 的项目。这个模块展示了如何高效实现类似微信朋友圈的滑动列表,包含多种性能优化技巧。
专门设计用于测试和比较不同负载下的滑动性能表现。包含三种负载模式:
- 轻负载测试: 每帧计算量小,滑动流畅度高
- 中等负载测试: 每帧计算量中等,滑动有一定压力
- 高负载测试: 每帧计算量大,滑动压力重
该模块在关键代码处添加了 Trace 点,方便使用 Perfetto 等工具进行性能分析和优化。
专门设计用于测试不同滑动实现方案对设备功耗的影响。可用于研究优化策略对电池寿命的影响。
在 Android 中,要避免列表卡顿,主要从以下几个角度进行优化:
- 减少布局层级,避免过多的 Item View 的无用布局嵌套
- 滑动时控制图片加载,停止滑动后再加载图片
- 避免在 Adapter 填充数据时做过多计算,复杂计算应在数据准备阶段完成
- 在数据 Bean 中完成数据变换操作,如将 String 转换为 SpannableStringBuilder
- 减少 onMeasure() 和 onLayout() 的调用次数
- 实现 View 对象的缓存,减少 View 的创建
- 运行
app模块查看原始的高性能朋友圈实现 - 运行
wechatfriendforperformance模块进行性能测试:- 选择不同的负载级别
- 使用 Perfetto 或其他性能分析工具收集数据
- 分析 Trace 结果进行性能优化
- 运行
wechatfriendforpower模块测试功耗表现
感谢原项目作者 KCrason 的杰出工作和 razerdp 提供的 View 缓存思路。本项目在原有基础上进行了扩展,增加了专门的性能和功耗测试模块。
未来可能会继续更新该项目,包括但不限于:
- 添加更多性能测试指标
- 改进功耗测试精度
- 实现表情匹配
- 实现电话号码匹配等功能
欢迎 Star 和贡献!



