Android 应用开发性能优化之UI卡顿

来源:互联网 发布:淘宝e5620电脑才卖1000 编辑:程序博客网 时间:2024/06/08 01:20

Android中UI卡顿的罪魁祸首就是丢帧;那什么是丢帧呢?

在android中把app流畅的帧率规定成60fps,帧率只有在达到60fps或以上时,才认为此应用不会出现我们本文所说的UI卡顿;

补充:由于人眼自身的原因,其实帧率保持在60fps~75fps就足够啦,太大也没什么意义;


下面我们来分析下有哪些操作会导致丢帧呢?

通过换算我们知道:尽量保证每次在16ms内处理完所有的CPU/GPU计算,绘制,渲染等操作,否则会出现丢帧卡顿的现象;


常见造成卡顿原因有以下几点:

1、在UI线程中做了轻微耗时工作,导致UI线程卡顿;

2、布局(Layout)过于复杂,无法在16ms内完成渲染;

3、View过度绘制,导致某些像素在同一帧时间内被多次绘制,造成CPU/GPU负载过重;

4、View频繁触发measures、layout等操作,导致它们累计耗时时间过多及整个VIew的频繁渲染;

5、同一时间内动画执行次数太多,导致CPU/GPU负载过重;

6、频繁触发系统GC操作,导致渲染暂时被阻塞;

7、冗余资源及逻辑导致加载与执行缓慢;

8、ANR;


补充一个常识:虚拟机在执行GC垃圾回收操作时,所有线程(包括 UI线程)都需要暂停,当GC操作完成以后才能够继续执行;

原创粉丝点击