安卓平台上,RTC 视频超分、视频降噪、暗光增强等视频处理特性在 GPU 上的正常运行依赖厂商提供的 OpenCL 库。根据 Android 开发者指南对 Android 12 的行为变更说明,当应用升级目标平台为 Android 12(targetSdkVersion>=31) 及以上版本后,app 访问设备厂商提供的本地库时,必须使用应用清单 (AndroidManifest.xml) 中的 <uses-native-library> 标记指明其依赖,以免出现帧率下降、视频暗光增强功能无法开启等异常。你可以参考此文档进行适配操作。
应用以 Android 12(targetSdkVersion>=31) 及以上版本为目标平台;
使用到视频超分、视频降噪、视频暗光增强等依赖 OpenCL 库的特性,或者对视频渲染帧率有较高要求。
升级 Android app 的Android Gradle Plugin 版本到 4.2.0+,确保构建工具链支持 <uses-native-library> 标记。
在应用 AndroidManifest.xml 的 <application> 标签下加入 <uses-native-library> 标记,声明以下 OpenCL 相关本地库的白名单(详情参考 Android 开发者指南):
<application>
<uses-native-library
android:name="libOpenCL.so"
android:required="false"/>
<uses-native-library
android:name="libGLES_mali.so"
android:required="false"/>
<uses-native-library
android:name="libmali.so"
android:required="false"/>
<uses-native-library
android:name="libPVROCL.so"
android:required="false"/>
<uses-native-library
android:name="libpocl.so"
android:required="false"/>
</application>
bash