Android App Bundles
Was ist ein Android App Bundle (AAB)?
Das Android App Bundle (AAB) wurde 2018 eingeführt und ist ein Veröffentlichungsformat für Android, das von Google Play und anderen App-Shops sowie von Build-Tools wie Android Studio, Bazel, Buck, Cocos Creator, Gradle, Unity und Unreal unterstützt wird.
Was ist der Unterschied zwischen AABs und APKs?
App Bundles sind nur für die Veröffentlichung vorgesehen und können nicht auf Android-Geräten installiert werden. Das Android-Paket (APK) ist das installierbare, ausführbare Format für Android-Apps. App Bundles müssen von einem Vertriebspartner in APKs verarbeitet werden, damit sie auf Geräten installiert werden können.
Ist das AAB ein proprietäres Format, das nur bei Google Play verwendet werden kann?
Nein, das AAB ist nicht proprietär. Das App Bundle ist Open Source, daher kann es von jedem App Shop unterstützt werden. Bundles werden von Google Play und einigen anderen App-Shops unterstützt.
Kann ich durch die Erstellung von AABs nicht in anderen App-Shops veröffentlichen?
Nein, Sie können weiterhin in anderen App-Shops veröffentlichen. Wenn Sie Ihre App erstellen, können Sie gleichzeitig AABs und APKs erstellen, je nachdem, welches Veröffentlichungsformat für den jeweiligen App-Shop erforderlich ist.
Wie viel Aufwand ist mit der Verwendung eines AAB verbunden?
Bei den meisten Apps ist die Erstellung eines AAB genauso aufwendig wie die Erstellung eines APK, da Sie beim Erstellen einfach AAB anstelle von APK auswählen. Bei einigen Apps sind möglicherweise einige Änderungen erforderlich, um die Vorteile von AABs voll auszuschöpfen.
Verwenden bereits Entwickler AABs?
Ja. Über 1 Million Apps und Spiele verwenden App Bundles, um ihre Produktionsreleases bei Google Play zu veröffentlichen, darunter die meisten beliebten Apps, die Milliarden aktiver Installationen repräsentieren. Wenn Sie Google Play verwenden, um Apps zu installieren, wurden viele der Apps auf Ihrem Gerät als App Bundles veröffentlicht.
Verhindert das AAB, dass Nutzer Apps per Sideloading installieren?
Nein, AABs verhindern nicht, dass Nutzer APKs aus beliebigen Quellen installieren. Da AAB nur ein Veröffentlichungsformat ist, ändert sich dadurch nichts an der Funktionsweise der Android-Plattform.
Wenn ein Entwickler AABs verwendet, um optimierte APKs bereitzustellen, kann es dann zu Problemen für Nutzer kommen, die diese APKs teilen?
Es gab schon immer seltene Fälle, in denen APKs unter Android nicht direkt von einem Gerät auf ein anderes übertragen werden konnten, unabhängig davon, ob die App über APKs oder AABs veröffentlicht wurde. Wenn APKs für ein Gerät optimiert wurden (z. B. für eine bestimmte Chiparchitektur), kann es beim direkten Übertragen dieser APKs auf ein anderes Gerät zu Problemen kommen, wenn das Zielgerät nicht den Eigenschaften des ursprünglichen Geräts entspricht. In diesen Fällen muss ein APK oder eine Reihe von APKs installiert werden, die für das Zielgerät geeignet sind.
Kann ich in mehreren App-Shops veröffentlichen?
Ja, Sie können in mehreren App-Shops veröffentlichen, unabhängig davon, ob Sie AABs verwenden oder nicht. Sie können AABs gleichzeitig bei Google Play und in anderen App-Shops veröffentlichen, die AABs unterstützen, und APKs in anderen App-Shops oder auf Websites veröffentlichen, die AABs nicht unterstützen.
Gilt die AAB-Anforderung für interne Apps, die in Managed Google Play veröffentlicht werden?
Ja, interne Apps, die über die Play Console in Managed Google Play veröffentlicht werden, müssen als AABs veröffentlicht werden.
Die Veröffentlichung von APKs wird weiterhin über den iFrame von Managed Play unterstützt.
Play App-Signatur
Was ist die Play App-Signatur?
Jedes APK unter Android muss kryptografisch mit einem App-Signaturschlüssel signiert sein, damit es installiert werden kann. Die Android-Plattform verwendet den Schlüssel, um sicherzustellen, dass alle App-Updates mit der auf einem Gerät installierten App übereinstimmen. So stammt nach der ersten Installation jedes App-Update vom selben Schlüsselinhaber. Dadurch wird das Risiko böswilliger App-Updates verringert. Die Play App-Signatur wurde 2017 eingeführt, Play App Signing ist der Schlüsselverwaltungsdienst von Google Play, der die App-Signaturschlüssel von Play Entwicklern für ihre über Google Play vertriebenen Apps schützt und verwaltet. Außerdem führt die Play App-Signatur den Signaturvorgang für die APKs aus, die von Google Play aus hochgeladenen AABs generiert werden. Die Play App-Signatur ist für neue Apps erforderlich, damit sie AABs verwenden können.
Warum hat Google die Play App-Signatur eingeführt?
App-Signaturschlüssel waren jahrelang eine Herausforderung für Play-Entwickler. Wenn der Schlüssel verloren geht, können keine App-Updates mehr an Nutzer ausgeliefert werden. Wenn ein Schlüssel kompromittiert wird, besteht für Nutzer das Risiko böswilliger Updates. Bei der Softwareverteilung ist es üblich, dass Vertriebskanäle die Schlüssel für die von ihnen vertriebene Software speichern und verwalten, da dies diese Risiken verringert. Die Play App-Signatur wurde 2017 eingeführt, um das Risiko des Verlusts von Play-Vertriebsschlüsseln zu beseitigen, Play-Nutzer nach einer Schlüsselkompromittierung zu schützen und Entwicklern die Vorteile der laufenden Sicherheitsinvestitionen von Google zu bieten.
Wie sorgt Google für die Sicherheit der Play App-Signatur?
Google schützt die Schlüssel von Entwicklern in derselben branchenführenden, sicheren Infrastruktur, die auch zum Schutz der eigenen Schlüssel von Google verwendet wird. Schlüssel werden verschlüsselt auf gesperrten, dedizierten Schlüsselverwaltungsservern mit strengen ACLs und manipulationssicheren Prüfpfaden für alle Vorgänge gespeichert. Die Cloud-Sicherheitsvorgänge und Best Practices von Google sind online verfügbar.
Kann ich den App-Signaturschlüssel auswählen, den Google Play für meine App verwendet?
Ja, wenn Sie eine neue App erstellen, können Sie entweder einen App-Signaturschlüssel von Google generieren und speichern lassen oder einen eigenen App-Signaturschlüssel auswählen und eine Kopie davon hochladen.
Ich möchte denselben App-Signaturschlüssel für Google Play und andere App-Shops verwenden. Ist das noch möglich?
- Sie können einen Schlüssel lokal generieren und eine Kopie davon in Google Play hochladen. So können Sie denselben Schlüssel verwenden, der von Google Play verwendet wird, wenn Sie Ihre App für andere App-Shops erstellen.
- Sie können einen von Google generierten Schlüssel für die Play App-Signatur verwenden und dann mit dem von Google generierten Schlüssel signierte Distributions-APKs aus der Play Console herunterladen. Diese APKs können Sie dann für die Verteilung in anderen App-Shops oder auf Websites verwenden.
Kann ich die Play App-Signatur für eine App verwenden, die vor August 2021 erstellt wurde, ohne eine Kopie meines App-Signaturschlüssels anzugeben?
Ja, die Play App-Signatur unterstützt die Option „Schlüssel aktualisieren“ für Apps, die vor August 2021 erstellt wurden. So kann die App die Play App-Signatur mit einem neuen App-Signaturschlüssel verwenden. Wenn Sie diese Option verwenden möchten, müssen Sie nach dem Upgrade bei jedem Release zwei Dinge hochladen: ein App Bundle und ein altes APK, das mit Ihrem alten App-Signaturschlüssel signiert ist. Google Play verwendet Ihre AABs, um APKs zu generieren, die mit dem aktualisierten Schlüssel für neue Installationen und deren Updates signiert sind. Gleichzeitig verwendet Google Play Ihre alten APKs für App-Updates für Nutzer, die Ihre App bereits installiert haben. Im Laufe der Zeit werden die alten Installationen zum aktualisierten Schlüssel migriert (z.B. wenn Nutzer zu einem neuen Mobilgerät wechseln).
Gibt es eine Möglichkeit, denselben App-Signaturschlüssel für Apps zu verwenden, die vor August 2021 und nach August 2021 erstellt wurden?
Im Allgemeinen wird nicht empfohlen, denselben App-Signaturschlüssel für mehrere Apps zu verwenden. Es ist sicherer, für jede App einen eindeutigen Schlüssel zu verwenden. Wenn Sie jedoch denselben App-Signaturschlüssel für mehrere Apps verwenden müssen, ist das möglich. Sie können eine Kopie des vorhandenen App-Signaturschlüssels hochladen, wenn Sie die Play App-Signatur konfigurieren. Wenn Sie den vorhandenen App-Signaturschlüssel nicht freigeben möchten, können Sie die kommende Option „Schlüssel aktualisieren“ für Ihre App verwenden, die vor August 2021 erstellt wurde, um die Play App-Signatur zu verwenden. So können sowohl Ihre App, die vor August 2021 erstellt wurde, als auch Ihre App, die nach August 2021 erstellt wurde, denselben neuen Schlüssel verwenden.
Kann ich den von der Play App-Signatur verwendeten App-Signaturschlüssel ändern?
Ja, Apps können ihren Schlüssel ändern, indem sie in der Play Console ein Schlüssel-Upgrade anfordern.
Wie kann ich prüfen, ob Google Play unerwartete Änderungen an meinem Code vorgenommen hat?
Sie können jederzeit Artefakte von Google Play und von „Neueste Releases und Bundles“ in der Play Console herunterladen und prüfen. Außerdem bietet die Play Developer API bald die Möglichkeit, APKs zu überprüfen, bevor Sie sie an einen Release-Track übertragen. Sie können auch eine optionale Funktion namens Codetransparenz für App Bundles verwenden. Mit der Codetransparenz können Sie und Ihre Endnutzer einen App-Shop wie Google Play für den von ihm bereitgestellten Code zur Rechenschaft ziehen.
Wie funktioniert die Codetransparenz für App Bundles?
Die Codetransparenz ist eine optionale Funktion, mit der Sie einen App-Shop, der Ihre App vertreibt, für den von ihm bereitgestellten Code zur Rechenschaft ziehen können. Wenn Sie die Codetransparenz verwenden möchten, generieren Sie beim Erstellen eine Codetransparenzdatei in Ihrer App, die Ihren Code darstellt. Dabei handelt es sich um eine Datei, die Hashes des Codes Ihrer App enthält. Sie signieren sie mit Ihrem eigenen privaten Codetransparenzschlüssel, den nur Sie besitzen. Sie müssen Google Ihren Codetransparenzschlüssel niemals zur Verfügung stellen. Anschließend können Sie auf einem Gerät ein installiertes APK prüfen und bestätigen, dass die von Ihnen signierte Codetransparenzdatei immer noch mit dem Code des APK übereinstimmt. So können Sie sicher sein, dass der durch die Codetransparenz verifizierte Code nicht geändert wurde, auch wenn das APK selbst während der Verteilung neu signiert wurde. Wenn es eine Abweichung gibt, ist das ein Beweis dafür, dass der Code während der Verteilung geändert wurde. Die Codetransparenz ersetzt keine APK-Signaturen und ist nicht Teil der Android-Plattform.
Große Apps und Spiele bei Google Play veröffentlichen
Welche Größenbeschränkungen gelten für Apps bei Google Play, wenn AABs verwendet werden?
Die maximale komprimierte Downloadgröße für ein aus einem AAB generiertes Basismodul beträgt 500 MB. Google Play generiert zuerst das Basismodul und dann alle zusätzlichen Funktionsmodule oder Asset-Packs aus Ihrem AAB. Anschließend prüft Google Play, ob die maximale kumulative komprimierte Downloadgröße, die ein einzelnes Gerät erhält, 4 GB nicht überschreitet.
Unterstützt Google Play Erweiterungsdateien (OBBs) für AABs?
Nein, Google Play unterstützt keine Erweiterungsdateien für AABs. Erweiterungsdateien (OBBs) sind eine ältere Google Play-spezifische Lösung für die Veröffentlichung großer Apps und Spiele mit APKs. Es gibt Google- und Drittanbieter-Alternativen für AABs, die größer als 500 MB sind.
Wie veröffentliche ich eine App oder ein Spiel, das größer als 500 MB ist, bei Google Play?
Große Apps und Spiele, die AABs verwenden, können entweder Google Play-Bereitstellungsdienste wie Play Asset Delivery oder Play Feature Delivery verwenden, um die Größenbeschränkung von 500 MB zu überschreiten, oder sie können Content Delivery Networks von Drittanbietern verwenden.
Welche Vorteile bietet Play Asset Delivery gegenüber Erweiterungsdateien (OBBs)?
Bei Google Play waren für APKs separate Erweiterungsdateien (OBBs) erforderlich, um Nutzern zusätzliche Ressourcen zur Verfügung zu stellen. Da OBBs jedoch nicht signiert und im externen Speicher der App gespeichert wurden, sind sie nicht sehr sicher. Mit Play Asset Delivery (PAD) können Spiele, die größer als 500 MB sind, OBBs ersetzen, indem das gesamte Spiel als einzelnes App-Bundle im Google Play Store veröffentlicht wird. PAD bietet nicht nur einen reibungsloseren Veröffentlichungsprozess und flexible Bereitstellungsmodi, sondern auch Updates, die weniger Gerätespeicherplatz benötigen. Dadurch können höhere Installationsraten erzielt werden.
Da ASTC jetzt auf etwa 80 % der Geräte unterstützt wird, können Sie mit der Funktion zur Texturkomprimierung von PAD ASTC für Geräte bereitstellen, die es unterstützen. Sie können die größte Bandbreite an Geräten ansprechen und gleichzeitig die verfügbare Hardware und den Gerätespeicher effizient nutzen.
Google Play-Bereitstellungsfunktionen, die durch AABs freigeschaltet werden
Welche neuen Funktionen bietet Google Play Entwicklern, die AABs verwenden?
App-Shops wie Google Play verarbeiten AABs zu installierbaren APKs. Da sie für die APKs verantwortlich sind, können sie neue Funktionen und Dienste anbieten, die Entwicklern und Nutzern Vorteile bringen. Google Play bietet bereits solche Dienste an, die von Entwicklern weit verbreitet und geschätzt werden. Zwei Beispiele sind Play Feature Delivery und Play Asset Delivery.
Was ist Play Feature Delivery?
Eine der Funktionen von App Bundles besteht darin, dass sie die Aufteilung einer App in mehrere Module ermöglichen, die als „Funktionsmodule“ bezeichnet werden. Diese Module können dann dynamisch zu unterschiedlichen Zeiten an Nutzer und Geräte ausgeliefert werden. Früher musste alles bei der Installation als eine Datei ausgeliefert werden. Mit Play Feature Delivery können Sie anpassen, welche Funktionsmodule an welches Gerät und wann ausgeliefert werden. Dabei stehen die Bereitstellungsmodi „Install-time“, „Conditional“ und „On-demand“ zur Verfügung. So können Sie die Größe Ihrer App reduzieren, was zu mehr Installationen führt, und die App-Nutzung anpassen. Sie könnten beispielsweise eine selten verwendete Funktion wie den Kundensupport bei Bedarf an die Nutzer ausliefern, die sie benötigen, anstatt bei der Installation. So wird die Größe der ersten Installation für alle Nutzer reduziert. Oder Sie können die vollständige App-Nutzung auf High-End-Geräten bereitstellen, während Sie auf Einsteigergeräten mit Einschränkungen bei Daten und Gerätespeicher eine kleinere App-Nutzung mit optionalen On-Demand-Funktionen anbieten.
Was ist Play Asset Delivery?
Mit Play Asset Delivery können Spieleentwickler die Nutzerfreundlichkeit verbessern und die Wartezeit für Nutzer verkürzen, indem sie große Assets dynamisch zum optimalen Zeitpunkt bereitstellen. Bei Spielen, die Play Asset Delivery verwenden, kann auch die Funktion zur Texturkomprimierung genutzt werden. So erhalten Ihre Nutzer nur die Assets, die für ihr Gerät geeignet sind, ohne dass Speicherplatz oder Bandbreite verschwendet werden.
Sind diese Google Play-Bereitstellungsfunktionen auch in anderen App-Shops verfügbar?
Nein, bei Play Feature Delivery und Play Asset Delivery interagieren Apps und Spiele direkt mit dem Google Play Store. Diese optionalen Dienste sind Beispiele dafür, wie sich Google Play als App-Shop von anderen abhebt und Play-Entwicklern und ‑Nutzern zusätzlichen Mehrwert und Nutzen bietet. Andere App-Shops, die App Bundles und APKs verwenden, bieten Entwicklern eigene App-Shop-Dienste an.