如何减小apk文件的大小? [复制]

Posted

技术标签:

【中文标题】如何减小apk文件的大小? [复制]【英文标题】:How to reduce size of an apk file? [duplicate] 【发布时间】:2018-07-16 05:54:53 【问题描述】:

首先,不要建议我official documentation 或this。当我们使用预定义的文本视图从 android Studio 构建一个应用程序时,它只显示“hello world”,它会生成一个超过 1.2MB 的 APK。但是 Playstore 上的一些应用程序可用不到 500KB 并具有很多功能。我已经应用了 Android Studio 的所有功能,如 proguard、minifyEnabled 等,但这无济于事。那么,我怎样才能达到这种压缩水平呢?

【问题讨论】:

考虑到大多数手机都是几GB的存储空间,你真的关心KB数量级的大小吗? 默认情况下它包含支持库到项目中。只需创建一个没有活动的空白项目,它不会包含支持库。 @cricket_007 我说的是 APK 的预安装大小。我们的手机如何显示并不重要。 @VladMatvienko 兄弟,我已经提到 Playstore 上的一些应用程序有很多低于 1mb 的功能。然后,编译和构建 APK 看起来就像是跑题了。 我建议你阅读this article。 【参考方案1】:

减小 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” 来移除其他本地化

【讨论】:

【参考方案2】:

从 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,即使您不添加任何代码,您的发布apk 大小也会迅速增加。

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

删除支持库后,你应该

    使用Activity 而不是AppCompatActivityYourActivity extends Activity

    不要在您的AndroidManifest.xml中使用支持库中的任何主题

    使用FrameLayout 替换布局中的ConstraintLayout

【讨论】:

【参考方案3】:

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

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

【讨论】:

【参考方案4】:

感谢alijandro、makovkastar 和 Sanjay Manjoka 各位发帖。在阅读了您的答案并在互联网上苦苦挣扎后,我发现:

    从 build.app(Module: app) 中移除不必要的自动生成库,例如 ConstraintLayout、appcompat、junit 等。 在 build.gradle 的 defaultConfig 块下使用 resConfig "en"。 在 buildTypes 的发布块下的 build.gradle 中使用 shrinkResources true。 在 build.gradle 的 buildTypes 发布块下使用 minifyEnabled true。 使用 aaptOptions cruncherEnabled = false 压缩图片 对大图使用 webP 格式 避免枚举并使用@IntDef 注解 转到构建>分析 APK 并按确定。它显示了我们应用程序的状态,如下图所示。

【讨论】:

不要发布只是重复其他人已经说过的话的答案。相反,如果你想添加一些东西,你应该对现有答案进行投票并编辑它们 @TimCastelijns 感谢您的建议。每个人的答案都不完整,我发现了一些有用的东西。

以上是关于如何减小apk文件的大小? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

IONIC Android Apk 文件大小太大了!如何减小安卓应用程序的大小?

使用播放服务 gcm 时如何减小 apk 大小

通过重新压缩其内容来减小 APK 大小

通过重新压缩其内容来减小 APK 大小

Android Studio如何减小APK体积

我的 APK 是 118MB ......我只需要一些关于如何减小它的大小的想法吗?