Zoeken…


Invoering

Proguard is een gratis Java-klasse bestandsversnipperaar, optimizer, obfuscator en preverifier. Het detecteert en verwijdert ongebruikte klassen, velden, methoden en attributen. Het optimaliseert bytecode en verwijdert ongebruikte instructies. Het hernoemt de resterende klassen, velden en methoden met korte betekenisloze namen.

Verklein uw code en bronnen met proguard

Om uw APK-bestand zo klein mogelijk te maken, moet u verkleinen inschakelen om ongebruikte code en bronnen in uw release-build te verwijderen. Deze pagina beschrijft hoe u dat kunt doen en hoe u kunt opgeven welke code en bronnen moeten worden bewaard of verwijderd tijdens de build.

Het inkrimpen van code is beschikbaar met ProGuard, dat ongebruikte klassen, velden, methoden en attributen detecteert en verwijdert uit uw verpakte app, inclusief die uit inbegrepen codebibliotheken (waardoor het een waardevol hulpmiddel is om rond de 64k referentielimiet te werken). ProGuard optimaliseert ook de bytecode, verwijdert ongebruikte code-instructies en verdoezelt de resterende klassen, velden en methoden met korte namen. De verduisterde code maakt uw APK moeilijk om te reverse engineeren, wat vooral waardevol is wanneer uw app beveiligingsgevoelige functies gebruikt, zoals licentieverificatie.

Resource krimpen is beschikbaar met de Android-plug-in voor Gradle, die ongebruikte bronnen verwijdert uit uw verpakte app, inclusief ongebruikte bronnen in codebibliotheken. Het werkt in combinatie met het inkrimpen van code, zodat zodra ongebruikte code is verwijderd, alle bronnen waarnaar niet meer wordt verwezen, ook veilig kunnen worden verwijderd.

Verklein uw code

Om het verkleinen van de code met ProGuard , voegt u minifyEnabled true toe aan het juiste build.gradle in uw build.gradle bestand.

Houd er rekening mee dat het inkrimpen van code de bouwtijd vertraagt, dus u moet het indien mogelijk niet gebruiken bij het maken van fouten. Het is echter belangrijk dat u code krimpt op uw uiteindelijke APK die wordt gebruikt voor het testen, omdat het bugs kan introduceren als u niet voldoende aanpast welke code moet worden bewaard.

Met het volgende fragment uit een build.gradle bestand kan bijvoorbeeld de code worden verkleind voor de release-build:

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

In aanvulling op de minifyEnabled eigendom, de proguardFiles eigenschap bepaalt de ProGuard rules :

De methode getDefaultProguardFile ('proguard-android.txt') haalt de standaard ProGuard-instellingen uit de Android SDK- tools/proguard/ folder . Tip: probeer het bestand proguard-android-optimize.txt op dezelfde locatie om nog meer code te verkleinen. Het bevat dezelfde ProGuard-regels, maar met andere optimalisaties die analyses op bytecode-niveau uitvoeren - binnen en tussen methoden - om uw APK-grootte verder te verkleinen en sneller te laten werken. In het bestand proguard-rules.pro kunt u aangepaste ProGuard-regels toevoegen. Dit bestand bevindt zich standaard in de hoofdmap van de module (naast het bestand build.gradle). Als u meer ProGuard-regels wilt toevoegen die specifiek zijn voor elke buildvariant, voegt u een andere eigenschap proguardFiles toe in het overeenkomstige productFlavor blok. Het volgende Gradle-bestand voegt bijvoorbeeld flav2-rules.pro toe aan de aroma2-productsmaak. Flav2 gebruikt nu alle drie de ProGuard-regels omdat die van het releaseblok ook worden toegepast.

android {
    ...
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                   'proguard-rules.pro'
        }
    }
    productFlavors {
        flavor1 {
        }
        flavor2 {
            proguardFile 'flavor2-rules.pro'
        }
    }
}


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow