22 Mrz

Reduzieren Sie Ihre App-Größe

Benutzer vermeiden es oft, Apps herunterzuladen, die zu groß erscheinen, insbesondere in Schwellenländern, in denen Geräte mit oft punktuellen 2G- und 3G-Netzen verbunden sind oder nach Pay-by-the-Byte-Plänen arbeiten. Diese Seite beschreibt, wie Sie die app größe ändern android können, so dass mehr Benutzer Ihre App herunterladen können. Der einfachste Weg, um sofortige Einsparungen bei der App-Größe zu erzielen, wenn Sie in Google Play veröffentlichen, ist das Hochladen Ihrer App als Android App Bundle, einem neuen Upload-Format, das alle kompilierten Codes und Ressourcen Ihrer App enthält, aber die APK-Generierung und Signierung in Google Play verschiebt.

Das neue App-Serving-Modell von Google Play, Dynamic Delivery genannt, verwendet dann Ihr App-Bundle, um optimierte APKs für die Gerätekonfiguration jedes Benutzers zu generieren und bereitzustellen, so dass sie nur den Code und die Ressourcen herunterladen, die sie zum Ausführen Ihrer App benötigen. Sie müssen nicht mehr mehrere APKs erstellen, signieren und verwalten, um verschiedene Geräte zu unterstützen, und die Benutzer erhalten kleinere, optimierte Downloads.

app größe ändern android

Da Google Play eine komprimierte Download-Größenbeschränkung von 150 MB oder weniger für Apps durchsetzt, die mit App-Bundles veröffentlicht wurden, ist es dennoch eine gute Idee, die dazu beschriebenen Richtlinien anzuwenden, um die Download-Größe Ihrer App so weit wie möglich zu reduzieren.

Für Apps, die Sie in Google Play veröffentlichen, indem Sie signierte APKs hochladen, sind komprimierte Downloads auf 100 MB oder weniger beschränkt.

Verstehen der APK-Struktur

Bevor Sie besprechen, wie Sie die Größe Ihrer App reduzieren können, ist es hilfreich, die Struktur des APK einer App zu verstehen. Eine APK-Datei besteht aus einem ZIP-Archiv, das alle Dateien enthält, aus denen Ihre App besteht. Diese Dateien beinhalten Java-Klassen-Dateien, Ressourcendateien und eine Datei mit kompilierten Ressourcen.

Ein APK enthält die folgenden Verzeichnisse:

META-INF/: Enthält die Signaturdateien CERT.SF und CERT.RSA sowie die Manifestdatei MANIFEST.MF.
Vermögenswerte/: Enthält die Assets der App, die die App über ein AssetManager-Objekt abrufen kann.
res/: Enthält Ressourcen, die nicht in resources.arsc kompiliert sind.
lib/: Enthält den kompilierten Code, der spezifisch für die Softwareschicht eines Prozessors ist. Dieses Verzeichnis enthält ein Unterverzeichnis für jeden Plattformtyp, wie armeabi, armeabi-v7a, arm64-v8a, x86, x86, x86_64 und mips.

Ein APK enthält auch die folgenden Dateien. Unter ihnen ist nur AndroidManifest.xml obligatorisch.

ressourcen.arsc: Enthält kompilierte Ressourcen. Diese Datei enthält den XML-Inhalt aus allen Konfigurationen des Ordners res/values/values/. Das Paketierungstool extrahiert diesen XML-Inhalt, kompiliert ihn in binärer Form und archiviert den Inhalt. Dieser Inhalt umfasst Sprachzeichenketten und Stile sowie Pfade zu Inhalten, die nicht direkt in der Datei resources.arsc enthalten sind, wie z.B. Layoutdateien und Bilder.
Klassen.dex: Enthält die im DEX-Dateiformat kompilierten Klassen, die von der virtuellen Dalvik/ART-Maschine verstanden werden.
AndroidManifest.xml: Enthält die Kern-Manifestdatei von Android. Diese Datei listet den Namen, die Version, die Zugriffsrechte und die referenzierten Bibliotheksdateien der App auf. Die Datei verwendet das binäre XML-Format von Android.

Reduzierung der Ressourcenanzahl und -größe

Die Größe Ihres APK hat einen Einfluss darauf, wie schnell Ihre App geladen wird, wie viel Speicher sie verbraucht und wie viel Strom sie verbraucht. Eine der einfachen Möglichkeiten, Ihr APK kleiner zu machen, besteht darin, die Anzahl und Größe der darin enthaltenen Ressourcen zu reduzieren. Insbesondere können Sie Ressourcen entfernen, die Ihre Anwendung nicht mehr verwendet, und Sie können skalierbare Drawable-Objekte anstelle von Bilddateien verwenden. Dieser Abschnitt beschreibt diese Methoden sowie mehrere andere Möglichkeiten, wie Sie die Ressourcen in Ihrer App reduzieren können, um die Gesamtgröße Ihrer APK zu verringern.
Entfernen Sie ungenutzte Ressourcen

Das Flusen-Tool, ein in Android Studio enthaltener statischer Codeanalysator, erkennt Ressourcen in Ihrem Res/Ordner, auf die Ihr Code nicht verweist.

Hinweis: Das Flusentool scannt nicht die Objekte/Ordner, Objekte, auf die über Reflection verwiesen wird, oder Bibliotheksdateien, die Sie mit Ihrer App verknüpft haben. Außerdem entfernt es keine Ressourcen; es warnt Sie nur vor ihrer Anwesenheit.

Bibliotheken, die Sie zu Ihrem Code hinzufügen, können ungenutzte Ressourcen enthalten. Gradle kann Ressourcen in Ihrem Namen automatisch entfernen, wenn Sie shrinkResources in der build.gradle-Datei Ihrer App aktivieren.