尝试了一切:仍然如何减小我的 apk 大小?
Posted
技术标签:
【中文标题】尝试了一切:仍然如何减小我的 apk 大小?【英文标题】:Tried everything : Still how can I reduce my apk size ? 【发布时间】: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吗? 【参考方案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以上是关于尝试了一切:仍然如何减小我的 apk 大小?的主要内容,如果未能解决你的问题,请参考以下文章