2016-09-22 5 views
9

Я использую proguard для уменьшения размера apk. Отладка apk уменьшилась с 90 мб до 55 мб, но подписанный apk - 71 мб. Вот мой build.gradle код:android release apk больше, чем debug apk

применить плагин: '' com.android.application

андроида {

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' 
} 

}

репозиториев { mavenLocal() Maven { наименование "jcenter" URL "http://jcenter.bintray.com/" } }

зависимостей { ... }

enter image description here

enter image description here

+0

Вы используете мгновенный запуск для отладки? –

+0

Обратите внимание, что ProGuard обрабатывает только файлы классов, тогда как на скриншотах очевидно, что ресурсы различаются между двумя версиями. В выпуске apk есть много других возможностей. Возможно ли, что у вас есть дополнительные зависимости для типа выпуска? –

+0

Я не использовал мгновенный запуск @MohammedAtif. – Thinsky

ответ

1

Когда вы строите ваше приложение локально для определенного типа телефона, то Android Studio присоединить только необходимые файлы ресурсов. Когда вы создаете версию выпуска, вы прикрепляете все типы чертежей, чтобы размер файла приложения мог резко увеличиться.

Я предлагаю вам использовать JPG вместо PNG в стольких местах, как вы можете и сжать их, конечно, - часто я использую tinyPNG веб-сайт или просто Photoshop;)

0

Как сказал sosite, но и идти дальше, кажется, что это связано с сравнением сборки отладки, предназначенной для запуска или отладки в определенном устройстве, даже без включенного Instant Run, а не для сборки отладки через Build> Build APK.

Я сравнил эти два с zipdiff и опубликовал выход html here. Извините, что это не легко просматривать, но вы все равно можете получить суть этого из исходного кода.

В общем, кажется, что вариант Run включает в себя классы с использованием декейса, определенные для выбранного целевого устройства, и исключает ресурсы, которые его не используют, в то время как нормальные сборки (которые также включают варианты выпуска) включают только общие классы с использованием dexed и все доступные ресурсы.

Смежные вопросы