首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

施用硬件加速的注意事项

2013-07-08 
使用硬件加速的注意事项为提高app的整体性能,在manifest文件中配置的时候,有可能会启动硬件加速,如下andro

使用硬件加速的注意事项

为提高app的整体性能,在manifest文件中配置的时候,有可能会启动硬件加速,如下

android:hardwareAccelerated="true"

?

配置后,发现设备在4.0.4与4.0.3这样的版本上使用图片剪裁功能的时候会crash,捕获到的异常信息如下

java.lang.UnsupportedOperationException at android.view.GLES20Canvas.clipPath(GLES20Canvas.java:429)

?

查询代码发现,在图片剪裁的时候有使用到Canvas.clipPath(path, Region.Op.DIFFERENCE);这个函数

作为Canvas的一个实现类GLES20Canvas,在使用硬件加速的时候会被使用到。

查询GLES20Canvas的源代码,发现在4.0.4与4.0.3这两个版本中,clipPath的实现均为如下代码

public boolean clipPath(Path path, Region.Op op) {         throw new UnsupportedOperationException(); }

?直到4.1.1这个版本,sdk中的才进行了具体的实现

@Overridepublic boolean clipPath(Path path, Region.Op op) {         // TODO: Implement         path.computeBounds(mPathBounds, true);        return nClipRect(mRenderer, mPathBounds.left, mPathBounds.top,                mPathBounds.right, mPathBounds.bottom, op.nativeInt);     }

?也就是说,在使用Canvas.clipPath的时候必须要特别注意如果app要使用硬件加速,应该把涉及clipPath的Activity排除在外,配置方法是:

在manifest中activity的配置处配置android:hardwareAccelerated ="false"

热点排行