帮助!
当我在手机上安装我的应用程序进行测试时,它显示为一个巨大的大小,11.35 MB 。这是一个非常简单的应用程序,允许用户浏览有趣的事实。我能想到的唯一原因是,drawable中有14个JPEG文件作为fun-facts的背景图像。这些平均大小约为500 KB。
我想调整应用的大小,以免耗尽用户设备上的宝贵资源。除了摆脱图片,有没有办法优化apk文件的大小?
编辑:图片是我使用Android手机拍摄的照片。答案 0 :(得分:33)
其他答案提到缩小的图像。您也可以考虑尝试ProGuard缩小字节码。关于将ProGuard应用于Android应用程序的Here's an article。
答案 1 :(得分:23)
我建议您尽可能压缩.jpg
个文件,这会大大减少.apk
文件的大小。诸如Paint.NET之类的免费工具可以帮助您完成此任务。它有很好的调整大小选项。
答案 2 :(得分:13)
确保您的jpg没有以超过必要的更高分辨率存储。一部漂亮的Android手机屏幕分辨率为1920x1200或2560x1440(约2015年) 800 x 480 ,因此您的背景不应包含任何比这更多的像素(除非您的应用支持某种缩放)。还有背景照片吗?如果没有,您可能会发现使用像svg这样的基于矢量的图像格式,或者使用像gif这样的动态调色板的图像格式,将会进一步减小文件大小。
答案 3 :(得分:11)
<强>更新强>
随着支持库23.2的推出,现在您可以用SVG(无w /或无动画)替换许多Image资源,以进一步减小apk大小。
<强> ORIGINAL 强>
这可能是一个迟到的回复,但可能对将来的用户有所帮助。
请参阅此link。 为了总结该页面,它提到了以下关键点,这将有助于减少总体上的apk大小:
答案 4 :(得分:6)
除了优化图像之外,我还发现验证您使用的支持库很有用。我有一个相对简单的应用程序,目标平台API&gt; = 10,仍然我的APK最终为2.2M,或使用ProGuard后,1.4M。当我查看APK时,代码是1.5M并且包含了很多其他资源(abc_ *)我对此一无所知。
然后我发现了这个:https://developer.android.com/tools/support-library/features.html
原来我不需要appcompat-v7,只需支持-v4,并且对我的依赖项进行此更改会将APK大小减小到1.7M(使用ProGuard时为0.9M)。 可以理解的是,支持库带有很多额外的(代码和资源),所以确保只使用你需要的那些可能有帮助。
(即使-0.5M对于一个11M的应用程序来说并不重要,我在这里发布这个是因为我在搜索解决方案时一直在这个页面上结束......)
答案 5 :(得分:4)
答案 6 :(得分:4)
答案 7 :(得分:3)
在图像文件大小上添加一件事 - 不同的算法会对最终大小产生重大影响。我发现Yahoo的www.smushit.com比我现在在电脑上使用的压缩器和编解码器更有效(至少对于.png)。
答案 8 :(得分:3)
四种方式,您的应用程序大小将从11.35 MB增加到大约5 MB。 首先,通过App Analyzer(Android studio的内置功能)检查应用程序组件,只需单击顶部的Build并单击Analyze APK。它将向您展示apk正在使用的所有组件。
实现这些步骤的步骤。
1&amp; 2.对于Proguard和ShrinkResource
在gradle中,只需添加
即可 release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
shrinkResources true
}
对于resConfigs
defaultConfig {
applicationId "com.goparties.gpuser"
minSdkVersion 19
targetSdkVersion 27
resConfigs "en"
}
将所有图像从.png or.jpg转换为webp
非常简单的过程:只需右键单击drawable文件夹(drawable,drawable-hdpi,drawable-xhdpi等),然后单击convertToWebP(最后一个选项)。
Min SDK版本应为18。
我们开始:现在分析您的应用规模。
Bingo !!!!!!
答案 9 :(得分:2)
我可以从经验中指出两件事。
答案 10 :(得分:2)
我认为这个post可以让你更好地了解所有可能的方法,以大幅减少你的apk大小。
我会给你一个相同的摘录。
这将删除所有其他字符串文件,这些文件可能是由其他库以您甚至不支持的语言添加的。
答案 11 :(得分:2)
我知道我迟到了回答这个问题,但我使用以下技术减少了我的应用程序大小,所以我想与所有人分享这些内容。
1) - 使用WebP图像而不是Jpeg图像,如果使用多个图像,它将对apk大小产生巨大影响。
2) - 如果您在应用中使用简单的小图标,请使用VectorDrawables。
3) - 在xml中使用View的色调属性以避免多个相同的图标但颜色不同。
搜索DrawableTint和TintableImageview
4) - 使用9补丁图像,避免重复应用程序代码中的图像或任何内容。
以下是指降低APK尺寸的链接。
https://developer.android.com/topic/performance/reduce-apk-size.html
https://developer.android.com/studio/build/configure-apk-splits.html#configure-split
https://developer.android.com/training/multiple-apks/index.html
答案 12 :(得分:2)
WebP图像格式:提供有损压缩(如JPEG)以及透明度(如PNG),但可提供比JPEG或PNG更好的压缩
答案 13 :(得分:1)
除了上述最受欢迎的答案外,我还想回答谷歌Android Studio的最新工具。
Google最近推出了Android App Bundle,其中playstore自动将apk的优化版本发送到终端设备。 现在开发人员只需要生成Signed Bundle,并上传到Play商店,开始工作就完成了。不要忘记总是使用SVG图像。
答案 14 :(得分:0)
有一些技巧:
答案 15 :(得分:0)
使用MinifyEnable为true 和ShrinkResources为真
MinifyEnabled会在压缩代码时减少代码。 虽然shrinkResources缩小了资源。
要使用ShrinkResources,您必须将minifyEnbled设置为true。
答案 16 :(得分:0)
APK包含移动应用程序所有内容的zip文件,包括Java类文件,资源文件等。
使APK更小的一种简单方法是减少其包含的资源的数量和大小。特别是,您可以删除应用不再使用的资源,并且可以使用可缩放的Drawable对象代替图像文件。
答案 17 :(得分:0)
您可以通过del R.class减小apk大小,并将引用替换为常量。
答案 18 :(得分:0)
以下是减少应用程序大小的方法。详细信息请参见以下链接。
https://medium.com/@fahimsakri/put-your-apks-on-diet-cc3f40843c84#.m860q8s1u
Proguard的
vector drawables
Apk拆分
优化png图像
删除未使用的资源
9补丁图片
压缩Jpeg图像
删除调试信息
避免重复
广泛使用lint
尽可能重用资源
推荐的媒体格式
答案 19 :(得分:0)
我使用Trimage image compressor来压缩图像并减小apk的大小。它具有良好的压缩率,易于使用,保留了图像的质量,也可以在Ubuntu中使用。除此之外,我启用了ProGuard并继续工作Lint问题减少APK大小。
答案 20 :(得分:0)
你也可以试试http://www.webresizer.com/resizer/它是一个在线工具,对我来说做得很好。
答案 21 :(得分:0)
以下是您可以通过图像减少构建大小的方法(也适用于iOS) 在这里,我将分享名为“OPTIPNG”的伟大工具(您可以从here下载),它将帮助我们通过使用图像来减少构建,它将减少我们正在使用的PNG的图像大小而不降低质量(图像的分辨率和颜色。
示例 - 如果您的图片大小超过698 KB,那么它将简单地缩小到564 KB
以下是OPTIPNG 0.7.5的执行步骤
1)终端 - &gt; OPTIPNG的CD / YourLocal路径
2)输入“./configure”
3)输入“sudo make install”
现在应该进行Intallation
4)键入“optipng / your image path
您将获得字节结果并且还可以检查您的尺寸
答案 22 :(得分:-1)
使用SVG图像而不是jpg来减少apk大小。 将您的图像文件放在数据库中..以便您的应用程序的用户可以从数据库下载它,这将大大减少应用程序的大小..