美文网首页
Android之关闭硬件加速

Android之关闭硬件加速

作者: Godikov | 来源:发表于2020-01-16 09:07 被阅读0次

从Android3.0(Api 11)开始支持硬件加速。

所有的View的canvas都会占用GPU,但是硬件加速则会占用一定的RAM。

在API >= 14时,默认是开启硬件加速的。如果全局都使用标准的View和Drawable,则不会有任何问题。

但是,硬件加速不支持所有的2D的画图操作,这个情况下如果开启硬件加速,可能会出现问题或导致异常发生。

因此,Android对于硬件加速提供了可选性。

硬件加速的级别:

1. Application

    <application

        android:hardwareAccelerated="false"

        ...>

    </application

2. Activity

    <application

        android:hardwareAccelerated="true"

        ...>

            <activity android:hardwareAccelerated="false"/>

    </application

3. Window

    getWindow().setFlags(

        WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,

        WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);

4. View

    mView.setLayerType(View.LAYER_TYPE_SOFTWARE,null);

    注:在View中可以关闭硬件加速,但是不能开启View级别的硬件加速,因为它会受到别的设置影响。

获取到是否支持硬件加速的方法:

1. View.isHardwareAccelerated();

2. Canvas.isHardwareAccelerated();

注:一个View,即使它的Canvas没有开启硬件加速,但是它仍然可以被绘制到开启了硬件加速的Window上。

相关文章

网友评论

      本文标题:Android之关闭硬件加速

      本文链接:https://www.haomeiwen.com/subject/fstfzctx.html