我的资源和可绘制文件只有2MB,Java和XML源码只有1MB,但是构建项目后,APK大小为20MB!
我设置了shrinkResources为true,并删除了未使用的资源,还用proguard生成了应用程序。
有没有办法减小APK的大小?
我的资源和可绘制文件只有2MB,Java和XML源码只有1MB,但是构建项目后,APK大小为20MB!
我设置了shrinkResources为true,并删除了未使用的资源,还用proguard生成了应用程序。
有没有办法减小APK的大小?
compile 'com.google.android.gms:play-services-analytics:10.2.4'
请勿这样使用:
compile 'com.google.android.gms:play-services:10.2.4'
在你的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
}
}
其次,如果您正在使用Google服务依赖项,请使用单独的依赖项.. 参见此处。在Android Studio 2.2及以上版本中,他们已经在Build菜单中添加了APK分析工具。使用它来分析APK。
不仅适用于Google服务,其他库也是如此。有些库将Android设计或AppCompat放入其库中。因此,如果您已经在依赖项中拥有这些模块,则需要排除它们。
请查看我的博客减小apk大小的不同方法
主要点如下:
注意:去启用它!(*之后请仔细检查一切是否正常)
您可以执行以下操作:
删除不必要的库,即使用所需的库(例如单独使用地图或GCM,而不是完整的Play服务库)
使用矢量图像而非多个PNG文件。
在构建文件中使用zipAlignEnabled命令。
android {
...
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}