Geekband作业13--视图优化

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个这样的操作。

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

时间: 2024-10-14 19:00:30

Geekband作业13--视图优化的相关文章

Android app 性能优化之视图优化

Android app 性能优化之视图优化 前言: 每当一款App开始快速扩展的时候,随着业务功能的越来越复杂,功能模块的越来越多总会引起这样那样的性能问题.交互不流畅卡顿,ANR,手机发热量大等等性能问题在Android开发中一直都是一个坑爹的存在.不是大家不想去优化,可能是等你发现开始要搞搞性能的时候,发现工程貌似好大了,能跑不崩就万事大吉了,那么多代码要去看,去改.真心是一个让人想想都糟心的事.也可能,关键点不好找,可能一个性能问题是别的你想都想不到的地方引起的,为了优化这么一个点,可能花

浅谈iOS中的视图优化

引言: 让我们来思考几个问题,你开发过的产品,它还有可以优化的地方吗?能增加它的帧率吗?能减少多余的CPU计算吗?是不是存在多余的GPU渲染?业务这点工作量对于越来越强大的设备面前显得微不足道,但作为一个细心的开发者,我觉得很有必要来谈谈iOS中的视图优化. 本文从开发者最容易犯错的地方出发,结合例子,从以下几个角度阐述如何进行视图优化: Color Blended Layers Color Copied Images Color Misaligned Images Color Offscree

唯快不破:Web 应用的 13 个优化步骤

时过境迁,Web 应用比以往任何时候都更具交互性.搞定性能可以帮助你极大地改善终端用户的体验.阅读以下的技巧并学以致用,看看哪些可以用来改善延迟,渲染时间以及整体性能吧! 更快的 Web 应用 优化 Web 应用是一项费劲的工作.Web 应用不仅处于客户端和服务器端的两部分组件当中,通常来说也是由多种多样的技术栈构建而成:数据库,后端组件(一般也是搭建在不同技术架构之上的),以及前端(HTML + JavaScript + CSS + 转译器).运行时也是变化多端的:iOS,Android,Ch

唯快不破:提升Web 应用的 13 个优化

时过境迁,Web 应用比以往任何时候都更具交互性.搞定性能可以帮助你极大地改善终端用户的体验.阅读以下的技巧并学以致用,看看哪些可以用来改善延迟,渲染时间以及整体性能吧! 更快的 Web 应用 优化 Web 应用是一项费劲的工作.Web 应用不仅处于客户端和服务器端的两部分组件当中,通常来说也是由多种多样的技术栈构建而成:数据库,后端组件(一般也是搭建在不同技术架构之上的),以及前端(HTML + JavaScript + CSS + 转译器).运行时也是变化多端的:iOS,Android,Ch

麦子学院android开发之Android应用开发视图优化步骤

1)View优化 i.   减少不必要的View以及View的嵌套层次. 比如实现一个listview中常用的layout,可以使用RelativeLayout减少嵌套,要知道每个View的对象会耗费1~2k内存,嵌套层次过多会引起频繁的gc,造成ANR. ii.   通过HierarchyViewer查看布局结构 利用HierarchyViewer来查看View的结构:~/tools/hierarchyviewer,能很清楚地看到RelativeLayout下面的扁平结构,这样能加快dom的渲

作业流程和优化

MapReduce作业读取文件 Map任务数量由InputSplit决定,InputSplit分片大小默认是HDFS块大小(hadoop1.x=64mb,hadoop2.x是128mb).例如:        MapReduce作业读取HDFS上(hadoop2.x)两个文件,一个是200MB,一个是100MB,这时候就有3个InputSplit,每个InputSplit会起一个Mapper任务读取,通过    RecordReader转换为key,value提供Mapper函数使用 MapRe

论mysql5.7.13性能优化之索引优化

防伪码:吾日三省吾身 一.MySQL 性能优化之-影响性能的因素 1. 商业需求的影响 不合理需求造成资源投入产出比过低,这里我们就用一个看上去很简单的功能来分析一下. 需求:一个论坛帖子总量的统计,附加要求:实时更新 从功能上来看非常容易实现,执行一条 SELECT COUNT(*) from 表名的 Query 就可以得到结 果.但是,如果我们采用不是 MyISAM 存储引擎,而是使用的 Innodb 的存储引擎,那么大 家可以试想一下,如果存放帖子的表中已经有上千万的帖子的时候,执行这条

东北大学 16春学期《实用写作》在线作业1-3 答案

16春学期<实用写作>在线作业1 1 B 2 D 3 B 4 A 5 A 6 D 7 A 8 A 9 C 10 B 11 C 12 B 13 B 14 B 15 C BBABB 16春学期<实用写作>在线作业2 1 B 2 B 3 B 4 B 5 D 6 A 7 D 8 B 9 C 10 A 11 D 12 A 13 B 14 D 15 D 16春学期<实用写作>在线作业3 ABBAA 1 C 2 B 3 A 4 D 5 B 6 B 7 C 8 D 9 C 10 A 1

第4周作业:WordCount优化

Github地址: https://github.com/SkateCloud/wcPro 1:分析整理需求,完成PSP表格 PSP2.1 PSP阶段 预估耗时(分钟) 实际耗时(分钟) >Planning 计划 5 6 Estimate 估计任务耗时 5 6 >Development 开发 40 50 Analysis 需求分析(包括学习新技术) 5 5 Design 具体设计 5 5 Coding 具体编码 10 20 Test 测试(自我测试,修改代码,提交修改) 20 20 >