Android硬件加速注意事项

关于APP使用硬件加速的注意事项:

1.硬件加速Android一直有,不过3.0之后才引入了全面的硬件加速

2.硬件加速显著的缺点就是会带来4倍的内存占用

3.GPU是流畅度的一大瓶颈

4.好的优化必须谨慎配置cpu和gpu在ui渲染中的比重来缓解渲染压力,节省内存

5.分辨率将给流畅性带来巨大压力,这会由多窗口机制成倍放大

6.单个app的ui渲染不支持并行运算,多核无法带来提升,所以我们的四核其实跑时是单核

关于应用的设计注意事项:

1.应用Layout布局优化

2.合理使用图片资源

3.UI线程中一定不要做耗时操作。

 

最佳实践

通常应用程序使用硬件加速2D图形可以立即增强表现,但是并不是所有应用程序的View都适合使用硬件加速,因为如果需要使用请通过如下的建议来设计应用程序使其更有效率的使用GPU。

1、 减少你程序中使用View的数量

  你系统中画的view的数量越多,你的程序就会越慢,在软件绘制的流程也是一样的,减少view的数量是优化你UI的一个最简单的方法。

2、 避免过多绘制

  不要过多的叠加层,当一个View被其他view完全遮挡住了的话,最好把被遮挡的view移除掉。如果你需要绘制不同的层做一个叠加效果的话,考虑把这些层合并为一个层。就现在的硬件来看,有一个好的经验就是动画的每帧不要绘制多余屏幕像素2.5倍的像素数量(bimap中的透明像素也计算在内)。

3、 不要在绘制的方法中创建绘制对象

  一个常见的错误就是当绘制方法被调用的时候,每次都要创建一个新的Paint或者Path。这将迫使垃圾回收器过于频繁的运行,这将对缓冲和硬件的绘制造成影响。

4、 不要过于频繁的修改形状

  以复杂的shapes,path和旋转为例,这些绘制都会用到纹理的遮罩。每当你创建或者修改一个path,硬件渲染过程都会创建一个新的遮罩,这耗费的代价是相当大的。

5、 不要过于频繁的修改bitmap

  每当修改一次bitmap的内容,当你下次再绘制它的时候都会以GPU的纹理形式上传一次。

6、 要小心使用alpha通道

  当你使用setAlpha ,AlphaAnimation或者ObjectAnimator设置一个View的透明效果时。它将需要2倍离屏的渲染缓冲填充率,当应用一个alpha到一个大的View上的时候,考虑设置view 层的类型为LAYER_TYPE_HARDWARE。

猜你喜欢

转载自vvlavida.iteye.com/blog/1955324