如何减小apk文件的大小?

时间:2018-02-06 08:23:26

标签: android android-studio minify lint android-proguard

首先,不要建议我official documentationthis。当我们使用预定义的textview从Android Studio构建应用程序时,只显示" hello world",它会生成一个超过1.2MB的APK。但是Playstore上的一些应用程序可以在500KB以下获得,具有很多功能。我已经应用了Android Studio的所有功能,如proguard,minifyEnabled等,但这没有用。那么,我怎样才能达到这种压缩水平呢?

4 个答案:

答案 0 :(得分:8)

减少APK尺寸的要点:
1.使用矢量绘图
2.使用xml drawable创建简单视图
3.使用xml drawable旋转图像以重复使用(例如,在箭头按钮的情况下)
4.通过代码创建drawable 5.使用aaptOptions {cruncherEnabled = false}压缩图像
6.对大图像使用webP格式
7.避免枚举并使用@IntDef注释
8.在gradle中使用shrinkResources true删除未使用的资源
9.在gradle中使用resConfig“en”删除其他本地化

答案 1 :(得分:6)

问题可能出在support library。将com.android.support:appcompat-v7:27.0.2添加到空项目会将APK大小从80 KB增加到1.3 MB。因此,如果你的minSDK足够高并且你不需要它的辅助类,你就可以摆脱它。

您可以使用APK Analyzer查看实际占用空间的内容。

答案 2 :(得分:6)

从Android Studio创建新项目时,IDE会自动为项目添加一些依赖项。

dependencies {
    // ...
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    // implementation 'com.android.support:appcompat-v7:26.1.0'
    // implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    // ...
}

如果您捆绑support libraryconstraint layout library,即使您不添加任何代码,您的发布版本也会迅速增加。

如果删除支持库和约束布局库,只需使用所有系统API,就可以得到一个非常小的apk。

删除支持库后,您应该

  1. 使用Activity而不是AppCompatActivityYourActivity extends Activity

  2. 请勿在{{1​​}}

  3. 中使用支持库中的任何主题
  4. 使用AndroidManifest.xml替换布局中的FrameLayout

答案 3 :(得分:-2)

感谢您发布alijandromakovkastarSanjay Manjoka个人。在阅读了你的答案并在互联网上挣扎之后,我发现:

  1. 从build.app(Module:app)中删除不必要的自动生成的库,如ConstraintLayout,appcompat,junit等。
  2. 在defaultConfig块下的build.gradle中使用resConfig“en”。
  3. 在buildTypes的发布块下的build.gradle中使用shrinkResources true。
  4. 在buildTypes的发布块下的build.gradle中使用minifyEnabled true。
  5. 使用aaptOptions {cruncherEnabled = false}压缩图像
  6. 对大图像使用webP格式
  7. 避免使用枚举并使用@IntDef注释
  8. 转到Build>分析APK并按OK。它显示了我们的应用程序的状态,如下图所示。 Analyze APK