Google Play Instant bietet vielfältige, native Funktionen direkt im Web . Nutzer können deine App ohne vorherige Installation verwenden, wodurch eine und die Qualität der Interaktion erhöhen. Damit eine Instant-App so schnell geladen wird wie bei einer herkömmlichen mobilen Webseite. Sie müssen jedoch eine gut strukturierte, eine effiziente Instant-App. Je kleiner das Binärprogramm deiner Instant App, desto schneller und desto reibungsloser ist die User Experience.
Dieses Dokument enthält Best Practices für die Verwaltung der Struktur und binäre Größe für eine reibungslose Instant-App-Erfahrung. Sie können dieselben um auch Ihre installierbare App zu nutzen.
In mehrere Funktionsmodule refaktorieren
Die größte Verbesserung der Binärgröße Ihrer App tritt auf, wenn Sie die App in mehrere Funktionsmodule. Mit einem Basisfeature beginnen Modul und thematisch zusammenhängende Workflows in eigene Funktionsmodule extrahieren. Weisen Sie jedem Funktionsmodul eine Startaktivität und eine eindeutige URL zu, damit Benutzer den Workflow des Moduls erfolgreich abschließen kann.
Halten Sie das Basisfunktionsmodul beim Erstellen von Funktionsmodulen möglich. Achten Sie besonders auf die Bereiche Ihrer App, benötigen Zugriff auf Ihre abhängigen Bibliotheken. Wenn nur ein Funktionsmodul einer bestimmten Bibliothek, importieren Sie diese Bibliothek in das Feature-Modul selbst, nicht in die Basis Funktionsmodul. Wenn Sie eine Instant-App für einen eines bestimmten Funktionsmoduls, die Gesamtgröße des Elements Modul und das Basisfunktionsmodul müssen kleiner als 15 MB sein.
Best Practices
Beachten Sie bei der Refaktorierung Ihrer App die folgenden Best Practices:
- Für beide App-Typen dieselbe Codebasis verwenden
- Sie können den Projektmanagementprozess Ihrer App vereinfachen, indem Sie dieselben modulare Codebasis, um sowohl deine installierten als auch deine Instant Apps zu erstellen.
- Entwicklung für mehrere Funktionsmodule
- Auch wenn deine App nur einen Workflow hat und nur eine Funktion erfordert ist es vorerst immer noch eine gute Idee, ein Design für mehrere Funktionsmodule zu erstellen. So können Sie Ihrer App vorhandene Module hinzufügen, ohne dass dies Auswirkungen auf des ursprünglichen Funktionsmoduls.
- Konzentrieren Sie sich zu Beginn nicht auf die Größenbeschränkung des Featuremoduls.
- Größenbeschränkungen für Funktionsmodulen gelten nicht für lokal erstellte Binärdateien. Sie können veröffentlichen Sie eine Instant-App auch über den internen Test-Track, Maximale Größe von Funktionsmodulen: 15 MB Nur die alpha- und In Produktions-Tracks gilt das Limit von 15 MB.
App-Ressourcen aktualisieren
Einige Apps, insbesondere solche mit längeren Codebase-Verläufen, enthalten Ressourcen, die die Binärdateien Ihrer Anwendung nicht mehr verwenden. Wenn Sie nach Möglichkeiten suchen, die Module Ihrer App kleiner sind, sollten Sie folgende häufige Ursachen für überflüssige Code.
Dateigröße von Bildern verringern
Du kannst die Gesamtgröße der Drawables deiner App deutlich reduzieren, indem du das WebP Dateiformat anstelle von PNG verwenden. Google Play Instant bietet umfassenden Support für WebP, einschließlich Transparenz und verlustfreier Komprimierung, bleibt gleich.
Entfernen Sie nach Möglichkeit alle Anforderungen an die Abwärtskompatibilität für die Verwendung anderer PNGs. Bilder. Wenn Sie PNG-Bilder verwenden müssen, platzieren Sie diese in dem Modul, das für die um Ihre App zu erstellen und zu installieren.
Nicht verwendete Sprachen entfernen
Wenn deine App mehrere Sprachen unterstützt, entferne so viele lokalisierte Ressourcen wie
wie möglich. Dieser Schritt ist besonders nützlich, wenn Sie eine App
Kompatibel“ , z. B. android.support.v7.appcompat
.
Diese Mediathek enthält Nachrichten in vielen Sprachen, von denen deine App möglicherweise
werden nicht unterstützt.
Weitere Informationen finden Sie im Hilfeartikel Nicht verwendete Alternativen entfernen Ressourcen, insbesondere nicht verwendeten Sprachen.
Überflüssige Dateien entfernen
Einige der Ressourcen, in die Sie importiert haben, werden von Ihrer Anwendung möglicherweise nicht mehr verwendet für Ihr Projekt. Um diese Ressourcen zu entfernen, gibt es in Android Studio eine Lint-Prüfung für diese spezielle Situation. So verwenden Sie das Tool:
- Drücken Sie Strg + Alt + Umschalttaste + I bzw. Befehlstaste + Alt + Umschalt + I (Mac OS).
- Geben Sie im angezeigten Dialogfeld
"unused resources"
ein. - Wählen Sie die Option Nicht verwendete Ressourcen aus, um die Ressourcennutzung zu starten. Inspektionsprozess.
Wenn große Ressourcen in Ihrer App verbleiben, überlegen Sie, ob es möglich ist, entpacken Sie sie aus Ihrer App und laden Sie sie nach dem der Nutzer beginnt, mit Ihrer App zu interagieren. Diese Art von Verzögerungen beim Laden von Bildern erfordert in der Regel eine Codeänderung. Dies kann jedoch die App-Dateigröße, indem nur die Ressourcen heruntergeladen werden, die ein Nutzer explizit -Anfragen.
Nicht verwendete Bibliotheken entfernen
Mit zunehmendem Umfang einer App kann sie eine überraschende Anzahl von Abhängigkeiten annehmen, insbesondere der folgenden Typen:
- Native Bibliotheken:Bibliotheken, die nativen Code enthalten, den Ihre Instant-App die App nie ausgeführt wird.
- Transitive Abhängigkeiten:Bibliotheken, in die Ihre Anwendung importiert wird hängt davon ab,
Android Studio bietet mehrere nützliche Tools, mit denen Sie irrelevante Abhängigkeiten im Projekt Ihrer Anwendung:
- Externe Bibliotheken
Die Ansicht Projekt in Android Studio enthält den Abschnitt Externe Bibliotheken.
Dieser Bereich enthält alle Bibliotheken, die in Ihrer App verwendet werden, einschließlich nativer und alle transitiven Abhängigkeiten. Suchen Sie in dieser Ansicht nach nicht verwendeten oder duplizierten die deine App nicht benötigt.
- APK-Analysetool
Sie können das Tool APK Analyzer verwenden, um einschließlich Instant-App-Builds.
Nachdem Sie ermittelt haben, welche Bibliotheken Ihre App nicht benötigt, schließen Sie sie aus, Fügen Sie Ihrer Gradle-Build-Datei Zeilen wie diese hinzu:
Cool
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 Gesamtgröße des Imports finden Sie im Gradle-Leitfaden unter Abhängigkeit Verwaltung.
Cloud-Bereitstellung von Assets implementieren
Wenn Sie die Größe weiter reduzieren möchten, müssen Sie sich möglicherweise auf die Bereitstellung von Assets in der Cloud verlassen.