在<activity>或<application>中设置android:hardwareAccelerated =“ true”

时间:2018-08-30 07:44:26

标签: android android-manifest hardware-acceleration

我希望我的应用(高度依赖GPU)使用硬件加速。建议在某些论坛上在android:hardwareAccelerated="true"内设置<application>,在其他论坛上,建议在<activity>内的AndroidManifest.xml内设置相同的属性。以下是其外观的表示形式:

<application
    ...
    android:hardwareAccelerated="true"
    ...>
    <activity
        ...
        android:hardwareAccelerated="true"
        ...>
    </activity>
</application>

我最终都设置了这两种设置,但是我想知道,哪种方法正确,有什么区别?

2 个答案:

答案 0 :(得分:8)

默认情况下启用硬件加速,因此除非需要将其禁用,否则不必进行设置。如documentation中所述:

  

如果您的目标API级别> = 14,则默认情况下启用硬件加速,但是也可以显式启用。

回答您的问题。将其设置在Application标签上会影响整个应用程序,将其设置在Activity标签上会影响该活动。

应用程序级别

在您的Android清单文件中,将以下属性添加到标签中,以为整个应用程序启用硬件加速:

<application android:hardwareAccelerated="true" ...>

活动级别

如果在全局打开硬件加速的情况下您的应用程序无法正常运行,则也可以针对单个活动对其进行控制。要在活动级别启用或禁用硬件加速,可以为元素使用android:hardwareAccelerated属性。以下示例为整个应用程序启用了硬件加速,但针对一项活动禁用了它:

<application android:hardwareAccelerated="true">
    <activity ... />
    <activity android:hardwareAccelerated="false" />
</application>

答案 1 :(得分:3)

如果您在<application>上进行设置,则意味着整个应用程序都具有hardwareAccelerated功能,您无需在<activity>上再次进行设置,但是如果您的应用程序无法正常运行如果在全局启用硬件加速的情况下正确地进行了设置,则可以在<activity>上进行设置,这意味着仅特定活动具有功能hardwareAccelerated,而没有整个应用程序。因此,我认为您的情况只能在<application>标签上设置。

在此处查看更多信息。 https://developer.android.com/guide/topics/graphics/hardware-accel