Szukaj…


Uwagi

Aby plik APK był tak mały, jak to możliwe, należy włączyć zmniejszanie, aby usunąć nieużywany kod i zasoby z kompilacji wydania.

Zmniejsz kod za pomocą ProGuard

Aby włączyć zmniejszanie kodu za pomocą ProGuard, dodaj minifyEnabled true do odpowiedniego typu kompilacji w pliku build.gradle .

android {
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile(‘proguard-android.txt'),
                    'proguard-rules.pro'
        }
    }
}

gdzie:

  • minifyEnabled true : włącza zmniejszanie kodu
  • Metoda getDefaultProguardFile('proguard-android.txt') pobiera domyślne ustawienia ProGuard z zestawu SDK systemu Android
  • W pliku proguard-rules.pro możesz dodać niestandardowe reguły ProGuard

Zmniejsz zasoby

Aby włączyć zmniejszanie zasobów, ustaw właściwość shrinkResources na true w pliku build.gradle .

android {
    ...

    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

Zwróć uwagę, ponieważ zmniejszanie zasobów działa tylko w połączeniu ze zmniejszaniem kodu .

Możesz dostosować zasoby, które chcesz zachować, lub odrzucić, tworząc plik XML w następujący sposób:

<?xml version=1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
    tools:keep="@layout/mylayout,@layout/custom_*"
    tools:discard="@layout/unused" />

Zapisz ten plik w folderze res/raw .

Usuń nieużywane zasoby alternatywne

Wszystkie biblioteki są dostarczane z zasobami, które nie są potrzebne do zastosowania w Twojej aplikacji. Na przykład usługi Google Play zawierają tłumaczenia na języki, których Twoja aplikacja nawet nie obsługuje.

Możesz skonfigurować plik build.gradle, aby określić, który zasób chcesz zachować.
Na przykład:

defaultConfig {
    // ...

    resConfigs "en", "de", "it"
    resConfigs "nodpi", "xhdpi", "xxhdpi", "xxxhdpi"
}


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow