Eine geringe App-Größe steht in direktem Zusammenhang mit dem Erfolg des Downloads, insbesondere bei Schwellenländer mit schlechten Netzwerkverbindungen oder schwachem Netzwerk Geschwindigkeit. Dies kann zu niedrigeren App-Nutzungsraten und damit Umfang und Reichweite der Zielgruppe. Es gibt jedoch mehrere Möglichkeiten, die Größe Ihrer App zu reduzieren.
Best Practices
App als Android App Bundle hochladen
Der einfachste Weg, bei der Veröffentlichung auf Google sofort die Größe der App zu reduzieren Laden Sie Ihre App als Android App Bundle hoch, ein neues Veröffentlichungsformat, das den gesamten kompilierten Code und und die APK-Erstellung und -Signatur bei Google Play verzögert.
Größe des Laufzeitcodes reduzieren
Suchen Sie nach Code, den Ihre App zur Laufzeit nicht verwendet, z. B. Klassen oder automatisch generiertem Code. Code-Optimierer wie Mit R8 lässt sich die Codegröße optimieren, können sie keinen Code haben, der durch Laufzeitkonstanten geschützt ist. Scheck austauschen Flags mit Compile-Zeitkonstanten, um verschiedene Optimierungsmöglichkeiten Werkzeuge. Sie können das Verkleinern von Code und Ressourcen in Ihrer Gradle-Konfigurationsdatei aktivieren:
android {
buildTypes {
getByName("release") {
isMinifyEnabled = true
isShrinkResources = true
}
}
}
Unnötige Layouts entfernen
Führen Sie nicht verwendete Layouts mit kleinen Änderungen an der Benutzeroberfläche zusammen und entfernen Sie alle unnötigen um die Codegröße der App zu reduzieren. Darüber hinaus können Sie dynamisch Layouts und Ansichten nach Möglichkeit rendern. So vermeiden Sie das Zeichnen statischer Vorlagen und wenden alternative Layouts ohne technischen Aufwand an.
Selten verwendete Funktionen neu bewerten
Speziell für Android (Go-Edition) optimiert werden, indem Funktionen deaktiviert werden, die die Messwerte für aktive Nutzer pro Tag niedrig sind. Beispiele: Entfernen komplexe Animationen, große GIF-Dateien oder andere ästhetische Ergänzungen die für den Erfolg einer App erforderlich sind.
Dynamic Delivery verwenden
Play Feature Delivery verwendet erweiterte Funktionen von App Bundles, sodass bestimmte Funktionen Ihrer App unter bestimmten Bedingungen bereitgestellt oder on demand heruntergeladen werden. Sie können Funktionsmodule für die kundenspezifische Zustellung. Ein besonderer Vorteil von Funktionsmodulen ist die Möglichkeit, festlegen, wie und wann verschiedene Funktionen Ihrer App auf Geräte mit Android 5.0 (API-Level 21) oder höher
Größe des übersetzbaren Strings reduzieren
Sie können die Android-Gradle-Eigenschaft resConfigs
verwenden, um
alternative Ressourcendateien,
die Ihre App nicht benötigt. Wenn Sie eine
Bibliothek mit Sprachressourcen wie AppCompat oder Google Play
Dienste) enthält, enthält Ihre App alle übersetzten Sprachstrings für die Bibliothek
Nachrichten gesendet werden, unabhängig von der App-Übersetzung. Wenn Sie nur das Feld
Sprachen, die deine App offiziell unterstützt, kannst du diese Sprachen angeben
mithilfe des Attributs resConfig
. Ressourcen für nicht angegebene Sprachen sind
entfernt.
Wenn Sie Ihre Sprachressourcen auf Englisch und Französisch beschränken möchten, können Sie
defaultConfig
, wie unten gezeigt:
android {
defaultConfig {
...
resConfigs "en", "fr"
}
}
Selektive Übersetzung verwenden
Wenn ein bestimmter String in der Benutzeroberfläche der App nicht sichtbar ist, können Sie und übersetzen lassen. Zeichenfolgen für das Debugging, für Ausnahmemeldungen, oder URLs müssen Stringliterale im Code und nicht als Ressourcen sein.
Übersetzen Sie beispielsweise URLs nicht.
<string name="car_frx_device_incompatible_sol_message">
This device doesn\'t support Android Auto.\n
<a href="https://support.google.com/androidauto/answer/6395843">Learn more</a>
</string>
Sie kennen möglicherweise <
und >
, da dies Escape-Zeichen für
<
und >
. Sie werden hier benötigt, denn wenn Sie ein <a>
-Tag darin einfügen,
eines <string>
-Tags entfernt, löscht der Android-Ressourcen-Compiler sie, da sie
das Tag nicht erkennt. Das bedeutet jedoch, dass Sie den HTML-Code
und die URL in 78 Sprachen ein. Stattdessen können Sie den HTML-Code entfernen:
<string name="car_frx_device_incompatible_sol_message">
This device doesn\'t support Android Auto.
</string>
Native Binärdateien mit gemeinsamen Abhängigkeiten kombinieren
Wenn Ihre Anwendung unterschiedliche JNI-Implementierungen (Java Native Interface) hat mit gemeinsamen zugrunde liegenden Abhängigkeiten, nehmen die verschiedenen Binärprogramme zu. die APK-Größe mit redundanten Komponenten. Sie können mehrere JNI-Binärdateien kombinieren, in eine JNI-Binärdatei verpackt, während die Java- und JNI-Dateien getrennt bleiben. Dadurch kann deine APK-Größe erheblich reduziert werden.