没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
7页
本章介绍android高级开发中,对于性能方面的处理。主要包括电量,视图,内存三个性能方面的知识点。 1.视图性能 (1)Overdraw简介 Overdraw就是过度绘制,是指在一帧的时间内(16.67ms)像素被绘制了多次,理论上一个像素每次只绘制一次是最优的,但是由于重叠的布 局导致一些像素会被多次绘制,而每次绘制都会对应到CPU的一组绘图命令和GPU的一些操作,当这个操作耗时超过16.67ms时,就会出现掉帧现象,表现为应用卡顿,所以对重叠不可见元素的重复绘制会产生额外的开销,需要尽量减少Overdraw的发生。 (2)Overdraw检测 Android提供
资源推荐
资源详情
资源评论
Android高级开发之性能优化典范高级开发之性能优化典范
本章介绍android高级开发中,对于性能方面的处理。主要包括电量,视图,内存三个性能方面的知识点。
1.视图性能视图性能
(1)Overdraw简介简介
Overdraw就是过度绘制,是指在一帧的时间内(16.67ms)像素被绘制了多次,理论上一个像素每次只绘制一次是最优
的,但是由于重叠的布 局导致一些像素会被多次绘制,而每次绘制都会对应到CPU的一组绘图命令和GPU的一些操作,当这
个操作耗时超过16.67ms时,就会出现掉帧现象,表现为应用卡顿,所以对重叠不可见元素的重复绘制会产生额外的开销,需
要尽量减少Overdraw的发生。
(2)Overdraw检测检测
Android提供了测量Overdraw的选项,在开发者选项-调试GPU过度绘制(Show GPU Overdraw),打开选项就可以看到
当前页面Overdraw的状态,就可以观察屏幕的绘制状态。该工具会使用三种不同的颜色绘制屏幕,来指示 overdraw发生在哪
里以及程度如何,其中:
•没有颜色: 意味着没有overdraw。像素只画了一次。
•蓝色: 意味着overdraw 1倍。像素绘制了两次。大片的蓝色还是可以接受的(若整个窗口是蓝色的,可以摆脱一层)。
•绿色: 意味着overdraw 2倍。像素绘制了三次。中等大小的绿色区域是可以接受的但你应该尝试优化、减少它们。
•浅红: 意味着overdraw 3倍。像素绘制了四次,小范围可以接受。
•暗红: 意味着overdraw 4倍。像素绘制了五次或者更多。这是错误的,要修复它们。
提高程序在视图方面的性能, 总的原则就是:尽量避免重叠不可见元素的绘制。
(3)Overdraw改良改良
1)合理选择控件容器
Android提供的Layout控件主要包括 LinearLayout、TableLayout、FrameLayout、RelativeLayout。同一个界面可以使用不
同的容器控件来表达,但是各个容器控件描述界面的复杂度是不一样的。一般来LinearLayout最易,RelativeLayout较复杂。
LinearLayout只能用来描述一个方向上连续排列的控件,而RelativeLayout几乎可以用于描述任意复杂度的界面。。综上所
述: LinearLayout易用,效率高,表达能力有限。RelativeLayout复杂,表达能力强,效率低。从减少overdraw的角度来
看,LinearLayout会增加控件数的层级,自然是RelativeLayout 更优,但是当某一界面在使用LinearLayout并不会比
RelativeLayout带来更多的控件数和控件层级时,LinearLayout则是首选。
2)去掉window的默认背景
当使用Android自带的一些主题时,window会被默认添加一个纯色的背景,这个背景是被DecorView持有的。当自定义布局
资源评论
weixin_38664532
- 粉丝: 9
- 资源: 945
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功