码迷,mamicode.com
首页 > 其他好文 > 详细

Geekband作业13--视图优化

时间:2016-04-22 20:07:25      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

bug项目地址:https://github.com/lzyzsd/AndroidUIPorblems


这次作业是视图优化,首先运行程序之前,在开发者选项中勾选Show GPU Overdraw


1.程序首页如下

技术分享

技术分享技术分享

出现3X及以上的过度绘制区域有button上面的文本及下面的整个LinearLayout。

两个button的过度绘制是由于整个界面背景及button默认背景的叠加,这个是合理的需求,所以不改。

下面的LinearLayout背景和界面背景一样,可以删去,效果如下。

技术分享技术分享

技术分享

2.打开OVERDRAWVIEW界面

技术分享技术分享

技术分享

画了四个矩形,第一个铺满整个界面,第二个从界面高度1/4处画到最下面,第三个和第四个分别从1/3和1/2处往下画。因此界面越往下过度绘制的程度越高。

改为只绘制每个矩形的可见部分,效果如下:

技术分享技术分享

技术分享

3.打开BUSYONDRAW

技术分享技术分享

没有严重的过度绘制的问题。

本来想用Profile GPU Rendering来查看的,奈何电脑性能太差,模拟机的操作都挺卡的,看不出效果,只能在真机上操作,结果显示跳转有点卡顿。

查看代码发现在自定义控件的onDraw方法中有一个循环1k的System.out.println操作,加上加载的自定义控件有30个,相当于在UI线程中做了3W个这样的操作。

于是删除该后台输出操作,重新运行,页面跳转流畅。

技术分享

Geekband作业13--视图优化

标签:

原文地址:http://blog.csdn.net/ruby_yhy/article/details/51213258

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!