Wie verkleinere ich eine apk-Datei? [Duplikat]

9

Als erstes schlagen Sie mir keine offizielle Dokumentation oder dies . Wenn wir eine App aus Android Studio mit vordefinierter Textansicht erstellen, die einfach "Hallo Welt" anzeigt, generiert sie eine APK mit mehr als 1,2 MB. Aber einige Apps im Playstore sind unter 500KB mit vielen Funktionen verfügbar. Ich habe bereits alle Funktionen von Android Studio wie proguard, minifyEnabled usw. angewendet, aber das hilft nicht. Also, wie kann ich diese Komprimierungsstufe erreichen?

    
Rohit Singh 06.02.2018, 08:23
quelle

4 Antworten

7

Punkte zur Verringerung der APK-Größe:
1. Verwende vektor ziehbaren
2. Verwenden Sie zum Zeichnen einer einfachen Ansicht xml Drawable 3. Drehen Sie die Bilder mit Hilfe von XML-Zeichen, um sie wiederzuverwenden (zB bei Pfeiltasten) 4. Erstellen Sie Zeichenketten durch Code
5. Verwenden Sie aaptOptions {cruncherEnabled = false}, um Bilder zu komprimieren 6. Verwenden Sie das WebP-Format für große Bilder 7. Vermeiden Sie Aufzählungen und verwenden Sie @IntDef Annotation
8. Verwenden Sie shrinkResources in Gradle, um nicht verwendete Ressourcen zu entfernen 9. Verwenden Sie resConfig "en" in Gradle, um andere Lokalisierungen zu entfernen.

    
Sanjay Kumar 06.02.2018 08:39
quelle
5

Das Problem könnte in der Support-Bibliothek sein. Durch das Hinzufügen von com.android.support:appcompat-v7:27.0.2 zu einem leeren Projekt wurde die APK-Größe von 80 KB auf 1,3 MB erhöht. Wenn Ihre MinSDK also hoch genug ist und Sie ihre Hilfsklassen nicht benötigen, können Sie sie loswerden.

Sie können den APK Analyzer verwenden, um zu sehen, wie viel Speicherplatz tatsächlich benötigt wird.

>     
makovkastar 06.02.2018 08:43
quelle
5

Wenn Sie ein neues Projekt von Android Studio erstellen, fügt die IDE automatisch einige Abhängigkeiten zu Ihrem Projekt hinzu.

%Vor%

Wenn Sie support library und constraint layout library bündeln, wird Ihre Release-APK-Größe schnell steigen, auch wenn Sie keinen Code hinzufügen.

Sie können eine sehr kleine apk erhalten, wenn Sie Support-Bibliothek und Constraint-Layout-Bibliothek entfernen und einfach alle System-API verwenden.

Nach dem Entfernen der Support-Bibliothek sollten Sie

  1. Verwenden Sie Activity anstatt AppCompatActivity , YourActivity extends Activity

  2. Verwenden Sie kein Thema aus der Support-Bibliothek in Ihrem AndroidManifest.xml

  3. Verwenden Sie FrameLayout , um ConstraintLayout in Ihrem Layout zu ersetzen

alijandro 06.02.2018 08:54
quelle
-2

Danke für das Posten alijandro , Makovkastar und Sanjay Manjoka Jungs. Nachdem ich Ihre Antworten gelesen und mit dem Internet gekämpft habe, habe ich folgendes gefunden:

  1. Entfernen Sie unnötige automatisch erzeugte Bibliotheken von build.app (Modul: app) wie ConstraintLayout, appcompat, junit etc.
  2. Verwenden Sie resConfig "en" in build.gradle unter defaultConfig Block.
  3. Verwenden Sie shrinkResources true in build.gradle unter dem Release-Block von buildTypes.
  4. Verwenden Sie minifyEnabled true in build.gradle unter dem Release-Block von buildTypes.
  5. Verwenden Sie aaptOptions {cruncherEnabled = false}, um Bilder zu komprimieren
  6. Verwenden Sie das webP-Format für große Bilder
  7. Vermeiden Sie Aufzählungen und verwenden Sie die @IntDef Annotation
  8. Gehe zu Build & gt; Analysiere APK und drücke OK. Es zeigt den Status unserer App wie ein Bild unten.
Rohit Singh 06.02.2018 11:29
quelle