App-Größe reduzieren

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
  &lt;a href="https://support.google.com/androidauto/answer/6395843"&gt;Learn more&lt;/a&gt;
</string>

Sie kennen möglicherweise &lt; und &gt, 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.