Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android

8 Möglichkeiten, um Ihre Android App APK Größe zu reduzieren

by
Length:LongLanguages:

German (Deutsch) translation by Alex Grigorovich (you can also view the original English article)

Seit dem Start des Android Marketplace im März 2012 hat sich die Größe der durchschnittlichen Android-App verfünffacht.

Ein Teil dieser Erhöhung ist sinnvoll: Der für das typische Android-Gerät verfügbare Speicher hat zugenommen. Warum also nicht diesen zusätzlichen Speicher verwenden, um eine bessere Benutzererfahrung zu erzielen?

Es gibt jedoch einen Punkt, an dem sich all diese hochauflösenden Grafiken, innovativen Funktionen und umfangreichen Multimedia-Inhalte negativ auf die Benutzererfahrung auswirken. Niemand möchte eine App, deren Download ewig dauert und die dann einen Teil davon entfernt Gerätespeicher!

Es gibt sogar Hinweise darauf, dass eine umgekehrte Korrelation zwischen der Größe Ihrer APK und der Anzahl der Personen besteht, die Ihre App herunterladen. Laut einer kürzlich durchgeführten Studie können Sie für jede Erhöhung der APK-Größe um 6 MB einen Rückgang der Anzahl der Personen erwarten, die Ihre App nach dem Besuch der Google Play-Seite installieren.

Alles, was Sie tun können, um die Größe Ihrer APK zu verringern, wird mehr Benutzer zum Herunterladen Ihrer App ermutigen. In diesem Artikel werde ich Ihnen zeigen, wie Sie eine trimmere, schlankere APK erstellen und sicherstellen, dass Ihre App auf so vielen Geräten wie möglich ausgeführt wird.

Android App Bundles: Unterstützen Sie mehr Geräte und reduzieren Sie gleichzeitig die APK-Größe

Wenn Sie eine Android-App entwickeln, möchten Sie sicherstellen, dass die App mit möglichst vielen verschiedenen Geräten kompatibel ist, indem Sie Code und Ressourcen bereitstellen, die für unterschiedliche Bildschirmdichten, CPU-Architekturen, Sprachen und viele andere Faktoren optimiert sind. Leider bedeutet dies auch, dass jede einzelne Person, die Ihre App herunterlädt, eine Menge Code und Ressourcen erhält, die sie niemals verwenden wird.

Die Unterstützung so vieler Geräte wie möglich, ohne die Größe Ihrer APK drastisch zu erhöhen, ist für Android-Entwickler seit langem ein Problem. Das Android-Team ist jedoch bestrebt, all dies mit einem neuen Veröffentlichungsformat zu ändern, mit dem Sie die gesamte Palette der Android-Geräte unterstützen und gleichzeitig die Größe Ihrer APK reduzieren können. Laut dem offiziellen Android Developers-Blog sollten Sie durch die Veröffentlichung Ihrer App in diesem neuen Android App Bundle-Format (.aab) die Größe Ihrer APK um durchschnittlich 35% reduzieren können.

Sobald Sie Ihre App als .aab-Datei hochgeladen haben, verwendet Google Play diese einzelne Datei, um Folgendes zu generieren:

  • Eine Basis-APK, die den gesamten Code und die Ressourcen enthält, die zur Bereitstellung der Basisfunktionalität Ihrer App erforderlich sind. Jeder, der Ihre App herunterlädt, erhält dieselbe Basis-APK.
  • APKs mit mehreren Konfigurationen, die auf verschiedene Gerätekonfigurationen zugeschnitten sind. Jedes Mal, wenn jemand Ihre App herunterlädt, erhält er eine Konfigurations-APK, die auf sein bestimmtes Gerät zugeschnitten ist und nur den Code und die Ressourcen enthält, die er tatsächlich benötigt.

Um Ihre App als signiertes Android App Bundle zu erstellen, wählen Sie zunächst in der Android Studio-Symbolleiste Erstellen > Signiertes Bundle/APK generieren. Aktivieren Sie dann das Kontrollkästchen Android App Bundle und klicken Sie auf Weiter. Öffnen Sie nun die Modul-Dropdown-Liste und wählen Sie App als Basismodul.

