2017-01-30 6 views
5

Я нашел два возможных пути для получения снимаемой APKОгромная разница между Release APK - Подписана APK размер

  1. Определение Ароматизаторы продукта & подписи Config, как показано ниже в файле модуля build.gradle, а затем нажав на кнопку Run (betaRelease Config)

    android { 
    signingConfigs { 
        my_alias { 
         keyAlias 'my_alias' 
         keyPassword '*******' 
         storeFile file('*******') 
         storePassword '******' 
        } 
    } 
    compileSdkVersion 23 
    buildToolsVersion "23.0.3" 
    
    defaultConfig { 
        minSdkVersion 16 
        targetSdkVersion 22 
        versionCode 9 
        versionName "0.2" 
        resConfigs "en","hi","te" 
        multiDexEnabled true 
    } 
    
    buildTypes { 
        release { 
         minifyEnabled true 
         shrinkResources true 
         proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
         signingConfig signingConfigs.my_alias 
        } 
        debug { 
         minifyEnabled false 
        } 
    } 
    
    productFlavors { 
        alpha { 
         applicationId = "***************" 
         resValue 'string', 'app_name', '**********' 
         resValue 'string', 'instabug_app_id','*******************' 
         manifestPlaceholders = [onesignal_app_id    : "*******************", 
               onesignal_google_project_number: "************"] 
        } 
        beta { 
         applicationId = "***************" 
         resValue 'string', 'app_name', '**********' 
         resValue 'string', 'instabug_app_id','*******************' 
         manifestPlaceholders = [onesignal_app_id    : "*******************", 
               onesignal_google_project_number: "************"] 
        } 
    } 
    aaptOptions { 
        additionalParameters "--no-version-vectors" 
    } 
    } 
    
  2. Использование Формировать Подписана APK вариант из меню сборки в Android Studio

Существует огромная разница с первым APK с 14,5 МБ, а второй - с 22,5 МБ. Используя APK Analyzer, я видел, что второй дублирует чертежи в папке res, как показано ниже. Меньший выпуск APK (14,5 МБ) работает хорошо на всех устройствах.

enter image description here enter image description here

  1. Почему мне нужно больше одного? Можно ли загрузить обычную версию APK в магазин воспроизведения?

  2. Есть ли какая-либо конфигурация, позволяющая избежать дублирования чертежей?

+2

Щелкните правой кнопкой мыши по вашему приложению в Проводнике Android, выберите рефакторинг, а затем щелкните по удалению неиспользуемых ресурсов. –

+0

Это уже сделано! –

ответ

2

Я постараюсь ответить на этот вопрос, исходя из моих наблюдений.

1.

Почему мне нужно больше одного? Можно ли загрузить обычную версию APK в магазин воспроизведения?

Когда вы отпустите apk, нажав кнопку «Выполнить», вы настроите таргетинг на определенное устройство (эмулятор или USB-устройство), и вы генерируете ресурсы только для этой цели. Вот почему у вас меньше .apk-файла.

Если вы хотите развернуть и настроить всю плотность устройств, вы должны использовать опцию «Создать подпись APK» для предоставления ресурсов (например, изображений) для всех устройств.

Меньший выпуск APK (14,5 МБ) хорошо работает на всех устройствах.

Я думаю, потому что изображения масштабируются, чтобы поместиться на экране. Но вы теряете качество на изображениях таким образом.

2.

Есть ли конфигурация строить избежать дубликатов вводимого коэффициента?

в Providing Resources instruction написано, что:

Направление компоновки вашего приложения. ldrtl означает «layout-direction-right-to-left». ldltr означает «layout-direction-left-to-right» и является неявным значением по умолчанию.

Все это означает, что у вас нет дублированных чертежей, но теперь они находятся в соответствующих каталогах.

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