我的资产和drawable只有2mb java和xml源只有1mb但是在构建项目之后apk尺寸是20mb!
我将shrinkResources设置为true 并删除未使用的资源并使用proguard生成应用程序。
有没有办法减小apk的大小?
答案 0 :(得分:3)
Android Studio有自己的apk分析器,对于像你这样的情况非常有用。
分析您的apk文件并检查哪些文件正在使用这么多空间。
https://developer.android.com/studio/build/apk-analyzer.html
同样使用ProGuard有助于减少apk大小。
此外,避免使用不必要的库。例如,
如果您需要使用Google Analytics,请按以下方式导入仅限gradle的分析库:
compile 'com.google.android.gms:play-services-analytics:10.2.4'
不要这样使用:
compile 'com.google.android.gms:play-services:10.2.4'
第二个示例使用了太多空间和冗余类和文件。
答案 1 :(得分:1)
在你的gradle,通常调试apk将比发布APK大约50%。如果您关心调试大小,只需执行与调试配置上的发布相同的配置
buildTypes {
release {
minifyEnabled true <-- minify your code
shrinkResources true <-- remove any unused resources
zipAlignEnabled true <-- optimization
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' <-- enable proguard is important to shrink byte code
}
}
其次,如果您使用的是谷歌服务依赖项,请使用个人依赖项。参考here在android studio 2.2及更高版本中,他们在Build菜单中添加了apk分析工具。用它来分析APK。
不仅适用于谷歌服务,也适用于其他库。一些图书馆将android设计或appcompat放入他们的库中。所以你需要排除那些模块(如果你已经有你的依赖项)
答案 2 :(得分:0)
根据&#34;资源收缩&#34; Andriod文档的网页(here),您可以通过build.gradle文件使用以下行来最小化应用程序的大小:
android {
...
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
答案 3 :(得分:0)
你可以做以下事情
删除不需要的库。甚至使用所需的库(如地图 或gcm个人而非完整游戏服务库)
使用矢量图像而不是多个png。
在构建文件中使用zipAlignEnabled命令
答案 4 :(得分:0)
查看我的博客Different ways to reduce apk size
要点是:
注意:启用它! (*请仔细检查两次,然后再检查一切正常)