【问题标题】:android release apk bigger than debug apkandroid 发布的 apk 比调试 apk 大
【发布时间】:2017-01-30 20:42:16
【问题描述】:

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

【问题讨论】:

  • 您是否使用即时运行进行调试?
  • 请注意,ProGuard 仅处理类文件,而在屏幕截图中,很明显两个版本之间的资源不同。发布的 apk 有更多的可绘制对象。您是否可能对发布类型有其他依赖项?
  • 我没有使用即时运行@MohammedAtif。
  • @T.Neidhart 是的,发布的 apk 有更多的可绘制对象。但是不知道为什么,大家有什么建议吗?
  • @T.Neidhart 发布但未签名也是 55mb,但如果我签名它会增加到 71mb。

标签: android android-studio proguard minify


【解决方案1】:

进一步解释sosite's answer,似乎只有在比较通过运行或调试为特定设备(即使没有启用即时运行)构建的debug apk 而不是通过构建构建的debugapk 时才会发生这种情况>构建 APK(适用于任何受支持的设备)。

通过Build APK 构建的任何变体(甚至是debug 本身)都将包含该变体的所有资源。此外,Run/Debug apk 包括特定于该单个设备的预索引类,而 Build APK 仅包括编译器确定安全的一些通用预索引类所有支持的设备 - 完全 dexing 仅发生在设备本身,当安装 apk 时。

我已经将一个通过 Debug 生成的 apk 与另一个通过 Build APK 生成的 apk 压缩为同一项目的相同变体,published the simplified output 用于演示 (@987654323 @)。

【讨论】:

    【解决方案2】:

    当您为特定类型的手机在本地构建应用时,Android Studio 仅附加必要的资源文件。当您构建发布版本时,您已附加所有类型的可绘制对象,因此您的应用文件大小会急剧增加。

    我建议您在尽可能多的地方使用 jpg 代替 png,当然还可以压缩它们 - 我经常使用 tinyPNG 网站或只使用 Photoshop ;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-29
      • 2016-12-23
      • 2021-04-23
      • 2020-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多