为什么需要推迟视图初始化
这里谈谈为什么要推迟视图的初始化. 假设这样一个情况, 如果手机的界面包含大量的视图组件,而且数据大多都来源于服务器. 这就意味着一进入这个界面,应用就会在onCreate()方法中去初始化为数不少的layout资源, 而初始化View是一个比较耗时耗资源的操作. 然后, 应用进行几个网络链接,去获取数据回来更新填充View中的各个组件. 这样算起来, 用户从进入某个A...
分类:
移动开发 时间:
2015-04-27 09:51:02
阅读次数:
1227
Context:
继续上述文章,我们已经知道了如何收集信息找到OverDraw。现在,我们要如何解决呢?
方法:
背景色:
1.去掉多余的背景色:
在onCreate()方法中加入:getWindow().setBackgroundDrawable(null);
(我这里北京刚开始是不透明opaque)
2.找到底层View的背景色然后去掉。
Clip剪切:
Android的...
分类:
移动开发 时间:
2015-04-22 20:43:39
阅读次数:
233
Context:
我自己写下Google关于Android性能优化的视频课程的翻译,第一节课,讲述硬件和软件的知识。我连载这翻一下吧
Lesson1:Render(渲染)
1.Android设备通常16ms 更新下Activity,具体取决于手机硬件。这意味着你要在16ms内处理你所有的绘画逻辑。如果你错过了这个16ms,页面不会绘制,这就叫做 dr...
分类:
移动开发 时间:
2015-04-22 09:37:55
阅读次数:
162
一.Android相关1. 采用硬件加速,在androidmanifest.xml中application添加android:hardwareAccelerated="true"。不过这个需要在android 3.0才可以使用。android4.0这个选项是默认开启的。2. View中设置缓存属性....
分类:
移动开发 时间:
2015-04-19 19:18:11
阅读次数:
224
Emmagee app性能测试工具使用教程by:授客QQ:1033553122简介Emmagee是网易杭州研究院QA团队开发的一个简单易上手的Android性能监测小工具,主要用于监控单个App的CPU,内存,流量,启动耗时,电量,电流等性能状态的变化,且用户可自定义配置监控的频率以及性能的实时显示...
分类:
移动开发 时间:
2015-04-15 10:52:13
阅读次数:
2022
Android 性能测试工具- Emmagee:http://www.oschina.net/p/emmagee 和?http://www.oschina.net/news/55476/emmagee-2-0-released Android性能测试工具APT:http://code.csdn.net/news/2819366...
分类:
移动开发 时间:
2015-04-14 18:14:17
阅读次数:
142
过度绘制(Overdraw)是指在一帧的时间内像素被绘制了多次;
理论上一个像素每次只绘制一次是最优的,但是由于层叠的布局导致一些像素会被多次绘制,而每次绘制都会对应到CPU的一组绘图命令和GPU的一些操作,所以对重叠不可见元素的重复绘制会产生额外的计算,需要尽量减少Overdraw的发生。...
分类:
移动开发 时间:
2015-04-13 18:55:37
阅读次数:
194
前面唠叨 最近公司app中有些列表在滑动的时候会有卡顿现象,我就开始着手解决这些问题,解决问题之前首先要分析列表滑动的性能瓶颈在什么地方。因为之前不会正确使用TraceView这个工具,主要是看不懂TraceView界面下方数据指标的值代表什么意思…以前我用StopWatch类来分析性能,现在觉得弱...
分类:
移动开发 时间:
2015-04-13 16:19:37
阅读次数:
163
Android开发者选项中提供了Profile GPU Rendering功能,用于在屏幕上实时显示GPU渲染每一帧图像花费的时间(单位:ms)。渲染时间用柱状图表示,上面的绿线代表16ms,也就是要尽量保证所有柱状图都在这条线下方。每一条柱状图都由3部分组成,蓝色、红色和黄色,代表渲染的3个不同的阶段,通过分析这三个阶段的时间就可以找到渲染时的性能瓶颈。...
分类:
移动开发 时间:
2015-04-12 13:25:35
阅读次数:
276
概念
VSYNC,vertical synchronization
Refresh Rate 屏幕一秒钟刷新的次数,由硬件决定,单位Hz,一般是60Hz
Frame Rate GPU在一秒内绘制的帧数,单位fps(Frames per second)
具体解释GPU获取图形数据进行绘制,硬件将绘制好的数据呈现在屏幕上,为了使画面在屏幕上流畅的显示,需要保持Frame Rate 在60以上,也就是一次...
分类:
移动开发 时间:
2015-04-11 20:55:37
阅读次数:
186