Größe der Instant-App reduzieren

Google Play Instant bietet auf einfache Weise umfassende, native Funktionen. Nutzer können Ihre App auch ohne vorherige Installation nutzen, was ein höheres Maß und eine höhere Qualität der Interaktion ermöglicht. Damit eine Instant-App so schnell wie eine typische mobile Webseite geladen wird, müssen Sie jedoch eine gut strukturierte und effiziente Instant-App erstellen. Je kleiner das Binärprogramm Ihrer Instant-App ist, desto schneller wird es geladen und desto reibungsloser ist die Nutzererfahrung.

Dieses Dokument enthält Best Practices zum Verwalten der Struktur und Binärgröße Ihrer App, um eine reibungslose Instant-App-Nutzung zu ermöglichen. Diese Maßnahmen können auch für Ihre installierbare App von Vorteil sein.

In mehrere Funktionsmodule refaktorieren

Die größte Verbesserung der Binärgröße Ihrer Anwendung tritt auf, wenn Sie die Anwendung in mehrere Funktionsmodule refaktorieren. Beginnen Sie mit einem Basisfunktionsmodul und extrahieren Sie dann thematisch zusammenhängende Workflows in eigene Funktionsmodule. Weisen Sie jedem Funktionsmodul eine Startaktivität und eine eindeutige URL zu, damit Nutzer den Workflow des Moduls erfolgreich abschließen können.

Das Basisfeaturemodul sollte beim Erstellen von Featuremodulen so klein wie möglich sein. Achten Sie insbesondere auf die Teile Ihrer App, die Zugriff auf Ihre abhängigen Bibliotheken benötigen. Wenn nur ein Funktionsmodul eine bestimmte Bibliothek verwendet, importieren Sie diese Bibliothek in das Funktionsmodul selbst, nicht in das Basisfeaturemodul. Wenn Sie eine Instant-App für ein bestimmtes Funktionsmodul veröffentlichen möchten, muss die Gesamtgröße dieses Funktionsmoduls und des Basisfunktionsmoduls unter 15 MB liegen.

Best Practices

Beachten Sie beim Refaktorieren Ihrer App die folgenden Best Practices:

Dieselbe Codebasis für beide Anwendungstypen verwenden
Sie können den Projektmanagementprozess Ihrer App vereinfachen, indem Sie dieselbe modulare Codebasis verwenden, um Ihre installierte App und Ihre Instant-Apps zu erstellen.
Designs für mehrere Funktionsmodule entwerfen
Auch wenn Ihre App nur einen Workflow hat und vorerst nur ein einziges Funktionsmodul erfordert, ist es dennoch eine gute Idee, ein Design für mehrere Funktionsmodule zu entwickeln. Auf diese Weise können Sie Ihrer Anwendung vorhandene Module hinzufügen, ohne die Größe des ursprünglichen Funktionsmoduls zu beeinträchtigen.
Konzentrieren Sie sich nicht am Anfang auf die Größenbeschränkung für Featuremodule
Die Größenbeschränkungen für Feature-Module gelten nicht für lokal erstellte Binärprogramme. Sie können eine Instant-App auch über den internen Test-Track veröffentlichen, der eine Beschränkung von 15 MB für die Größen von Feature-Modulen erzwingt. Nur die Alpha- und Produktions-Tracks setzen das Limit von 15 MB durch.

App-Ressourcen aktualisieren

Einige Anwendungen, insbesondere solche mit längeren Codebasisverläufen, enthalten Ressourcen, die von den Binärprogrammen Ihrer Anwendung nicht mehr verwendet werden. Berücksichtigen Sie bei der Suche nach Möglichkeiten, die Module Ihrer Anwendung kleiner zu machen, die folgenden gängigen Quellen von nicht benötigtem Code.

Dateigröße von Bildern reduzieren

Du kannst die Gesamtgröße der Drawables deiner App erheblich reduzieren, indem du das Dateiformat WebP anstelle von PNG verwendest. Google Play Instant bietet vollständige Unterstützung für WebP, einschließlich Transparenz und verlustfreier Komprimierung, sodass die Bildqualität unverändert bleibt.

