使用值文件夹为不同的API版本设置不同的资源值

我一直注意到Android 6在崩溃时出现错误消息-“ A / OpenGLRenderer:错误:环境顶点缓冲区溢出!!!”将清单文件中的活动的硬件加速设置为false可以解决此问题,但会影响应用程序的性能(导致运行速度较慢的应用程序)。

我只想将值设置为false,仅当android版本为23(android M)时才设置为false。这是我的处理方法:

Android清单文件:

<activity
android:name=".Mainactivity"
android:hardwareaccelerated="@bool/hardwareacceleratedValue">

res / values / bool.xml

<resources>
    <bool name="hardwareacceleratedValue">true</bool>
</resources>

res / values-v23 / bool.xml

<resources>
    <bool name="hardwareacceleratedValue">false</bool>
</resources>

有了这个,我注意到在Android M设备上(预期),但在具有Android 9的设备上,性能也会下降。因此,我继续为android 9创建了另一个文件夹,并使用“ hardwareacceleratedValue”将文件添加到其中确实如此,并且性能更快。

问题 -

对于v23以外的android API,android不应从res / values / bool.xml中读取“ hardwareacceleratedValue”值吗?还是我必须为每个Android API创建单独的文件夹并在其中创建bool.xml文件,即res / values-v28 / bool.xml或res / values-v27 / bool.xml?

如何仅将Android-M或更低版本的“ hardwareacceleratedValue”设置为false,而将android-M以外的所有版本的true设置为true?

shaouwu 回答:使用值文件夹为不同的API版本设置不同的资源值

  

对于v23以外的android API,android不应从res / values / bool.xml中读取“ hardwareAcceleratedValue”值吗?

-v23用于API级别23 及更高版本

  

如何仅将Android-M或更低版本的“ hardwareAcceleratedValue”设置为false,而将android-M以外的所有版本的true设置为true?

false中有res/values/bool.xml,在true中有res/values-v22/bool.xml。 Android M是API级别21,因此-v22将用于所有更高版本。

如果用“ android-M”表示Android 5.x,则false中有res/values/bool.xmltrue中有res/values-v23/bool.xml,因为Android 5.1的API级别为22

本文链接:https://www.f2er.com/3141069.html

大家都在问