APK Expansion Files: Unterschied zwischen den Versionen

Aus Android Wiki
((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.)
(2x Rechtschreibung)
 
Zeile 3: Zeile 3:


== Hintergrund ==
== 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 {{Android|2.3}} den ''StorageManager''<ref>http://developer.android.com/reference/android/os/storage/StorageManager.html</ref> 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<ref>http://developer.android.com/google/play/expansion-files.html</ref>.
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 Speicherplatz 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 {{Android|2.3}} den ''StorageManager''<ref>http://developer.android.com/reference/android/os/storage/StorageManager.html</ref> 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<ref>http://developer.android.com/google/play/expansion-files.html</ref>.


== App-Zugriff ==
== App-Zugriff ==
Zeile 9: Zeile 9:


== Schutz vor fremdem Zugriff ==
== 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'').
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ützen, 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 ==
== Erstellung von Erweiterungsdateien ==

Aktuelle Version vom 25. Mai 2017, 09:37 Uhr

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[Bearbeiten | Quelltext bearbeiten]

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 Speicherplatz 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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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ützen, 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[Bearbeiten | Quelltext bearbeiten]

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

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]