Entfernen Sie nach Möglichkeit sämtliche Abwärtskompatibilitätsanforderungen für die Verwendung anderer PNG-Bilder. Wenn Sie PNG-Bilder verwenden müssen, platzieren Sie sie in dem Modul, das zum Erstellen und Installieren Ihrer Anwendung verwendet wird.

Nicht verwendete Sprachen entfernen

Wenn deine App mehrere Sprachen unterstützt, Reduziere so viele lokalisierte Ressourcen wie möglich. Dieser Schritt ist besonders nützlich, wenn Sie eine App-Kompatibilitätsbibliothek wie android.support.v7.appcompat verwenden. Diese Bibliothek enthält Nachrichten in vielen Sprachen, von denen einige möglicherweise nicht von Ihrer Anwendung unterstützt werden.

Weitere Informationen finden Sie unter Nicht verwendete alternative Ressourcen entfernen, insbesondere nicht verwendete Sprachen.

Zusätzliche Dateien entfernen

Ihre Anwendung verwendet möglicherweise einige der Ressourcen, die Sie in Ihr Projekt importiert haben, nicht mehr. Um diese Ressourcen zu entfernen, hat Android Studio in dieser Situation eine Lint-Prüfung durchgeführt. So verwenden Sie das Tool:

  1. Drücken Sie Strg + Alt + Umschalttaste + I (Befehlstaste + Alt + Umschalttaste + I unter Mac OS).
  2. Geben Sie im angezeigten Dialogfeld "unused resources" ein.
  3. Wählen Sie die Option Nicht verwendete Ressourcen aus, um die Prüfung der Ressourcennutzung zu starten.

Wenn große Ressourcen in Ihrer App verbleiben, überlegen Sie, ob es möglich ist, sie aus der App zu entpacken und als eigenständige Dateien herunterzuladen, nachdem der Nutzer mit der Interaktion mit der App begonnen hat. Diese Art der Verzögerung beim Laden des Images erfordert in der Regel eine Codeänderung. Sie kann jedoch die Dateigröße Ihrer Instant-App erheblich reduzieren, indem nur die Ressourcen heruntergeladen werden, die der Nutzer explizit anfordert.

Nicht verwendete Bibliotheken entfernen

Mit zunehmendem Umfang einer App kann sie eine überraschende Anzahl von Abhängigkeiten annehmen, insbesondere einer der folgenden Typen:

  • Native Bibliotheken:Bibliotheken, die nativen Code enthalten, den Ihre Instant-App nie ausführt.
  • Transitive Abhängigkeiten:Bibliotheken, von denen die importierten Bibliotheken Ihrer Anwendung abhängen.

Android Studio bietet mehrere nützliche Tools, mit denen Sie irrelevante Abhängigkeiten im Projekt Ihrer App identifizieren können:

Externe Bibliotheken

Die Ansicht Projekt in Android Studio enthält den Abschnitt Externe Bibliotheken.

Dieser Abschnitt enthält jede Bibliothek, die von Ihrer Anwendung verwendet wird, einschließlich nativer Code und aller Transitiven Abhängigkeiten. Suchen Sie in dieser Ansicht nach nicht verwendeten oder doppelten Bibliotheken, die Ihre Anwendung nicht benötigt.

APK-Analysetool

Mit dem Tool APK Analyzer können Sie verschiedene Builds vergleichen, einschließlich Instant-App-Builds.

Nachdem Sie ermittelt haben, welche Bibliotheken Ihre App nicht benötigt, schließen Sie sie aus, indem Sie Ihrer Gradle-Build-Datei ähnliche Zeilen hinzufügen:

<feature_module>/build.gradle-Datei

Groovig

dependencies {
    implementation('some-important-but-large-library') {
        exclude group: 'com.example.imgtools', module: 'native'
    }
}

Kotlin

dependencies {
    implementation('some-important-but-large-library') {
        exclude(group = "com.example.imgtools", module = "native")
    }
}

Weitere Informationen zum Reduzieren der Gesamtimportgröße der Abhängigkeiten Ihrer Anwendung finden Sie im Gradle-Leitfaden zu Abhängigkeitsmanagement.

Cloud-Bereitstellung von Assets implementieren

Wenn Sie die Größe weiter verkleinern möchten, müssen Sie sich möglicherweise auf die Bereitstellung von Assets in der Cloud verlassen.