【问题标题】:Compress APK for smaller file size压缩 APK 以获得更小的文件大小
【发布时间】:2015-10-26 14:30:06
【问题描述】:

我的应用程序的 apk 文件很大。是否可以通过使用更好的压缩级别或不同的压缩引擎(例如 lzma (https://software.intel.com/en-us/android/articles/native-library-compression-sdk-for-android-apps))来减小文件大小?

【问题讨论】:

  • 你用过Google play apk expansion lib吗?另一种选择是 APK Splits tools.android.com/tech-docs/new-build-system/user-guide/…
  • 你已经在使用缩小和资源缩减了吗?
  • @fractalwrench 我只是按照标准步骤创建 APK 文件。使用jarsignerzipalign
  • 为什么你的 apk 这么大?嵌入式视频/音频/高分辨率图像?使用胖库?很多课?
  • @k3b 因为我在我的项目中使用人行横道。因此,APK 文件大约为 21MB。没有它(人行横道),它将只有大约 1-2MB。所以,我正在考虑使用一些压缩方法来让它更小一点。

标签: android cordova apk


【解决方案1】:

简单回答您的问题:
是的,使用 lzma。

好的,现在有一些其他建议。

  1. 在发布模式下构建。这非常重要,因为在调试模式下构建的应用程序大小可能比在发布模式下构建时大很多。
  2. 压缩图像。在制作应用程序时,您通常不会真正查看图像的大小,它们通常往往是有关大小的主要问题。只需打开它们,比如paint.net,然后以较低的质量再次保存它们会很有帮助。
  3. 压缩您的音频文件。大胆地加载它们并将它们导出为质量较低的 MP3。

这些是我的一些小建议。如果您需要更小的 apk,我建议您尝试google

【讨论】:

  • 感谢您的回答。但是如何使用lzma?我只知道创建 APK 文件的标准程序。
  • 调试模式应用程序大小取决于您在 build.gradle 中配置的内容。如果您为调试和发布模式配置相同的配置,例如buildTypes { release { minifyEnabled true } debug {minifyEnabled true } },那么构建 apk 中的大小不会有任何变化
  • @user1995781 LZMA 是一种算法,我对它不是很了解。它不是一个程序,据我所知也不是你可以勾选的功能。它似乎更像是压缩你的 .apk。我建议在谷歌上搜索它。
  • @MadhukarHebbar 谢谢。尝试了你的方法后,现在我的 APK 文件大小从 21MB 减少到了 17MB。
  • @MadhukarHebbar 不幸的是,安装压缩的 APK 后,该应用程序无法运行。运行应用程序时,它会立即退出并显示错误消息。
【解决方案2】:

您可能想看看Crosswalk Lite,它是Crosswalk 的精简版,功能较少,但保持了出色的性能。
该项目仍然没有稳定的版本(仍然在 Canary 频道中)可以像正常的 Crosswalk 一样用于生产。

我认为 Crosswalk Lite 将是解决像您这样的问题的绝佳解决方案,也许在不久的将来。

【讨论】:

  • 感谢您的回答。我知道人行横道精简版。如您所知,它不像普通人行横道那样稳定和最新。因此,这不是我的主要选择。
  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
  • 感谢@JaiprakashSoni,我将修改我的答案以包含有关 Crosswalk Lite 的更多信息
  • 我同意你@user1995781,刚刚分享了我认为可能有帮助的内容,事件不在当前时间。