减少安卓apk大小
Posted
技术标签:
【中文标题】减少安卓apk大小【英文标题】:Reduce apk size android 【发布时间】:2017-03-02 10:39:40 【问题描述】:我在 android 中遇到了应用大小的问题。
场景是,
我在 Android Studio 2.0 中开发了我的 android 应用,apk 的大小为 23 MB。
之后,我将我的 IDE 升级到了 android studio 2.2,几乎没有修改代码,apk 的大小就增加到了 51 MB。
我尝试使用 prorogued 和 Lint 但没有优势。
谁能帮我解决这个问题。
【问题讨论】:
使用 Android Studio 2.2 中的 APK Analyzer 来确定您的空间去向。没有其他人可以帮助您,因为我们没有您的 APK。 检查您的资源并在不需要时删除,然后使用 tinypng.com 缩小您的资源 【参考方案1】:1) 将所有的Images,Icons替换为vector drawable
2) 像下面这样打开 pro Guard 转到 build.gradleapp 级别
并把这些行
**shrinkResources 真
minifyEnabled 真**
3) 删除未使用的类、drawable 以及方法和字符串 并使用 LINT 的私有方法分析器来减少方法计数
JAVA's Hidden cost
4) 在 android studio 2.2 及更高版本中,他们在 Build 菜单中添加了 apk analyser 工具。用它来分析APk
5) 如果应用程序大小超过 100mb,请使用称为拆分 apk 的功能。 有两种拆分apk的方法 ABI 和密度分割
【讨论】:
【参考方案2】:在您的 build.gradle(Module:app)
文件中进行此更改。它减少了 apk 大小几乎 (40-50)%。
android
// Other settings
buildTypes
release
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
它减小了classes.dex
文件和res folder
的大小。
建议您使用webp
文件格式而不是BMP, JPG, PNG
以获得更好的压缩效果。
供参考,您可以使用:https://developer.android.com/studio/write/convert-webp.html
更多关于apk压缩的细节可以参考:
https://developer.android.com/topic/performance/reduce-apk-size.html
https://medium.com/how-you-can-decrease-application-size
【讨论】:
【参考方案3】:减小 APK 大小的要点:
Make sure to do it
1. Use vector drawable
2. Use xml drawable to create simple view
3. Rotate images using xml drawable to reuse (eg. in case of arrow buttons)
4. Create drawable through code
5. Use aaptOptions cruncherEnabled = false to compress images
6. Use webP format for large images
7. Avoid enumerations and use @IntDef annotation
8. Use shrinkResources true in gradle to remove unused resources
9. Use resConfig “en” in gradle to remove other localization
【讨论】:
以上是关于减少安卓apk大小的主要内容,如果未能解决你的问题,请参考以下文章
IONIC Android Apk 文件大小太大了!如何减小安卓应用程序的大小?
[RN] React Native 打包时 减少 Apk 的大小