文章目录
前言
Android的性能优化是一个持续的过程,以发现问题、解决问题或者是组织Code Review为推动力去实施。性能优化涉及到的方面很多,比如启动优化、卡顿优化、内存优化、界面布局优化、稳定性优化、耗电优化、安装包大小优化等等。性能优化是每个开发者都需要关注的功课,本文从界面布局优化做一个总结。
在查阅大量相关资料后,对界面优化的在此做个总结。本文会介绍一下卡顿产生原因、什么是过度绘制和渲染机制,然后介绍如何定位问题和解决问题,最后会总结出在实际开发过程中的使用建议。如有不足之处,欢迎提出宝贵建议。
一、卡顿原因
一个App的用户体验好不好,是否流畅不卡顿是一个很直观的感受。导致Android卡顿场景的原因有很多,比如界面绘制、应用启动、页面跳转、事件响应等等。
这几种卡顿场景的根本原因可以分为两大类:
- 界面绘制。主要原因是绘制的层级深、页面复杂、刷新不合理,由于这些原因导致卡顿的场景更多出现在 UI 和启动后的初始界面以及跳转到页面的绘制上。
- 数据处理。导致这种卡顿场景的原因是数据处理量太大,一般分为三种情况,一是数据在处理 UI 线程,二是数据处理占用 CPU 高,导致主线程拿不到时间片,三是内存增加导致 GC 频繁,从而引起卡顿。