tec*_*man 5 android kotlin android-resources
我注意到 Android 6 上出现崩溃,并显示错误消息 - “A/OpenGLRenderer:错误:环境顶点缓冲区溢出!!!” 将清单文件中的活动的硬件加速设置为 false 可以解决问题,但会影响应用程序的性能(导致应用程序速度变慢)。
我想仅当 android 版本为 23 (android M) 时才将该值设置为 false,否则不设置。我是这样处理的:
安卓清单文件:
<activity
android:name=".MainActivity"
android:hardwareAccelerated="@bool/hardwareAcceleratedValue">
Run Code Online (Sandbox Code Playgroud)
资源/值/bool.xml
<resources>
<bool name="hardwareAcceleratedValue">true</bool>
</resources>
Run Code Online (Sandbox Code Playgroud)
res/values-v23/bool.xml
<resources>
<bool name="hardwareAcceleratedValue">false</bool>
</resources>
Run Code Online (Sandbox Code Playgroud)
有了这个,我注意到 Android M 设备上的性能较慢(这是预期的),而且在 Android 9 的设备上也是如此。因此,我继续为 android 9 创建另一个文件夹,并将文件添加到其中,并将“hardwareAcceleratedValue”设置为 true 和性能更快。
问题-
对于 v23 以外的 android API,android 不应该从 res/values/bool.xml 读取“hardwareAcceleratedValue”值吗?或者我是否必须为每个 android API 创建单独的文件夹,并在其中创建 bool.xml 文件,即 res/values-v28/bool.xml 或 res/values-v27/bool.xml?
如何仅将“hardwareAcceleratedValue”设置为 false(仅适用于 Android-M 或更低版本),而适用于 android-M 以外的所有版本?
Com*_*are 10
对于 v23 以外的 android API,android 不应该从 res/values/bool.xml 读取“hardwareAcceleratedValue”值吗?
-v23用于 API 级别 23及更高级别。
如何仅将“hardwareAcceleratedValue”设置为 false(仅适用于 Android-M 或更低版本),而适用于 android-M 以外的所有版本?
有false在res/values/bool.xml和true在res/values-v22/bool.xml。Android M 的 API 级别为 21,因此-v22将用于所有更高版本。
如果“android-M”指的是 Android 5.x,则包含falseinres/values/bool.xml和truein res/values-v23/bool.xml,因为 Android 5.1 的 API 级别为 22。
| 归档时间: |
|
| 查看次数: |
2051 次 |
| 最近记录: |