Befolgen Sie die Anweisungen auf dem Bildschirm, um den Erstellungsprozess abzuschließen. Android Studio generiert jetzt eine .aab-Datei und speichert sie im AndroidAppBundle/app/release-Verzeichnis Ihres Computers.

Wenn Sie bereit sind, Ihre .aab-Datei auf Google Play hochzuladen, rufen Sie einfach die Google Play-Konsole auf und wählen Sie Anwendung erstellen.

Sie werden aufgefordert, einige grundlegende Informationen zu Ihrer App einzugeben und dann auf Erstellen und anschließend auf Speichern zu klicken. Wählen Sie im linken Menü der Konsole App-Versionen aus. Entscheiden Sie, auf welchen Track Sie diese App hochladen möchten, wählen Sie die zugehörige Schaltfläche Verwalten aus und klicken Sie auf Release erstellen.

Wenn Sie dazu aufgefordert werden, melden Sie sich bei App Play Signing von Google Play an, was für die Verwendung des App Bundle-Formats obligatorisch ist. Wählen Sie Dateien durchsuchen und dann die .aab-Datei aus, die Sie hochladen möchten.

Upload your Android App Bundle to the Google Play Console Upload your Android App Bundle to the Google Play Console Upload your Android App Bundle to the Google Play Console

Klicken Sie abschließend auf Speichern, um Ihre Konfiguration zu speichern.

Nachdem Sie Ihre App in die Konsole hochgeladen haben, können Sie mithilfe des App-Bundle-Formats sehen, wie viel Platz Sie eingespart haben. Wählen Sie dazu im linken Menü App-Freigaben aus. Suchen Sie die Spur, in die Sie Ihr Bundle hochgeladen haben, und wählen Sie dann Freisetzung bearbeiten und klicken Sie auf , um den Abschnitt Android App Bundle zu erweitern.

Wählen Sie App-Bundle durchsuchen aus. Daraufhin wird eine grobe Schätzung des von Ihnen gespeicherten Speicherplatzes in Prozent angezeigt.

Check how much space youve saved your users by using the aab formatCheck how much space youve saved your users by using the aab formatCheck how much space youve saved your users by using the aab format

Bereitstellung von Funktionen on Demand mit dynamischen Funktion-Modulen

Es ist nicht ungewöhnlich, dass ein Projekt über eine oder mehrere Funktionen verfügt, die für die Bereitstellung der Kernfunktionalität dieser Anwendung nicht erforderlich sind. Sie können die Größe Ihrer APK häufig reduzieren, indem Sie diese Funktionen in optionale APKs für dynamische Funktionen unterteilen, die der Benutzer bei Bedarf bei Bedarf herunterladen kann.

Um ein dynamisches Funktionsmodul zu erstellen, wählen Sie in der Android Studio-Symbolleiste Datei > Neu > Neues Modul... Wählen Sie Dynamisches Funktion-Modul  und anschließend Next.

Von hier aus können Sie die Dropdown-Liste Basis-Anwendungsmodul öffnen und Ihr Basismodul auswählen. Geben Sie Ihrem Modul einen Namen und klicken Sie dann auf Weiter. Aktivieren Sie das Kontrollkästchen On-Demand aktivieren. Wenn Ihr Projekt Android 4.4 oder früher unterstützt, müssen Sie auch das Fixieren aktivieren, da Ihr dynamisches Funktionsmodul diesen Geräten als Multi-APK zur Verfügung steht.

Select the Enable on-demand and Fusing checkboxesSelect the Enable on-demand and Fusing checkboxesSelect the Enable on-demand and Fusing checkboxes

Geben Sie Ihrem Modul schließlich einen öffentlichen Namen, der für den Endbenutzer sichtbar ist. Klicken Sie auf Fertig stellen.

Aktivieren des Zugriffs auf das Dynamische Funktion-Modul

