【问题标题】:Realm adding extra size to my apk领域为我的 apk 添加额外的大小
【发布时间】:2016-12-18 01:20:36
【问题描述】:

在添加Realm库之前我的apk的初始大小是2.3 MB,添加后,apk大小增加到10.61 MB,是否可以减小大小,如果可以怎么办?如果没有,请向 Realm 推荐一个替代方案

【问题讨论】:

    标签: android realm


    【解决方案1】:

    您可以使用 abi 拆分来减小 APK 的大小。

    通常(没有拆分)它包含支持几乎所有架构(ARM7、ARMv7、ARM64、x86、MIPS)的文件,这就是它太大的原因。

    使用 abi splits,android studio 会为每个架构生成 APK,每个 APK 不会包含任何其他架构的文件

    只需在 gradle 文件中添加以下部分。还要检查这个领域documentation

    splits {
        abi {
            enable true
            reset()
            include 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'mips', 'x86', 'x86_64'
        }
    }
    

    重要

    每个发行版(APK)只能在适当的设备上运行。所以我们可以说,app-x86_64-release.apk 不能在armeabi-v7a 架构设备上工作。如果您尝试,您将面临Failure [INSTALL_FAILED_NO_MATCHING_ABIS] 错误。

    您也可以查看这些文档。

    【讨论】:

    • 这行得通,它显着减小了大小。在我看来,如果它为单个架构生成 apk,生成的 apk 是否适用于所有架构?
    • 我如何将多个 apk 上传到 Play 商店?
    • 您需要在 Google Play Developer Console 中切换到高级模式,它允许您上传多个 APK,请查看documentation
    • 根据我的阅读,我是否必须为生成的每种构建类型分配不同的版本?
    • 是的,没错。每个 abi 拆分都将在自己的版本组上进行。我为您创建了一个示例gist。我建议在做这个过程之前三思而后行。如果真的值得,那就去做吧。
    【解决方案2】:

    可以减小 Apk 大小,但首先最快最直接的方法是删除应用程序未使用或未针对的领域 API 中的包。这样一来,您的 apk 大小将显着下降,还可以尝试压缩您的应用正在使用的任何资源和多媒体。
    一个更极端的解决方案是与 firebase 集成,让您的一些内容实时加载到应用中,而不是在部署时。

    【讨论】:

    • 您应该告诉如何“删除应用程序未使用或未针对的领域 API 中的包”
    • 如何从领域中删除包?
    • 使用 api 时,api 中有您在应用程序中定位的类,api 分为代表包的子目录。打开解压后的文件夹,遍历包,不使用的时候去掉m
    【解决方案3】:

    现在,您可以使用AppBundle 来减小 APK 的大小。

    【讨论】:

      猜你喜欢
      • 2019-04-16
      • 2023-03-14
      • 2012-03-26
      • 2017-03-18
      • 2020-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多