实时音视频如何缩减安装包体积?

  • 回答 (1)
  • 关注 (0)
  • 查看 (37)

御姐万岁御姐万岁提问于
珠政彬u回答于

iOS 平台如何缩减安装包体积?

方式一:只打包 arm64 架构(推荐)

苹果 iPhone 5s 以上版本的手机都可以支持只打包 x64 架构,在 XCode 中的 Build Setting 里将 Build Active Architecture Only 设置为 YES,同时将 Valid Architectures 里只写 arm64 即可,TRTC SDK 的单架构 ipa 增量只有1.9M。

image.png

方式二:开启 BitCode

苹果 iPhone 5s 及以前版本的手机,如果项目中的所有第三方库都支持 BitCode,您可以通过开启 BitCode 来缩减安装包体积。在 Build Settings > Build Options 中将 Enable Bitcode 选项打开,即可开启 BitCode。

image.png

2016年开始,苹果在其 XCode 开发环境中开始支持 BitCode 编译选项,开启 BitCode 之后,编译器会对 App 生成中间代码而非实际的汇编机器码,用户从 App Store 下载安装的是针对具体手机 CPU 架构生成的机器码,所以该方式能够大幅减少安装包体积。

Android 平台如何缩减安装包体积?

方式一:只打包部分 so 文件

如果您的 App 只在中国大陆地区使用,可以只打包 armeabi-v7a 架构的 so 文件,从而将安装包增量压缩到5M以内。如果您的 App 希望上架 Google Play,可以打包 armeabi-v7a 和 arm64-v8a 两个架构的 so 文件。

具体操作方法:在当前项目的 build.gradle 里添加 abiFilters "armeabi-v7a" 指定打包单架构的 so 文件,或添加 abiFilters "armeabi-v7a","arm64-v8a" 指定打包双架构的 so 文件。

1.如果只打包 armeabi-v7a 架构的 so 文件(即无需上架 Google Play):

image.png

2.如果打包 armeabi-v7a 和 arm64-v8a 两个架构的 so 文件(即上架到 Google Play):

image.png

方式二:只打包 jar 文件(即安装后下载 so 文件)

注意:

如果您的 App 希望上架 Google Play,请不要使用该方案,有可能会无法上架。

Android 版 SDK 的体积主要来自于 so 文件,如果您希望将安装包增量压缩到1M以内,可以考虑采用安装后再下载 so 的方式:

1.在 Github 文件夹下,您可以找到类似 LiteAVSDK_TRTC_x.x.xxx.zip 命名的压缩包,将其解压并找到指定架构的 so 文件。

2.上传 步骤1 中下载到的 so 文件,上传到您的服务器(或腾讯云 COS 对象存储服务)上,并记录下载地址,例如 http://xxx.com/so_files.zip

3.在用户启动 SDK 相关功能前,例如开始播放视频之前,先用 loading 动画提示用户“正在加载相关的功能模块”。

在用户等待过程中,App 就可以到 http://xxx.com/so_files.zip 下载 so 文件,并存入应用目录下(例如应用根目录下的 files 文件夹),为了确保这个过程不受运营商 DNS 劫持的影响,请在文件下载完成后校验 so 文件的完整性,防止 zip 压缩包被运营商篡改。

4.等待所有 so 文件就位后,调用 TXLiveBase 类(LiteAVSDK 最早的一个基础模块)中的 setLibraryPath() 接口,将下载 so 的目标路径设置到 SDK。SDK 会到这些路径下加载需要的 so 文件并启动相关功能。

更多详情请点击文档进行查看。

所属标签

可能回答问题的人

  • 腾讯云音视频

    腾讯 · 行业应用产品经理 (已认证)

    209 粉丝0 提问1 回答
  • 音视频小姐姐

    4 粉丝0 提问0 回答
  • 腾讯云通信团队

    腾讯 · 腾讯云通信团队 (已认证)

    66 粉丝0 提问24 回答
  • jansonjiang

    腾讯 · 技术咨询工程师 (已认证)

    17 粉丝0 提问2 回答
  • 龙泉

    2 粉丝1 提问3 回答
  • wilentzhang

    腾讯 · 高级产品经理 (已认证)

    5 粉丝0 提问1 回答

扫码关注云+社区

领取腾讯云代金券