Nachdem Sie ein dynamisches Funktionsmodul erstellt haben, müssen Sie den Benutzern die Möglichkeit geben, es zur Laufzeit anzufordern. Öffnen Sie Ihre build.gradle-Datei auf Modulebene und fügen Sie die Google Play Core-Bibliothek als Projektabhängigkeit hinzu:

Öffnen Sie die Activity oder das Fragment, in die Sie Ihr dynamisches Feature-Modul laden möchten, und fügen Sie Folgendes hinzu:

Sie können jetzt Ihrem dynamischen Funktionsmodul Code und Ressourcen hinzufügen, und Benutzer können das Modul zur Laufzeit anfordern.

Versuchen Sie es vor dem Kauf: Bieten Sie eine Instant Apps APK an

Es ist möglicherweise keine APK im herkömmlichen, installierbaren Sinne, aber Sie können einen Teil Ihrer Anwendung als leichtgewichtige, eigenständige Instant Apps-APK anbieten, die Benutzer dann bei Bedarf laden können. Für alle, die mit extrem begrenztem Speicher oder einem restriktiven Datenplan zu kämpfen haben, sind Instant Apps möglicherweise die einzig praktikable Möglichkeit, Ihre Anwendung zu erleben.

In unserer dreiteiligen Instant Apps-Reihe haben wir eine Instant Apps-APK mit mehreren Funktionen erstellt, die einer eindeutigen URL zugeordnet wurde. Durch die URL-Zuordnung kann Ihre Instant App von jedem Ort im Web aus aufgerufen werden, der Hyperlinks unterstützt, einschließlich Foren, Tweets, Facebook-Posts und Blogs. Die URL-Zuordnung ist jedoch auch ein mehrstufiger Prozess, bei dem Sie eine Webdomain besitzen müssen, in der Sie die Datei assetlinks.json Ihres Projekts hosten können.

In den neuesten Versionen von Android Studio ist das Erstellen einer Instant Apps-APK jetzt noch einfacher, da jetzt eine Instant App erstellt werden kann, die keiner URL zugeordnet ist, wodurch die mit der URL-Zuordnung verbundene Komplexität beseitigt wird.

Sobald Sie Ihre URL-freie Sofort-App veröffentlicht haben, können Benutzer über die Schaltfläche Jetzt testen in der Google Play-Liste Ihrer App darauf zugreifen.

The BuzzFeed app is one example of an Android Instant AppThe BuzzFeed app is one example of an Android Instant AppThe BuzzFeed app is one example of an Android Instant App

Um diese Art von "URL-freien" Instant Apps zu erstellen, benötigen Sie:

  • Android Studio 3.2 oder höher.
  • Instant Apps Development SDK 1.3.0 oder höher.
  • Die neuesten Versionen der Android SDK Build- und Platform-Tools.

Projekte, die Instant Apps unterstützen, haben eine einzigartige Struktur. Wenn Sie die Modularisierung als Teil Ihres Standard-App-Entwicklungsprozesses üben, müssen Sie möglicherweise nur einige Änderungen an Ihrem Projekt vornehmen. Wenn Ihr Projekt jedoch nicht modularisiert ist, sollten Sie bereit sein, einige Zeit mit der Umstrukturierung zu verbringen.

Um Instant Apps zu unterstützen, müssen Sie die folgenden Module erstellen:

  • App-Modul. Dies ist das „standardmäßige“ installierbare App-Modul.
  • Basismodul. Dieser enthält den Code und die Ressourcen, die für alle Module Ihres Projekts verwendet werden, z. B. die Startsymbole Ihrer App.
  • Funktionsmodul. Dieser enthält den Code und die Ressourcen, die für die Bereitstellung einer eigenständigen Funktion erforderlich sind.
  • Instantapp-Modul. Dies ist ein Container, der schließlich alle Funktionsmodule Ihres Projekts in Instant App-APKs umwandelt.
The structure of an Instant App-enabled project The structure of an Instant App-enabled project The structure of an Instant App-enabled project

Weitere Informationen zu dieser einzigartigen Projektstruktur finden Sie unter: Was sind Android Instant Apps?

