文档中心 > 实时音视频 > 常见问题 > 缩减安装包体积相关问题

缩减安装包体积相关问题

最近更新时间:2020-06-29 19:58:44

集成 TRTC SDK 后,文件增量有多大?

TRTC 各个版本 SDK 的体积增量不同,详情请参见 SDK 下载

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

  • 方式一:只打包 arm64 架构(推荐)
    苹果 iPhone 5s 以上版本的手机都可以支持只打包 x64 架构,在 XCode 中的 Build Setting 里将 Build Active Architecture Only 设置为 YES,同时将 Valid Architectures 里只写 arm64 即可,TRTC SDK 的单架构 ipa 增量只有1.9M。
  • 方式二:开启 BitCode
    苹果 iPhone 5s 及以前版本的手机,如果项目中的所有第三方库都支持 BitCode,您可以通过开启 BitCode 来缩减安装包体积。在 Build Settings > Build Options 中将 Enable Bitcode 选项打开,即可开启 BitCode。

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

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

  • 方式一:只打包部分 so 文件
    如果您的 App 只在中国大陆地区使用,可以只打包 armeabi-v7a 架构的 so 文件,从而将安装包增量压缩到5M以内。如果您的 App 希望上架 Google Play,可以打包 armeabi-v7aarm64-v8a 两个架构的 so 文件。
    具体操作方法:在当前项目的 build.gradle 里添加 abiFilters "armeabi-v7a" 指定打包单架构的 so 文件,或添加 abiFilters "armeabi-v7a","arm64-v8a" 指定打包双架构的 so 文件。
    • 如果只打包 armeabi-v7a 架构的 so 文件(即无需上架 Google Play):
    • 如果打包 armeabi-v7aarm64-v8a 两个架构的 so 文件(即上架到 Google Play):
  • 方式二:只打包 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 文件并启动相关功能。
目录