2016-03-21 5 views
1

Mit den gleichen Quellcodes ist die Größe meiner gebauten apk 521KB, wenn es innerhalb Android Studio während der Größe von gebaut wurde die gleiche apk ist 359KB, wenn sie innerhalb der gesamten Codebasis erstellt wurde. Ist das normal? Oder sollte ich eine zusätzliche Beschreibung in meinem build.gradle hinzufügen, um die apk-Größe vernünftiger zu machen?Ist es normal, dass die Größe der apk unter Android Stuio größer ist als die gleiche apk unter Code-Basis bauen

+0

Erstellst du APK in Android Studio im Freigabemodus mit Proguard? Proguard entfernt ungenutzte Importe und reduziert APK-Größe für etwa 10-15% für mich. –

+0

Vielen Dank für Ihre Hilfe! Es hat geholfen! Nach der Verwendung von Proguard wird meine apk Größe 399 KB! Aber ich bin noch ein bisschen neugierig, ist es möglich, es noch kleiner zu machen als 359 KB? – superx3

+0

Bitte sehen Sie meine Antwort. Ich werde es bearbeiten, um Ihre weitere Forschung zu verfolgen. –

Antwort

0

Android Studio haben spezielle Instrument für Code schrumpfen - Proguard.

Sie können es, indem Sie folgende in Ihrer build.gradle aktivieren:

android { 
    ... 

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

Also, wenn Sie Proguard aktivieren, wird es nicht genutzten Ein- und endgültige APK werden weniger entfernen.

Wenn die APK-Größen immer noch unterschiedlich sind, können Sie beide APKs (einfache ZIP-Dateien) manuell anzeigen. Sie können sie Stück für Stück vergleichen. Einfache APK haben die folgende Struktur:

assets\ 
lib\ 
META-INF\ 
res\ 
resources.arsc 
classes.dex 
AndroidManifest.xml 

Die wichtigsten Dateien sind classes.dex und resources.arsc. Klassen ist Ihr Anwendungsbinärcode, Ressourcen sind die Ressourcentabelle, die dem Android-Installationsprogramm hilft, den Ordner res zu dekompilieren.

+0

Vielen Dank für Ihre Hilfe !! Ich mache endlich den apk unter Android Studio Build hat fast die gleiche Größe (359 KB) mit dem einen Build unter Code-Basis. Es stellt sich heraus, dass die "* .bak" -Datei generiert wird, wenn Sie einen Editor wie UltraEdit verwenden, der die zusätzliche Größe belegt! – superx3

+0

Fazit: 1. Verwenden von "Proguard" 2. Entfernen Sie Dateien, die Sie nicht benötigen wie "* .bak", .... aus dem Projekt – superx3

+0

Hallo, Artem Ich habe gerade festgestellt, dass mit der Apk-Build unter Code-Basis zu vergleichen Die in Andorid Studio erstellte Version enthält einen zusätzlichen Ordner, der * .aidl-Dateien enthält. Ist das normal? Sollte nicht diese * .aidl Dateien in classes.dex gewickelt werden? (Oder resources.arsc?) ich packagingOptions zu verwenden versucht hatte, { ausschließen‘../mytest/src/com/mytest/aidl/* .aidl ' } aber es funktioniert nicht! Ich bin mir nicht sicher, welcher Teil schief geht. – superx3

Verwandte Themen