APK Expansion Files (*.obb)

Aus Android Wiki
Version vom 7. August 2016, 16:21 Uhr von Florian (Diskussion | Beiträge) ((was soll das für eine Information sein? Kann gerne wieder eingefügt werden, mit mehr Kontext :)) Änderung 15503 von 93.232.195.19 (Diskussion) rückgängig gemacht.)

APK Expansion Files (deutsch: etwa APK Erweiterungsdateien) sind Dateien, die Zusatzinhalte einer App speichern, die zur eigentlichen Installationsdatei (APK) mitgeliefert werden können. Diese Erweiterungspakete werden als Opaque binary blob auf dem externen Speicher im Ordner Android/obb/<Paketname> abgelegt, wobei <Paketname> der Name des Androidprojektes ist.

Hintergrund

Der Google Play Store erlaubt als maximale Größe einer APK-Datei 50 MB, was für den Großteil der Apps mehr als ausreichend ist um den Bytecode und zusätzliche Inhalte, wie Grafiken, Sounddateien (assets genannt) u.Ä. zu speichern. Gerade in Zeiten hochauflösender mobiler Displays und bspw. mobilen Gaming, gibt es einige App-Bereiche, die deutlich mehr Spericherplatz benötigen, um Inhalte, wie 3D Grafiken oder große Soundspuren, zu speichern. Vor der Einführung von APK Expansion Files, mussten die Entwickler diese Zusatzinhalte nach der Installation über eigene Server hosten und nach der Installation der App durch den User herunterladen lassen. Da dies weder kosteneffizient, noch benutzerfreundlich ist, hat Google mit Android 2.3 Gingerbread "Gingerbread" den StorageManager[1] eingeführt, welcher den Zugriff auf obb Dateien ermöglicht. Seitdem können Entwickler zu Ihrer App insgesamt 2 Erweiterungsdateien mit einer maximalen Größe von jeweils 2 GB über den Play Store zu Ihrer App ausliefern[2].

App-Zugriff

Während der Installation (über den Google Play Store) werden die Erweiterungsdateien automatisch mit heruntergeladen und auf dem externen Speicher abgelegt. Die App kann anschließend über eine Instanz der StorageManagers Klasse diese obb-Datei einbinden (mountObb) um so auf die Inhalte zugreifen zu können.

Schutz vor fremdem Zugriff

Grundsätzlich sollte jede App nur die Erweiterungsdateien verwenden, die auch von ihr mitgeliefert werden. Um die Inhalte in einem Erweiterungspaket vor fremden Zugriff zu schützten, kann man bei der Erstellung dieser einen geheimen Schlüssel angeben, der zur Entschlüsselung und den Zugriff auf die Daten benötigt wird (Für den App-Zugriff erlaubt StorageManager::mountObb die Angabe eines zweiten Parameters key).

Erstellung von Erweiterungsdateien

Für Linux-basierte Betriebssysteme stellt Google das Tool jobb bereit, mit welchem sich verschlüsselte und unverschlüsselte Erweiterungspakete erstellen lassen.

Einzelnachweise