我在android中面临应用程序大小的问题。
情况是,
我在Android Studio 2.0中开发了我的android应用程序,apk的大小是23MB。
之后,我升级我的IDE到android工作室2.2和小代码改造apk的大小提升到51MB。
我尝试了prorogued和Lint,但没有优势。
有人能帮我解决这个问题吗?
1)将所有图像、图标替换为矢量可绘制
2)像遵循goto build. gradleapp级别一样打开专业卫士
并把这些线
收缩资源真
小飞启用真**
3)删除未使用的类、可绘制和方法以及字符串,并使用LINT的私有方法分析器,从而减少方法数量
JAVA的隐藏成本
4)在android studio 2.2及更高版本中,他们在Build菜单中添加了apk分析工具。用它来分析APk
5)如果应用程序大小超过100mb,请使用称为拆分apk的功能。有两种拆分apk的方法ABI和密度拆分
在您的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'
}
}
}
它减少了类. dex
文件和res文件夹
的大小。
建议您使用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
减少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