【问题标题】:Tried everything : Still how can I reduce my apk size ?尝试了一切:仍然如何减小我的 apk 大小?
【发布时间】:2017-04-23 06:48:01
【问题描述】:

如何更有效地减小我的 apk 大小?我知道这是一个常见问题,但我在可用资源方面没有得到太多帮助。

  • 我在 Android Studio 中尝试过“lint”,它删除了一些资源,但 apk 大小并没有缩小那么多。
  • 我曾使用“PngCrush”压缩 png 文件,但没有多大帮助(仅减少了 150Kb)。有没有更好的解决方案来减小 png 文件的大小?
  • 我现在选择使用 ProGuard。安全吗?它可以从我的 apk 中扣除多少大小?
  • 我的 APK 大小目前为 17 MB,我想将其降至 10 MB 以下。是否有其他可用的解决方案?提前致谢。

【问题讨论】:

  • 您需要对您的 apk 进行大小和代码反编译,在构建 gradle 文件中设置 minifyEnabled true。我可以知道您的应用中有任何视频文件吗
  • @MageshPandian,不,我的应用程序中没有任何音频和视频文件。我将应用 proguard 并让您知道修改后的 apk 大小。谢谢回复:)
  • 您是否使用过 Google Play Service 之类的大型库?你启用了multidex吗?

标签: android performance proguard lint


【解决方案1】:

Proguard 应该是要走的路,因为它会删除未使用的代码,并将变量/方法名称重命名为 a、b、c、aa、ab 之类的名称。

可以减少多少?这取决于。我的情况是使用 Proguard 将 10M 的 apk 减少到 8M。

安全吗? Proguard 的目的之一是混淆代码,使其难以进行逆向工程。

【讨论】:

    【解决方案2】:

    您可以使用以下方法:

    1) 使用 proguard : 设置 minifyEnabled true

    2) 删除未使用的资源:设置 shrinkResources true

    3) 删除所有你不使用的东西

    4) 如果您使用的是库,请尝试找到您所使用的 sn-p 真正使用,如果你没有找到任何这样的版本,尝试摆弄 直接在您的应用中使用所需的类,而不是导入整个库

    5) 为您的小图标和 可绘制对象

    6) 将 png 图像的清晰度降低到相同的位置 对人眼的影响,而它的大小却大大减小了

    7) 尝试生成资源或利用运行时而不是之前存储它 手

    Progaurd 是完全安全的,请确保在使用 proguard 之前保留您工作的原始备份,并在激活 proguard 之前对所有库和其他重要资源和代码使用适当的规则。通常库为其库提供默认的 proguard 规则

    【讨论】:

    • @tahsinRupam,你能不能也点个赞,接受,希望对你有帮助
    • 是的,如果你帮我解决这个问题,我一定会的。实施 proguard 后,我的应用程序不断崩溃。这是错误:- java.lang.NoClassDefFoundError:解析失败:Ljavax/naming/ldap/LdapName;
    • 你搞砸了库,但是在添加所有必要的规则之前激活 proguard
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多