减小 App 体积
- iOS
更新时间不可用
了解实时互动 RTC 在不同平台上的减小 App 体积方式,包括接入流程、关键配置和平台差异。
App 体积是影响用户体验的重要因素之一,更小的包体积意味着用户可以消耗更少的带宽和时间下载 App。 在以下场景中,减小 App 体积对提升用户体验具有重要意义:
- App 的应用场景对 App 体积有严格要求。例如运行在储存空间有限的智能穿戴设备上。
- App 的目标用户群体位于欠发达地区,网络环境较差,导致 App 下载时间过长。
本文介绍如何减少集成声网实时互动 SDK 的 App 体积。
使用音频 SDK
视频 SDK 支持音频和视频功能,包体积大。如果你只需使用音频功能,建议你集成音频 SDK,详见实现纯语音互动。
信息
目前,实时互动 SDK 在 Windows 和 macOS 平台仅提供视频 SDK 下载。
按需集成 FFmpeg 插件
自 v4.7.0 起,音频 SDK 将 FFmpeg 调整为可按需集成的插件 AgoraffmpegExtension.xcframework,SDK 包中默认包含该插件。
FFmpeg 插件用于扩展 MediaPlayer 的音频文件播放能力,并依赖 aosl.xcframework。如果你的纯音频场景不需要 FFmpeg 提供的相关播放能力,可以在集成时移除或不链接 AgoraffmpegExtension.xcframework,以减小 App 体积。移除后,MediaPlayer 将使用系统原生播放能力,实际支持的音频文件格式取决于系统支持的容器格式和音频编解码器;如需播放系统原生能力之外的音频格式,请继续集成 FFmpeg 插件。
使用 Lite SDK
自 v4.4.0 起,声网提供实时互动 Lite SDK,提供基本的音视频通话功能,包体积较小。如果你只需使用基本的音视频通话功能,建议你集成 Lite SDK,详见下载。
Lite SDK 仅包含以下插件,其他插件列表中的插件及相关功能均不支持:
- 视频编码插件
- 视频解码插件
注意
Lite SDK 默认无法与 RTC 小程序 SDK 互通。如果需要与小程序互通,请联系技术支持。
删除不需要的插件
SDK 提供了可选的插件动态库,插件的命名以 extension 为后缀,插件功能和大小等信息详见插件列表。你可以参考如下方式不集成这些插件,以减小 App 体积。
手动集成时删除插件
通过官网 SDK 下载链接集成时,你可以将不需要使用的插件文件直接删除。
CocoaPods 集成时删除插件
通过 CocoaPods 集成 iOS/macOS SDK 时,你可以在 Podfile 中使用 subspecs 字段指定集成你需要的动态库,以排除你不需要使用的插件。动态库与 subspecs 字段的对应关系详见 subspecs 字段。
集成 4.0.1 版 iOS 视频 SDK,且使用所有插件时,Podfile 如下:
# platform :ios, '9.0'
target 'Your App' do
pod 'AgoraRtcEngine_iOS', '4.0.1'
end集成 4.0.1 版 iOS 视频 SDK,且不使用所有插件时,Podfile 如下:
# platform :ios, '9.0'
target 'Your App' do
pod 'AgoraRtcEngine_iOS', '4.0.1', :subspecs => ['RtcBasic']
end集成 4.0.1 版 iOS 视频 SDK 且只需要使用插件列表中的 AI 降噪插件和美声插件时,Podfile 如下:
# platform :ios, '9.0'
target 'Your App' do
pod 'AgoraRtcEngine_iOS', '4.0.1', :subspecs => ['RtcBasic', 'AINS', 'AudioBeauty']
end注意
填写上述 pod 命令时,请确保你指定版本的 SDK 具有你指定的插件,且插件的 subspecs 字段正确,否则 pod install 时会报错。例如,填写 pod 'AgoraRtcEngine_iOS', '4.0.0', :subspecs => ['RtcBasic', 'AgoraRtcAINS'] 时,pod install 时会报错。
参考信息
插件列表
本节提供实时互动 SDK 各插件简介和集成后 App 增加的体积参考。
信息
- 本节数据基于实时互动 v4.6.0 SDK。
- 自 v4.6.2 起,iOS 平台不再提供 armv7 架构的插件。
subspecs 字段
通过 CocoaPods 集成 iOS/macOS SDK 时,你可以在 Podfile 中使用 subspecs 字段指定集成你需要的动态库,以排除你不需要使用的插件。动态库与 subspecs 字段的对应关系详见下表:
| 动态库 | 类别 | subspecs 字段 |
|---|---|---|
| 必需 | RtcBasic |
AgoraAiNoiseSuppressionExtension.xcframework | 可选 | AINS |
AgoraAiNoiseSuppressionLLExtension.xcframework | 可选 | AINSLL (≥ v4.4.0) |
AgoraAudioBeautyExtension.xcframework | 可选 | AudioBeauty |
AgoraClearVisionExtension.xcframework | 可选 | ClearVision |
AgoraContentInspectExtension.xcframework | 可选 | ContentInspect |
AgoraPvcExtension.xcframework | 可选 | PVC (< v4.1.0) |
AgoraSpatialAudioExtension.xcframework | 可选 | SpatialAudio |
AgoraVideoSegmentationExtension.xcframework | 可选 | VirtualBackground |
AgoraAiEchoCancellationExtension.xcframework | 可选 | AIAEC (≥ v4.1.0) |
AgoraAiEchoCancellationLLExtension.xcframework | 可选 | AIAECLL (≥ v4.4.0) |
AgoraDrmLoaderExtension.xcframework | 可选 | DRM (≥ v4.1.0) |
AgoraFaceDetectionExtension.xcframework | 可选 | FaceDetection (≥ v4.1.1) |
AgoraFaceCaptureExtension.xcframework | 可选 | FaceCapture (≥ v4.3.0) |
AgoraVideoQualityAnalyzerExtension.xcframework | 可选 | VQA (≥ v4.1.0) |
AgoraReplayKitExtension.xcframework | 可选 | ReplayKit |
AgoraSuperResolutionExtension.xcframework | 可选 | SuperResolution (< v4.1.1) |
| 可选 | VideoCodecEnc (≥ v4.2.0) |
| 可选 | VideoCodecDec (v4.2.0 至 v4.6.1) |
AgoraVideoAv1EncoderExtension.xcframework | 可选 | VideoAv1CodecEnc (≥ v4.3.0) |
AgoraVideoAv1DecoderExtension.xcframework | 可选 | VideoAv1CodecDec (v4.3.0 至 v4.6.1) |
AgoraLipSyncExtension.xcframework | 可选 | LipSync (≥ v4.3.1) |
| 动态库 | 类别 | subspecs 字段 |
|---|---|---|
| 必需 | RtcBasic |
AgoraAiNoiseSuppressionExtension.xcframework | 可选 | AINS |
AgoraAiNoiseSuppressionLLExtension.xcframework | 可选 | AINSLL (≥ v4.4.0) |
AgoraAudioBeautyExtension.xcframework | 可选 | AudioBeauty |
AgoraSpatialAudioExtension.xcframework | 可选 | SpatialAudio |
AgoraAiEchoCancellationExtension.xcframework | 可选 | AIAEC (≥ v4.1.0) |
AgoraAiEchoCancellationLLExtension.xcframework | 可选 | AIAECLL (≥ v4.4.0) |
AgoraDrmLoaderExtension.xcframework | 可选 | DRM (≥ v4.1.0) |
| 动态库 | 类别 | subspecs 字段 |
|---|---|---|
| 必需 | RtcBasic |
AgoraAiNoiseSuppressionExtension.xcframework | 可选 | AINS |
AgoraAiNoiseSuppressionLLExtension.xcframework | 可选 | AINSLL (≥ v4.4.0) |
AgoraAudioBeautyExtension.xcframework | 可选 | AudioBeauty |
AgoraClearVisionExtension.xcframework | 可选 | ClearVision |
AgoraContentInspectExtension.xcframework | 可选 | ContentInspect |
AgoraPvcExtension.xcframework | 可选 | PVC (< v4.1.0) |
AgoraSpatialAudioExtension.xcframework | 可选 | SpatialAudio |
AgoraVideoSegmentationExtension.xcframework | 可选 | VirtualBackground |
AgoraAiEchoCancellationExtension.xcframework | 可选 | AIAEC (≥ v4.1.0) |
AgoraAiEchoCancellationLLExtension.xcframework | 可选 | AIAECLL (≥ v4.4.0) |
AgoraDrmLoaderExtension.xcframework | 可选 | DRM (≥ v4.1.0) |
AgoraFaceDetectionExtension.xcframework | 可选 | FaceDetection (≥ v4.1.1) |
AgoraFaceCaptureExtension.xcframework | 可选 | FaceCapture (≥ v4.3.0) |
AgoraVideoQualityAnalyzerExtension.xcframework | 可选 | VQA (≥ v4.1.0) |
AgoraScreenCaptureExtension.xcframework | 可选 | ScreenCapture (≥ v4.2.0) |
| 可选 | VideoCodecEnc (≥ v4.2.0) |
| 可选 | VideoCodecDec (v4.2.0 至 v4.6.1) |
AgoraVideoAv1EncoderExtension.xcframework | 可选 | VideoAv1CodecEnc (≥ v4.3.0) |
AgoraVideoAv1DecoderExtension.xcframework | 可选 | VideoAv1CodecDec (v4.3.0 至 v4.6.1) |
AgoraLipSyncExtension.xcframework | 可选 | LipSync (≥ v4.3.1) |