关于图形加速方面优化的心得
2014-05-02 15:02
211 查看
最近开发2D动画效果,出现了明显的卡顿,帧率上不去。做了一系列的优化,总结下
切换到硬件加速的2D图形能够有效改善性能但是依然要通过以下推荐的方式来设计应用程序以便有效的使用GPU
1. 减少应用程序中View对象的数量 系统绘制越多的View对象就会越慢。这种情况也适用于软件呈现管道。减少View对象的有效方法之一就是优化UI。
2. 避免过度绘图 在彼此的顶部不要绘制太多的层。因为删除View时要同时删除遮盖在该View对象之上所有其他的不透明的View对象。如果需要绘制几个图层要尽量在上面采用合成模式考虑把它们合并成一个层。一个好的规则是每帧的像素数不要大于屏幕上像素数的2.5倍以位图的透明点阵数来计算。
3. 不要在绘图方法中创建呈现对象 一个常见的错误时每次调用呈现方法时创建一个新的Paint对象或Path对象。这样就会强制频繁的运行垃圾回收并且会绕过硬件管道中的缓存和优化。
4. 不要经常的编辑形状 对于复杂的形状如路径和圆是使用纹理掩码来呈现的。每次创建或修改路径硬件通道都要创建一个新的掩码这样会消耗大量的资。
http://developer.android.com/guide/topics/graphics/hardware-accel.html
切换到硬件加速的2D图形能够有效改善性能但是依然要通过以下推荐的方式来设计应用程序以便有效的使用GPU
1. 减少应用程序中View对象的数量 系统绘制越多的View对象就会越慢。这种情况也适用于软件呈现管道。减少View对象的有效方法之一就是优化UI。
2. 避免过度绘图 在彼此的顶部不要绘制太多的层。因为删除View时要同时删除遮盖在该View对象之上所有其他的不透明的View对象。如果需要绘制几个图层要尽量在上面采用合成模式考虑把它们合并成一个层。一个好的规则是每帧的像素数不要大于屏幕上像素数的2.5倍以位图的透明点阵数来计算。
3. 不要在绘图方法中创建呈现对象 一个常见的错误时每次调用呈现方法时创建一个新的Paint对象或Path对象。这样就会强制频繁的运行垃圾回收并且会绕过硬件管道中的缓存和优化。
4. 不要经常的编辑形状 对于复杂的形状如路径和圆是使用纹理掩码来呈现的。每次创建或修改路径硬件通道都要创建一个新的掩码这样会消耗大量的资。
http://developer.android.com/guide/topics/graphics/hardware-accel.html
相关文章推荐
- 关于优化性能<主要是速度方面>的个人心得 【转】
- 关于php方面的优化
- 关于android开发方面的性能优化
- Unity--关于优化方面的那些事儿(一)
- 关于SQL优化的一点心得
- 关于Teradata数据库优化的一些个人心得
- 关于mysql 一些优化心得
- SGD的几种优化加速模型动态图形显示
- Flash 平台技术的优化(十一) 关于性能方面的其他优化
- 关于BaseAdapter的使用及优化心得
- [Swift]iOS开发:关于图形渲染以及界面优化的的一些想法
- 准备写一个关于android图形图像方面的专题
- 关于加速和优化网页设计的文档收集
- 关于Oracle数据库的性能优化心得
- 关于Unity图形渲染的性能优化
- unity性能优化之模型与图形方面
- 关于学术论文撰写投稿方面的心得体会
- 关于Db.Search效率方面的几点心得
- 【mysql】关于硬件方面的一些优化
- CN上没有关于IBM的Initiate的文章,由于最近在做这方面的工作,分享下Initiate的开发心得~