Android客户端青训营课程(第七课)笔记|青训营笔记

141 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第8天
该笔记主要是对青训营第七课知识点的简单总结和自己的小思考。

初始性能优化及工具

为什么做性能优化

性能优化带来体验的改善,进而帮助业务指标的提升【能够带给用户更好的体验,如减少丢帧率】

从长远的时间范围来看:
硬件性能提升速度变缓
ARM平台受益于架构和工艺的严谨,最近几年趋势比X86平台好

从更长的实践范围来看:
多核带来的提升取决于可以真正并行执行的部分

未来?
未来会有新的材料和工艺来驱动芯片性能的进一步提升,但是目前还没有成熟
移动处理器还受到电池技术的限制
软件的性能优化仍可持续带来提升

性能优化是什么

快、稳、省【性能即体验】

流畅性优化(快-极致的响应与流畅的体验)

Android的进程包含主线程(UI线程),影响主线程的操作势必会影响性能
界面刷新的绘制动作必须要在16ms内完成

卡顿是如何产生
你的代码导致输入事件无法及时响应
输入事件耗时较长
除绘制任务之外的其他任务耗时过长

如何解决卡顿
将其他耗时代码移动到其他线程,让主线程只为交互(输入、输出)和刷新(UI Drawing)负责

【人的肉眼能感知到不卡顿的最低帧数是25帧】
【如果没有vsync信号会导致画面撕裂的问题(画面不同部分分别显示不同的帧):数据交换的发生点应该是数据渲染完一帧后,而不是CPU写入一帧数据后】

资源优化(省-最小负载带来最大的收益)

资源:即Android手机的软件和硬件资源,通俗意义上应用依赖

稳定性优化(稳-稳定的实现,减少不必要打断)

系统级优化(扩展-底层booster)

最佳性能工具选型

如何做性能优化