赞
踩
内存大小:峰值越低越好,需要优化前后做对比
内存泄漏:需要用工具检查对比优化前后
3、功耗
先来看看造成应用UI卡顿的常见原因都有哪些?
1、人为在UI线程中做轻微耗时操作,导致UI线程卡顿;
2、布局Layout过于复杂,无法在16ms内完成渲染;
3、同一时间动画执行的次数过多,导致CPU或GPU负载过重;
4、View过度绘制,导致某些像素在同一帧时间内被绘制多次,从而使CPU或GPU负载过重;
5、View频繁的触发measure、layout,导致measure、layout累计耗时过多及整个View频繁的重新渲染;
6、内存频繁触发GC过多(同一帧中频繁创建内存),导致暂时阻塞渲染操作;
7、冗余资源及逻辑等导致加载和执行缓慢;
8、臭名昭著的ANR;
大多数用户感知到的卡顿等性能问题的最主要根源都是因为渲染性能。(Google官方说的)
Android系统每隔16ms发出VSYNC信号(vertical synchronization --场扫描同步,场同步,垂直同步),触发对UI进行渲染,如果每次渲染都成功,这样就能够达到流畅的画面所需要的60fps,为了能够实现60fps,这意味着程序的大多数操作都必须在16ms(1000/60=16.67ms)内完成。
如果你的某个操作花费时间是24ms,系统在得到VSYNC信号的时候就无法进行正常渲染,这样就发生了丢帧现象。那么用户在32ms内看到的会是同一帧画面。
1、过度绘制
Overdraw(过度绘制)描述的是屏幕上的某个像素在同一帧的时间内被绘制了多次。
在多层次的UI结构里面,如果不可见的UI也在做绘制的操作,这就会导致某些像素区域被绘制了多次。
这就浪费大量的CPU以及GPU资源,找出界面滑动不流畅、界面启动速度慢、手机发热。
设置 — 开发中选项 — 调试GPU过度绘制
每个颜色的说明如下:
原色:没有过度绘制
紫色:1 次过度绘制
绿色:2 次过度绘制
粉色:3 次过度绘制
红色:4 次及以上过度绘制
造成过度优化的关键是什么?多余的背景(Background)
接下来举例说明:
1、MainTabActivity
在MainTabActivity的Theme中修改背景
去除布局(main_activity_linerlayout.xml)中的background
如果不给当前Activity设置主题,默认主题是什么,默认主题背景是什么?
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。