Wenn Sie ein neues Projekt starten, haben Sie Glück: Sie können ein leeres Projekt erstellen, das bereits über die Instant Apps-Struktur verfügt. Erstellen Sie einfach wie gewohnt ein neues Projekt. Wenn Sie jedoch dazu aufgefordert werden, wählen Sie Dieses Projekt wird Instant-Apps unterstützen.

When creating a project make sure you select the following checkbox This project will support instant apps When creating a project make sure you select the following checkbox This project will support instant apps When creating a project make sure you select the following checkbox This project will support instant apps

Anschließend können Sie jedem Modul wie gewohnt Code und Ressourcen hinzufügen.

Zum Testen Ihrer URL-freien Instant App benötigen Sie ein kompatibles Gerät, das laut offiziellen Android-Dokumenten „die meisten“ physischen Geräte mit Android 5.1 oder höher sind. Wenn Sie den Emulator verwenden, benötigen Sie eine AVD (Android Virtual Device), die eine x86-Architektur mit Android 8.1 oder höher verwendet und die Google-APIs enthält. Sie müssen außerdem in einem gültigen Google-Konto auf Ihrem Testgerät oder AVD angemeldet sein.

Um Ihre Instant App zu testen, wählen Sie in der Android Studio-Symbolleiste Ausführen > Ausführen… und dann Konfigurationen bearbeiten...

Wählen Sie im linken Menü die Option InstantApp. Da wir eine URL-freie Sofort-App testen, suchen Sie das URL-Feld und löschen Sie den gesamten darin enthaltenen Text. Wählen Sie nun Ausführen. Wenn Sie vom Gerät aufgefordert werden, sich für das Instant App-Programm anzumelden, tippen Sie auf Ja, ich bin dabei.

Ihre Sofort-App sollte jetzt auf dem Bildschirm angezeigt werden, ohne dass eine Installation und keine URL erforderlich sind!

Wenn Ihre App veröffentlicht werden soll, können Sie den Signiervorgang entweder zweimal abschließen, um separate installierbare und Instant App-APKs zu erstellen, oder Sie können Ihr Projekt als App-Bundle erstellen.

Veröffentlichen Sie ein Instant Apps-fähiges App-Bundle

In Android Studio 3.3 Beta 1 und höher können Sie Instant Apps mit App Bundles kombinieren, um eine einzelne .aab-Datei zu erstellen, die sowohl Ihre installierbare als auch Ihre Instant App enthält.

Öffnen Sie das Instantapp-Modul Ihres Projekts, um Ihre App so einzurichten, dass eine .aab-Datei mit einer Instant App veröffentlicht wird.

Fügen Sie in der Datei AndroidManifest.xml dieses Moduls Folgendes hinzu:

Öffnen Sie die build.gradle-Datei Ihres App-Moduls und stellen Sie sicher, dass Ihre Instant-Variante einen kleineren versionCode als das installierbare Gegenstück hat:

Wählen Sie in der Android Studio-Menüleiste Erstellen > Signiertes Bundle / APK generieren und erstellen Sie das App-Bundle wie gewohnt. Achten Sie dabei darauf, es mit einem Release-Schlüssel zu signieren.

Entfernen Sie alle nicht verwendeten Methoden, Klassen, Felder, Attribute und Ressourcen

Nicht verwendeter Code und Ressourcen finden leicht ihren Weg in Ihr Projekt, insbesondere wenn Sie Bibliotheken verwenden. Da sie Ihrer App keinen Wert hinzufügen, sollten Sie immer unnötige Assets aufspüren und entfernen. Es gibt verschiedene Tools, die Ihnen helfen können:

1. Fühlen Sie sich abenteuerlustig? Probieren Sie den neuen R8 Code Shrinker aus

Durch das Verkleinern von Code können Sie die Größe Ihrer APK verringern, indem Sie nicht verwendeten Code und Ressourcen löschen.

Android Studio 3.3 Beta 1 bietet eine Vorschau auf das kommende R8-Tool zum Verkleinern von Code, das auch Desugaring und Dexing ausführt und laut Google Code schneller verkleinert als ProGuard.

