如何减少App(.apk)大小

Oce*_*lue 45 android

救命!

当我在手机上安装我的应用程序进行测试时,它显示为一个巨大的大小,11.35 MB.这是一个非常简单的应用程序,允许用户浏览有趣的事实.我能想到的唯一原因是,drawable中有14个JPEG文件作为fun-facts的背景图像.它们的平均大小约为500 KB.

我想调整我的应用程序的大小,以免耗尽用户设备上的宝贵资源.除了摆脱图片,有没有办法优化apk文件的大小?

编辑:图片是我使用Android手机拍摄的照片.

Mau*_*fer 34

其他答案提到缩小的图像.您也可以考虑尝试使用ProGuard缩小字节码.这是一篇关于将ProGuard应用于Android应用程序的文章.

  • @Christopher:其他答案已经提到过缩小的图像,但是没有人提到过缩小的代码,所以我给OP另外一个工具来考虑. (11认同)

Nat*_*ate 24

我建议您.jpg尽可能压缩文件,这应该会大大减少.apk文件的大小.像Paint.NET这样免费的工具可以帮助你做到这一点.它有很好的调整大小选项.

  • 我会说*缩小*JPEG大小(即JPEG质量)而不是*compress*它们.JPEG不是很软. (2认同)

Dan*_*ane 13

确保您的jpg没有以超过必要的更高分辨率存储.一部漂亮的Android手机的屏幕分辨率为1920x1200或2560x1440(大约2015年)800 x 480,因此您的背景不应包含任何比这更多的像素(除非您的应用支持某种缩放).还有背景照片吗?如果没有,您可能会发现使用基于矢量的图像格式(如svg)或使用动态调色板(如gif)的图像格式将会进一步减小文件大小.


Vai*_*hal 12

UPDATE

随着支持库23.2的引入,现在您可以使用SVG(无w /或无动画)替换许多Image资源,以进一步减小apk大小.

原版的

这可能是一个迟到的回复,但可能对未来的用户有帮助.

请参阅此链接.为了总结该页面,它提到了以下关键点,这将有助于减少总体上的apk大小:

  • 使用ProGaurd
  • 删除应用程序中的所有调试信息(如Log.i()等语句).它们可以包装在仅在测试应用程序时启用的条件.
  • 使用推荐的媒体格式
    • 图片:PNG或JPG
    • 音频:AAC
    • 视频:H264 AVC
  • 使用OptiPNGPNGCrush 压缩图像
  • 使用9patch缩放图像
  • 使用此工具查找未使用的资源并将其删除.
  • 避免使用多个资源来实现相同的功能.资源不仅限于图像,还扩展到API.有时,单个API可以提供多个结果,而不是使用两个或三个不同的API.重复的字符串和资产也是浪费空间.


sfT*_*mas 6

除了优化图像之外,我还发现验证您使用的支持库很有用.我有一个相对简单的应用程序,目标平台API> = 10,仍然我的APK最终为2.2M,或使用ProGuard,1.4M.当我查看APK时,代码是1.5M并且包含了很多其他资源(abc_*)我一无所知.

然后我发现了这个:https://developer.android.com/tools/support-library/features.html

事实证明我不需要appcompat-v7,只需要support-v4,并且对我的依赖项进行此更改会将APK大小减小到1.7M(使用ProGuard时为0.9M).可以理解的是,支持库带来了很多额外的(代码和资源),所以确保只使用你需要的那些可能有所帮助.

(即使-0.5M对于一个11M的应用程序来说并不重要,我在这里发布这个是因为我在搜索解决方案时一直在这个页面上结束......)


Dev*_*ath 6

转换为WebP哪个将大大减小应用程序的大小

它减少我的应用的应用尺寸,其40 mb25 mb

脚步:

  • 右键点击 res
  • 转换成 WebP

它的作用:将其缩小为pngWebP格式化的大小。质量也不会被破坏


在此处输入图片说明