这是我参与「第四届青训营 」笔记创作活动的第8天
该笔记主要是对青训营第七课知识点的简单总结和自己的小思考。
初始性能优化及工具
为什么做性能优化
性能优化带来体验的改善,进而帮助业务指标的提升【能够带给用户更好的体验,如减少丢帧率】
从长远的时间范围来看:
硬件性能提升速度变缓
ARM平台受益于架构和工艺的严谨,最近几年趋势比X86平台好
从更长的实践范围来看:
多核带来的提升取决于可以真正并行执行的部分
未来?
未来会有新的材料和工艺来驱动芯片性能的进一步提升,但是目前还没有成熟
移动处理器还受到电池技术的限制
软件的性能优化仍可持续带来提升
性能优化是什么
快、稳、省【性能即体验】
流畅性优化(快-极致的响应与流畅的体验)
Android的进程包含主线程(UI线程),影响主线程的操作势必会影响性能
界面刷新的绘制动作必须要在16ms内完成
卡顿是如何产生
你的代码导致输入事件无法及时响应
输入事件耗时较长
除绘制任务之外的其他任务耗时过长
如何解决卡顿
将其他耗时代码移动到其他线程,让主线程只为交互(输入、输出)和刷新(UI Drawing)负责
【人的肉眼能感知到不卡顿的最低帧数是25帧】
【如果没有vsync信号会导致画面撕裂的问题(画面不同部分分别显示不同的帧):数据交换的发生点应该是数据渲染完一帧后,而不是CPU写入一帧数据后】
资源优化(省-最小负载带来最大的收益)
资源:即Android手机的软件和硬件资源,通俗意义上应用依赖