bug项目地址:https://github.com/lzyzsd/AndroidUIPorblems
这次作业是视图优化,首先运行程序之前,在开发者选项中勾选Show GPU Overdraw
1.程序首页如下
出现3X及以上的过度绘制区域有button上面的文本及下面的整个LinearLayout。
两个button的过度绘制是由于整个界面背景及butt...
分类:
其他好文 时间:
2016-04-22 20:07:25
阅读次数:
169
安卓性能优化性能优化的几大考虑
Mobile Context
资源受限
内存,普遍较小,512MB很常见,开发者的机器一般比用户的机器高端
CPU,核心少,运算能力没有全开
GPU,上传大的纹理(texture),overdraw
内存开销大,会导致系统换入换出更频繁,GC更频繁,APP被kill、被重启更频繁,不仅会消耗更多电量,而且GC会消耗大量时间,使得应用程序渲染速度低于60fps(GC耗...
分类:
移动开发 时间:
2016-04-11 12:34:36
阅读次数:
371
什么是Overdraw? Overdraw就是过度绘制,是指在一帧的时间内(16.67ms)像素被绘制了多次,理论上一个像素每次只绘制一次是最优的,但是由于重叠的布局导致一些像素会被多次绘制,而每次绘制都会对应到CPU的一组绘图命令和GPU的一些操作,当这个操作耗时超过16.67ms时,就会出现掉帧 ...
分类:
移动开发 时间:
2016-04-04 19:39:08
阅读次数:
243
Android OverDraw的实践,绘制、背景色、View的关系...
分类:
移动开发 时间:
2015-08-14 11:44:37
阅读次数:
134
大家可以先参考一下这边文章,先发开文章里面提到的overdraw功能,这样你可以看到屏幕的overdraw情况
http://hukai.me/android-performance-render/
由于我们公司奇葩的设计(有一个接近全屏的drawerlayout!!!内容还和drawerlayout下的内容一样!!!只是排版不用!!!),我们的app一直都十分的卡!!!
打...
分类:
移动开发 时间:
2015-07-31 18:36:34
阅读次数:
140
Context:
继续上述文章,我们已经知道了如何收集信息找到OverDraw。现在,我们要如何解决呢?
方法:
背景色:
1.去掉多余的背景色:
在onCreate()方法中加入:getWindow().setBackgroundDrawable(null);
(我这里北京刚开始是不透明opaque)
2.找到底层View的背景色然后去掉。
Clip剪切:
Android的...
分类:
移动开发 时间:
2015-04-22 20:43:39
阅读次数:
233
过度绘制(Overdraw)是指在一帧的时间内像素被绘制了多次;
理论上一个像素每次只绘制一次是最优的,但是由于层叠的布局导致一些像素会被多次绘制,而每次绘制都会对应到CPU的一组绘图命令和GPU的一些操作,所以对重叠不可见元素的重复绘制会产生额外的计算,需要尽量减少Overdraw的发生。...
分类:
移动开发 时间:
2015-04-13 18:55:37
阅读次数:
194