Um R8 selbst zu testen, stellen Sie sicher, dass Sie Android Studio 3.3 Beta 1 oder höher ausführen, und fügen Sie Ihrer gradle.properties-Datei Folgendes hinzu:

2. Verkleinern Sie Ihren Code mit ProGuard

Zum Zeitpunkt des Schreibens befand sich R8 noch in der Vorschau. Bis es stabil ist, sollten Sie ProGuard verwenden, um nicht verwendete Klassen, Methoden, Felder und Attribute aus Ihrem Code zu entfernen.

Fügen Sie Ihrer build.gradle-Datei auf Modulebene Folgendes hinzu, um ProGuard zu aktivieren:

Beachten Sie jedoch, dass ProGuard möglicherweise Code entfernt, den Ihre Anwendung tatsächlich benötigt. Testen Sie Ihr Projekt daher immer mit aktiviertem ProGuard, bevor Sie es veröffentlichen.

3. Aktivieren Sie das Verkleinern von Ressourcen

Sobald Sie das Verkleinern von Code aktiviert haben, können Sie das Verkleinern von Ressourcen verwenden, um unnötige Ressourcen zu identifizieren und zu entfernen:

4. Verbessern Sie Ihren Code mit Android Lint

Lint ist ein statisches Scan-Tool, mit dem Ressourcen identifiziert werden können, auf die in Ihrem Code nirgendwo verwiesen wird. Lint entfernt diese Ressourcen jedoch nicht. Sie müssen daher den Bericht überprüfen und die identifizierten Ressourcen manuell entfernen.

Um Lint auszuführen, wählen Sie in der Android Studio-Symbolleiste Analysieren > Code überprüfen... Wenn Lint nicht referenzierte Ressourcen erkennt, werden diese im Fenster Prüfergebnisse aufgelistet.

After running a Lint inspection you can check its findings in the Inspection Results window After running a Lint inspection you can check its findings in the Inspection Results window After running a Lint inspection you can check its findings in the Inspection Results window

Konvertieren Sie Ihre PNGs, JPEGs und BMPs in WebP

Wenn Ihr Projekt mehrere Drawables enthält, kann durch Komprimieren die Größe Ihrer APK erheblich reduziert werden.

Wenn die minSdkVersion Ihres Projekts 18 oder höher ist, können Sie Ihre PNGs, JPEGs und BMPs komprimieren, indem Sie sie in das WebP-Format konvertieren.

Klicken Sie zunächst bei gedrückter Ctrl-Taste auf das zu konvertierende Drawable und wählen Sie In WebP konvertieren... Wählen Sie zwischen verlustbehafteter oder verlustfreier Codierung. Wählen Sie Bilder überspringen, wenn das codierte Ergebnis größer als das Original ist, und klicken Sie auf OK, um das Bild zu konvertieren.

Untersuchen Sie Ihre APK mit dem APK Analyzer von Android Studio

Manchmal sind Sie sich nicht ganz sicher, warum Ihre APK außer Kontrolle geraten ist.

Mithilfe des neuen APK Analyzer von Android Studio können Sie die größten Beiträge zur Größe Ihrer APK ermitteln. Mit diesem Tool können Sie die absolute und relative Größe verschiedener Dateikategorien und sogar die Größe einzelner Dateien ermitteln, sodass Sie genau wissen, wo Sie Ihre Bemühungen konzentrieren sollten.

Um eine APK zu analysieren, wählen Sie einfach Erstellen > APK analysieren in der Menüleiste von Android Studio.

Wählen Sie im folgenden Fenster die betreffende APK aus. Der APK Analyzer wird in einem neuen Bereich geöffnet.

The APK Analyzer displays the raw and download size of every file that makes up your APKThe APK Analyzer displays the raw and download size of every file that makes up your APKThe APK Analyzer displays the raw and download size of every file that makes up your APK

