构建apk文件后,我注意到我的应用程序大小为2MB(原始文件大小)& 1.7MB(下载大小)。但是应用程序非常简单,其大小为< 500kb(包括资源和java文件),其中 classes.dex 单独占用大约1.3MB 。
我使用 ProGuard 来混淆代码,如下所示
android {
...
buildTypes {
release {
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
}
我在堆栈溢出时也经历了链接Reduce Size of .apk file 和this,但没有找到减少.apk大小的方法。
gradle 中添加的唯一依赖项是:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:design:26.1.0'
}
我很确定这是由于支持库加载项。那么有人可以帮我找到减少/减小这个尺寸的方法吗?
非常感谢任何见解。谢谢。
答案 0 :(得分:0)
阅读Shrink Your Code and Resources
资源缩减仅适用于代码收缩。 代码缩减器删除所有未使用的代码后,资源缩减器 可以识别应用程序仍在使用哪些资源。这是特别的 当您添加包含资源的代码库时,您必须这样做 删除未使用的库代码,以便库资源成为 未引用的,因而可以通过资源缩减器移除。
要启用资源收缩,请在 shrinkResources
文件中将 build.gradle
属性设置为true(与minifyEnabled一起用于代码收缩)。例如:
android {
...
buildTypes {
release {
shrinkResources true
minifyEnabled true
zipAlignEnabled true <-- optimization
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
}
}
<强> FYI 强>
您可以使用VECTOR
图像。使用矢量绘图而不是几个位图可以减小apk的大小。
classes.dex:所有Java源文件都转换为Java类文件 由Java编译器。 Android SDK包含一个名为dx的工具 将Java类文件转换为.dex(Dalvik可执行文件)文件。