[英]android release apk bigger than debug apk
我正在使用 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 {
...
}
進一步解釋sosite 的答案,似乎只有在比較通過 Run 或 Debug 構建的debug
apk 用於特定設備(即使沒有啟用 Instant Run)而不是通過 Build > Build APK 構建的debug
apk(對於任何受支持的設備)時,才會發生這種情況.
通過Build APK 構建的任何變體(甚至debug
本身)都將包含該變體的所有資源。 此外,運行/調試apk 包含特定於該單個設備的預索引類,而構建 APK僅包含編譯器確定對所有支持的設備安全的一些通用預索引類 - 完整的索引僅發生在設備本身中,安裝apk時。
我已經將通過Debug生成的 apk 與另一個通過Build APK用於同一項目的相同變體進行了 zipdiff 壓縮,並發布了用於演示的簡化輸出( 也可作為 html 提供)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.