我希望我的应用程序(主要依赖GPU)使用硬件加速。在一些论坛上,我被建议在android:hardwareAccelerated="true"
中设置<application>
,在<activity>
内的AndroidManifest.xml
内的其他论坛中设置相同的属性。下面是它的外观表示:
<application
...
android:hardwareAccelerated="true"
...>
<activity
...
android:hardwareAccelerated="true"
...>
</activity>
</application>
我最终设置了两个,但我想知道,哪一个是正确的方式,有什么区别?
默认情况下启用硬件加速,因此除非您需要禁用它,否则无需进行设置。正如documentation所说:
如果Target API级别> = 14,则默认启用硬件加速,但也可以显式启用。
回答你的问题。在Application标签上设置它会影响整个应用程序,并在Activity标签上设置它会影响该活动。
在Android清单文件中,将以下属性添加到标记以为整个应用程序启用硬件加速:
<application android:hardwareAccelerated="true" ...>
如果您的应用程序在全局启用硬件加速时行为不正常,您也可以针对各个活动控制它。要在活动级别启用或禁用硬件加速,可以使用元素的android:hardwareAccelerated属性。以下示例为整个应用程序启用硬件加速,但为一个活动禁用它:
<application android:hardwareAccelerated="true">
<activity ... />
<activity android:hardwareAccelerated="false" />
</application>
如果您在<application>
上设置它意味着整个应用程序具有hardwareAccelerated
功能,您不需要在<activity>
上再次设置它,但如果您的应用程序在全局启用硬件加速时行为不正常,您可以在<activity>
上设置它,并且它仅表示该特定活动具有hardwareAccelerated
功能而不是整个应用程序。所以我想你的情况,你只能在<application>
标签上设置它。
在这里查看更多。 https://developer.android.com/guide/topics/graphics/hardware-accel