1、GPU 耗时导致卡顿:
造成 GPU 耗时原因与画面的绘制有关,比如界面存在严重的过度绘制,绘制高清大图等,通常与 UI View 的这些绘制方法相关,如 draw(),onDraw(),dispatchDraw() 等。
——建议减少不合理的 UI 布局,视图过多,层次过深的问题,避免耗费 UI 线程去做更多的测量、布局、响应时间。在这方面,阅读的表现还算不错。
2、CPU 的耗时导致卡顿:
主要是由于 UI 线程有耗时较久的操作,比如处理大图片、进行耗时的 IPC 通信等,自然会拖长 UI 线程处理的时间,导致无法在 16.6ms 内处理完相关逻辑,进而导致了界面刷新滞后,给人带来的直接感受就是连续的动画过程发生了卡屏的现象。
——主线程只做与 UI 相关的事情,其它耗时长的操作异步处理
3、GC 导致卡顿:
如果发生内存抖动或短时间申请大内存等情况,会引发 GC,导致主线程停止,从而发生卡顿。
——减少临时对象的使用,减小 Bitmap 对象的内存占用,使用更小的资源图片
ConstraintLayout 最大化减少布局层次结构,极大减少布局和测量的次数,提高性能,所以布局尽量使用ConstraintLayout来做,可以改良APP性能。
https://juejin.im/entry/59b63f26f265da064d345791
https://www.jianshu.com/p/b9bd08ffe921
工具:
https://cloud.tencent.com/developer/article/1156121