android发布apk比调试apk大

2023-11-24

我正在使用 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'
}
}

and

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

    dependencies {
        ...
    }

enter image description here

enter image description here


进一步解释索西特的回答,似乎只有在比较a时才会发生这种情况debug通过运行或调试构建的 apk 适用于特定设备(即使没有启用即时运行),而不是debug通过“构建”>“构建 APK”构建的 apk(对于任何支持的设备)。

任何变体(甚至debug本身)通过构建构建APK将包括该变体的所有资源。另外,运行/调试apk 包含特定于该单个设备的预索引类,而构建APK其中仅包含一些编译器确定对所有支持的设备安全的通用预索引类 - 完整的索引仅在安装 apk 时发生在设备本身中。

我已经 zipdiff-ed 生成的 apkDebug与另一个通过构建APK对于同一项目的相同变体和发布了简化的输出用于演示(也可以作为 html 提供).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android发布apk比调试apk大 的相关文章

随机推荐