发布版的Android APK文件比调试版的APK文件大。

11

我正在使用Proguard来减小我的apk大小。 调试版apk从90mb减少到了55mb,但签名版apk为71mb。 这是我的build.gradle代码:

apply plugin: 'com.android.application'

android {

signingConfigs {
    XXXX {
        keyAlias 'xxxx'
        keyPassword 'xxxx'
        storeFile file('/Users/xxxx.jks')
        storePassword 'xxxxxx'
    }
}
compileSdkVersion 23
buildToolsVersion "24.0.2"
defaultConfig {
    applicationId "com.xxxx"
    minSdkVersion 14
    targetSdkVersion 22
    versionCode 61
    versionName "4.1.8.1"
    multiDexEnabled true
    signingConfig signingConfigs.XXXX

    ndk {
        abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
    }
}

buildTypes {
    release {
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.XXXX
    }
    debug {
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.XXXX
    }
}
productFlavors {
}

dexOptions {
    javaMaxHeapSize "4g"
}

packagingOptions {
    exclude 'META-INF/LICENSE.txt'
}
}

repositories {
    mavenLocal()
    maven {
        name "jcenter"
        url "http://jcenter.bintray.com/"
    }
    }

    dependencies {
        ...
    }

输入图像描述

输入图像描述


你是否在使用即时运行来进行调试? - Mohammed Atif
请注意,ProGuard仅处理类文件,而在屏幕截图中可以看出两个版本之间的资源不同。发布版apk有更多的可绘制对象。您是否可能有额外的依赖项用于发布类型? - T. Neidhart
@T.Neidhart发布了一个未签名的版本,大小为55MB,但如果我签名后,它会增加到71MB。 - Thinsky
@Thinsky,你解决了吗?我也遇到了同样的问题,调试APK大小为10MB,发布APK大小为19MB,我正在使用最新版本的Android Studio。 - Anant Shah
@AnantShah 抱歉,我没有得到任何解决方案。 - Thinsky
显示剩余2条评论
2个回答

2
进一步解释sosite的答案,似乎只有在比较针对特定设备构建的Run或Debug的debug apk(即使没有启用Instant Run)而不是通过Build > Build APK(针对任何支持的设备)构建的debug apk时才会发生这种情况。
任何变体(甚至debug本身),通过Build APK构建都将包含该变体的所有资源。此外,Run/Debug apk包括特定于单个设备的预编译类,而Build APK则仅包括编译器确定适用于所有支持设备的一些通用预编译类 - 全部dexing仅在设备本身安装apk时发生。
我使用 zipdiff 比较了同一项目、同一变体生成的 Debug 版本和 Build APK 版本的 apk 包,并 发表了简化输出以进行演示(也可作为 html 文件查看)。

1
当您在本地为特定类型的手机构建应用程序时,Android Studio仅附加必要的资源文件。当您构建发布版本时,您已经附加了所有类型的可绘制对象,因此您的应用程序文件大小可能会大幅增加。
我建议您尽可能使用jpg替换png,并当然进行压缩-通常我使用tinyPNG网站或者只是Photoshop ;)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接