Für jede Datei und jeden Ordner zeigt der APK Analyzer Folgendes an:

  • Raw-Dateigröße. Dies ist die entpackte Größe dieses Elements auf der Festplatte.
  • Download-Größe. Dies ist die geschätzte komprimierte Größe des Artikels, wie sie von Google Play geliefert wird.
  • % der gesamten Downloadgröße. Der Prozentsatz der gesamten Downloadgröße der APK, den dieses Element darstellt.

Dies ist nicht die einzige Funktion, die der APK Analyzer bietet.

Stellen Sie sich vor, Sie haben die Größe Ihrer APK erfolgreich reduziert und eine leichtgewichtige Anwendung veröffentlicht, die leuchtende Fünf-Sterne-Bewertungen bei Google Play sammelt. Das bedeutet nicht, dass Sie aufhören können, sich um die Größe der APK zu sorgen! Irgendwann möchten Sie ein Update veröffentlichen, was bedeutet, dass die APK-Größe erneut zu einem wichtigen Problem wird.

Es ist zwar immer eine gute Idee, zu überwachen, wie sich Ihre APK von einer Version zur nächsten entwickelt. Wenn sich die APK-Größe jedoch jemals erheblich erhöht, sollten Sie sich auf jeden Fall genauer ansehen, was los ist.

Mit dem APK Analyzer können Sie alle Unterschiede zwischen Ihrer aktuellen APK und Ihrer vorherigen APK hervorheben. Auf diese Weise können Sie Bereiche und Assets ermitteln, die Sie optimieren oder sogar vollständig entfernen können.

Um APKs zu vergleichen, wählen Sie zunächst in der Menüleiste von Android Studio Build > APK analysieren.

Wählen Sie dann die neueste Version Ihrer APK aus. Wählen Sie in der oberen rechten Ecke des APK-Analysators die Option Mit vorheriger APK vergleichen... Wählen Sie anschließend die vorherige Version Ihrer APK aus. Es sollte ein Popup angezeigt werden, in dem alle Unterschiede zwischen Ihrer aktuellen und Ihrer vorherigen APK hervorgehoben werden.

Vergessen Sie nicht Android Go!

Schwellenländer gehören zu den am schnellsten wachsenden Smartphone-Zielgruppen der Welt, und der Aufstieg von Marken wie Vivo und Oppo hat gezeigt, dass Budget-Geräte das Potenzial haben, diesen schnell wachsenden Markt zu dominieren.

Damit Android dieses völlig neue und wachsende Publikum anspricht, hat Google Android Go veröffentlicht, eine Version von Android mit Leistungs- und Speicherverbesserungen, die eine bessere Benutzererfahrung auf budgetfreundlichen Geräten bieten soll, einschließlich Geräten mit weniger als 1 GB RAM.

Android Go-Nutzer haben Zugriff auf den gesamten Google Play Store. Google hebt jedoch Apps hervor, die für Android Go optimiert sind, einschließlich Anwendungen, die auf dem Gerät des Nutzers weniger als 40 MB belegen.

Wenn Sie den Ratschlägen in diesem Artikel folgen, sollten Sie in der Lage sein, die Größe Ihrer APK für alle Benutzer erheblich zu reduzieren. Wenn Sie jedoch einige zusätzliche Reduzierungen speziell für Android Go-Benutzer vornehmen möchten, können Sie die Multi-APK-Funktion von Android verwenden, um eine für die Android Go-Plattform optimierte APK zu veröffentlichen.

Um eine dedizierte Android Go-App zu erstellen, müssen Sie eine APK erstellen, die denselben Paketnamen und dasselbe Signaturzertifikat wie Ihre "normale" App hat, jedoch einen eindeutigen Versionscode hat.

Wenn Sie Ihr Android Go APK erstellen, müssen Sie Ihrem Manifest außerdem Folgendes hinzufügen:

Abschluss

In diesem Artikel habe ich alle wichtigen Möglichkeiten beschrieben, wie Sie die Größe Ihrer APK reduzieren können, um eine schlankere, schlankere Anwendung zu erstellen, die schneller heruntergeladen wird und weniger Speicherplatz auf dem Gerät des Benutzers beansprucht.

Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.