Das Android-Ökosystem verwendet eine Vielzahl von Dateiformaten zum Packen, Verteilen und Speichern von App-Daten. Wenn Sie jemals eine App von einer Drittanbieterquelle heruntergeladen haben, sind Sie wahrscheinlich auf Dateierweiterungen gestoßen, die über die bekannte APK hinausgehen. Formate wie XAPK, APKS, APKM, AAB und OBB dienen jeweils einem bestimmten Zweck im Android-App-Lebenszyklus.
Dieses Handbuch soll eine vollständige Referenz für alle wichtigen Android-Dateiformate sein. Entwickler, Power-User, die Apps von der Seite laden, und neugierige Leser, die einfach nur wissen möchten, was diese Dateien tatsächlich enthalten, finden unten jedes Format im Klartext erklärt.
APK: Android-Paket-Kit
Das APK ist das grundlegende Dateiformat für Android-Anwendungen. Es ist seit der Einführung von Android das Standardinstallationsformat und bleibt das Format, das das Android-Betriebssystem nativ für die App-Installation versteht.
Was es enthält
Eine APK-Datei ist im Wesentlichen ein ZIP-Archiv mit einer bestimmten internen Struktur:
- AndroidManifest.xml, binäre XML-Datei, die den Paketnamen, die Komponenten, Berechtigungen und Anforderungen der App deklariert
- classes.dex (und classes2.dex usw.), kompilierter Dalvik-Bytecode, der den Java/Kotlin-Code der App enthält
- resources.arsc, Kompilierte Ressourcentabelle, die Ressourcen-IDs ihren Werten zuordnet
- res/, Verzeichnis mit Ressourcen wie Layouts, Zeichenelementen und Zeichenfolgen, auf die durch die ID verwiesen wird
- assets/, Rohe Asset-Dateien, auf die die App zur Laufzeit über den AssetManager zugreift
- lib/, Native Bibliotheken, organisiert nach CPU-Architektur (z). B. lib/arm64-v8a/
- META-INF/, Signaturdateien und Zertifikatsinformationen
Wenn Sie darauf stoßen
APK-Dateien sind das, was Sie herunterladen, wenn Sie Apps von Drittanbieterquellen seitlich laden. Sie werden auch über den Play Store auf Ihrem Gerät installiert, obwohl moderne Play Store-Installationen häufig geteilte APKs verwenden, die aus App Bundles generiert werden.
Wie man damit umgeht
APK-Dateien können direkt auf Android installiert werden, indem man sie mit einem Dateimanager öffnet oder adb install verwendet. Sie können deren Inhalte auch untersuchen, indem Sie die Erweiterung in .zip umbenennen und extrahieren oder indem Sie unser APK-Verifizierer verwenden, um Signaturen und Metadaten zu überprüfen.
AAB: Android-App-Bundle
Das Android App Bundle ist Googles Veröffentlichungsformat für den Play Store. Seit August 2021 müssen alle neuen Apps im Play Store als AABs und nicht als APKs eingereicht werden.
Was es enthält
Eine AAB-Datei verwendet ein Protokollpuffer-basiertes Format und enthält:
- Basismodul: Kern-App-Code und Ressourcen, die auf jedem Gerät erforderlich sind
- Konfigurationsaufteilungen: Ressourcen organisiert nach Bildschirmdichte, CPU-Architektur und Sprache
- Dynamische Funktionsmodule: Optionale Funktionen, die bei Bedarf heruntergeladen werden können
- Bundle-Metadaten: Anleitung für Google Play zum Generieren gerätespezifischer APKs
Wenn Sie darauf stoßen
Als normaler Benutzer stoßen Sie normalerweise nicht direkt auf AAB-Dateien. Sie werden von Entwicklern während des Build- und Upload-Prozesses verwendet. Wenn Sie jedoch eine AAB-Datei erhalten (vielleicht aus den Build-Artefakten eines Open-Source-Projekts), müssen Sie diese vor der Installation in das APK-Format konvertieren.
Wie man damit umgeht
Verwenden Sie das Befehlszeilendienstprogramm bundletool von Google oder unser AAB-zu-APK-Konverter, um ein installierbares APK aus einer AAB-Datei zu generieren. Durch den Konvertierungsprozess werden entweder universelle APKs (größer, funktioniert überall) oder gerätespezifische APKs (kleiner, gerätespezifisch) erstellt.
XAPK: Erweiterte APK
XAPK ist ein von APKPure populäres Containerformat, das ein APK zusammen mit den zugehörigen OBB-Datendateien bündelt oder APK-Konfigurationen in ein einziges herunterladbares Paket aufteilt.
Was es enthält
Eine XAPK-Datei ist ein ZIP-Archiv, das Folgendes enthält:
- Eine Basis-APK-Datei (die Hauptanwendung)
- OBB-Dateien (Erweiterungsdaten für Spiele und große Apps)
- Teilen Sie optional APK-Dateien für verschiedene Gerätekonfigurationen auf
- Eine manifest.json-Datei, die den Paketinhalt und Installationsanweisungen beschreibt
- Eine Symboldatei für Anzeigezwecke
Wenn Sie darauf stoßen
Beim Herunterladen großer Apps oder Spiele aus App-Repositorys von Drittanbietern stoßen Sie auf XAPK-Dateien. Spiele, die zusätzliche Datendateien erfordern (zuvor als OBB-Dateien verteilt), werden üblicherweise als XAPKs gepackt, um den Download-Prozess in einer einzigen Datei zu vereinfachen.
Wie man damit umgeht
XAPK-Dateien können nicht direkt vom Standardpaketinstallationsprogramm von Android installiert werden. Sie benötigen entweder eine spezielle XAPK-Installations-App oder können unser XAPK-zu-APK-Konverter verwenden, um die Basis-APK zu extrahieren. Für Spiele, die OBB-Daten erfordern, müssen Sie die OBB-Dateien auch mit unserem OBB-Extraktor extrahieren und im richtigen Verzeichnis ablegen.
APKS: APK-Set
Das APKS-Format ist die Ausgabe des Bundletools von Google beim Generieren gerätespezifischer APKs aus einer AAB-Datei. Es wird auch von einigen App-Backup-Tools verwendet, um geteilte APK-Installationen zu speichern.
Was es enthält
Eine APKS-Datei ist ein ZIP-Archiv, das Folgendes enthält:
- toc.pb, Ein Protokollpuffer-Inhaltsverzeichnis, das die Split-Struktur beschreibt
- splits/, Verzeichnis, das das Basis-APK und alle Konfigurations-Split-APKs enthält
- Optional eigenständige APKs für Geräte, die keine geteilten Installationen unterstützen
Wenn Sie darauf stoßen
Sie stoßen auf APKS-Dateien, wenn Sie bundletool lokal verwenden, beim Sichern von im Play Store installierten Apps oder beim Herunterladen von bestimmten Drittanbieter-Repositorys, die die geteilte APK-Struktur beibehalten.
Wie man damit umgeht
Sie können APKS-Dateien mit dem Befehl install-apks von bundletool installieren oder sie mit unserem Fusion von APKS zu APK in ein einzelnes APK konvertieren. Beachten Sie, dass das Zusammenführen geteilter APKs zu einem universellen APK die Dateigröße erhöhen kann, da alle Konfigurationsressourcen kombiniert werden.
APKM: APKMirror-Paket
APKM ist ein proprietäres Containerformat, das von APKMirror für die Verteilung von Apps entwickelt wurde, die aus mehreren geteilten APKs bestehen. Es dient einem ähnlichen Zweck wie XAPK und APKS, verwendet jedoch die eigene Struktur von APKMirror.
Was es enthält
Eine APKM-Datei ist ein ZIP-Archiv, das Folgendes enthält:
- Eine Basis-APK-Datei
- APK-Dateien für verschiedene Konfigurationen aufteilen (Dichte, ABI, Sprache)
- Eine Metadatendatei, die die Paketstruktur beschreibt
Wenn Sie darauf stoßen
APKM-Dateien finden Sie ausschließlich beim Herunterladen von APKMirror. Die Seite nutzt dieses Format für Apps, die als App Bundles im Play Store vertrieben werden und daher aus mehreren geteilten APKs bestehen.
Wie man damit umgeht
Für APKM-Dateien ist die APKMirror Installer-App für die direkte Installation erforderlich. Alternativ können Sie den Inhalt extrahieren (da es sich um eine ZIP-Datei handelt) und die geteilten APKs manuell mit dem Befehl install-multiple von ADB installieren. Das Basis-APK kann auch eigenständig extrahiert und installiert werden, allerdings könnten einige Funktionen ohne die Konfigurationsaufteilungen eingeschränkt sein.
OBB: Undurchsichtiger binärer Blob
OBB-Dateien sind Erweiterungsdateien, die von Android-Apps (hauptsächlich Spielen) zum Speichern großer Datenmengen verwendet werden, die die APK-Größenbeschränkung des Play Stores überschreiten. Obwohl Google dieses System weitgehend durch Play Asset Delivery ersetzt hat, verwenden viele bestehende Apps immer noch OBB-Dateien.
Was es enthält
OBB-Dateien können alle Arten von Daten enthalten, die die App benötigt:
- Spieltexturen und 3D-Modelle
- Audiodateien und Soundtracks
- Videoinhalte
- Leveldaten und Karten
- Alle großen Binärdaten, die der Entwickler extern speichern möchte
Das Format der Daten in einer OBB-Datei liegt vollständig beim Entwickler. Einige verwenden die ZIP-Komprimierung, andere verwenden benutzerdefinierte Binärformate. Das „Opaque“ im Namen spiegelt wider, dass Android die Datei als Blackbox behandelt.
Wenn Sie darauf stoßen
OBB-Dateien treten auf, wenn große Spiele seitlich geladen werden oder wenn sie in XAPK-Paketen gebündelt sind. Sie werden unter /Android/obb/[package.name]/ im gemeinsamen Speicher des Geräts gespeichert.
Wie man damit umgeht
OBB-Dateien müssen im richtigen Verzeichnis abgelegt werden, damit die App sie findet. Der Dateiname folgt normalerweise dem Muster main.[version].[package.name].obb oder patch.[version].[package.name].obb. Verwenden Sie unseren OBB-Extraktor, um OBB-Dateien aus XAPK-Paketen zu extrahieren.
DEX: Dalvik ausführbare Datei
DEX-Dateien enthalten den kompilierten Bytecode, der in der Laufzeitumgebung von Android ausgeführt wird. Sie befinden sich in APK-Dateien, können aber auch unabhängig während der Entwicklung und beim Debuggen vorhanden sein.
Was es enthält
Eine DEX-Datei enthält:
- Kompilierter Java/Kotlin-Bytecode im Dalvik-Anweisungsformat
- String-Konstanten und Typdefinitionen
- Methoden- und Feldreferenzen
- Klassendefinitionen und ihre Hierarchien
Technische Details
Eine einzelne DEX-Datei hat ein Limit von 65.536 Methodenreferenzen (das „64-KB-Limit“). Apps, die diese Grenze überschreiten, verwenden mehrere DEX-Dateien (classes.dex, classes2.dex usw.), eine Technik namens Multidex. Moderne Build-Tools erledigen dies automatisch.
ODEX-, VDEX- und ART-Dateien
Dies sind optimierte Versionen von DEX-Dateien, die von der Android Runtime während oder nach der Installation erstellt wurden:
- ODEX (optimierter DEX): Enthält vorab kompilierten nativen Maschinencode für häufig verwendete Methoden. Wird während der Leerlaufwartung basierend auf Nutzungsprofilen generiert.
- VDEX (Verifizierter DEX): Enthält den verifizierten DEX-Bytecode mit vorberechneten Verifizierungsergebnissen. Dadurch werden nachfolgende Systemstarts und App-Starts beschleunigt, da eine erneute Überprüfung übersprungen wird.
- ART (Android-Laufzeitbild): Enthält vorinitialisierte Klassenobjekte und Heap-Daten. Dadurch kann die Laufzeit das Laden und Initialisieren von Klassen für gängige Framework-Klassen beim Start überspringen.
Diese Dateien werden vom System generiert und sind nicht etwas, mit dem Benutzer normalerweise direkt interagieren. Sie werden in /data/dalvik-cache/ oder neben dem APK in /data/app/ gespeichert.
SO: Gemeinsam genutztes Objekt (native Bibliotheken)
Dateien mit der Erweiterung .so sind native gemeinsam genutzte Bibliotheken, die für bestimmte CPU-Architekturen kompiliert wurden. Sie enthalten in C, C++ oder Rust geschriebenen Maschinencode, der ohne den Overhead der Dalvik/ART-Laufzeitumgebung direkt auf dem Prozessor ausgeführt wird.
Architekturvarianten
- armeabi-v7a, 32-Bit-ARM (die meisten älteren Geräte)
- arm64-v8a, 64-Bit-ARM (die meisten modernen Telefone)
- x86, 32-Bit Intel/AMD (einige Tablets und Emulatoren)
- x86_64, 64-Bit Intel/AMD (Chromebooks und Emulatoren)
Wenn ein APK native Bibliotheken enthält, muss es die richtige Architektur für das Zielgerät enthalten. Wenn die falsche Architektur enthalten ist, stürzt die App mit einem UnsatisfiedLinkError ab.
XML-Dateien in Android
Android verwendet XML in großem Umfang, jedoch in zwei verschiedenen Formen:
Binäres XML
In APK-Dateien werden XML-Ressourcen (Layouts, Manifeste, String-Dateien) in einem kompilierten Binärformat namens AXML gespeichert. Dieses Format ist kompakter und schneller zu analysieren als Text-XML. Tools wie aapt2 oder apktool können binäres XML wieder in lesbaren Text dekompilieren.
Text-XML
Während der Entwicklung liegen XML-Dateien im Standardtextformat vor. Der Build-Prozess kompiliert sie zur Aufnahme in das APK in binäres XML. Konfigurationsdateien wie network_security_config.xml und Ressourcendateien im Verzeichnis res/ beginnen als Text-XML.
ProGuard/R8-Zuordnungsdateien
Obwohl es sich nicht um ein Android-spezifisches Format handelt, sind Zuordnungsdateien (mapping.txt wichtig für das Verständnis verschleierter Apps). Wenn Entwickler Code-Verkleinerungstools wie R8 verwenden, werden Klassen- und Methodennamen durch kurze, bedeutungslose Bezeichner ersetzt. Die Zuordnungsdatei zeichnet die Übersetzungen des Originalnamens in den verschleierten Namen auf, die für das Lesen von Absturzberichten unerlässlich sind.
Android-Sicherungsformat (AB)
Dateien mit der Erweiterung .ab sind von adb backup erstellte Android-Sicherungsarchive. Sie enthalten ein TAR-Archiv (optional komprimiert und verschlüsselt) des Datenverzeichnisses einer App. Dieses Format wird zugunsten cloudbasierter Backup-Lösungen nicht mehr unterstützt, wird aber immer noch von einigen Backup-Tools verwendet.
IMG- und Partitionsbilder
Android-Systembilder sind zwar nicht App-bezogen, nutzen aber mehrere erwähnenswerte Formate:
- system.img: Die schreibgeschützte Systempartition, die das Android-Framework und vorinstallierte Apps enthält
- boot.img: Enthält den Linux-Kernel und die anfängliche Ramdisk
- anbieter.img: Hardwarespezifische Treiber und Firmware
- super.img: Dynamischer Partitionscontainer, der in modernen Geräten verwendet wird (Android 10+)
Formatvergleichstabelle
Hier ist eine kurze Referenz zum Vergleich der wichtigsten App-Verteilungsformate:
- APK: Einzelne Datei, direkt installierbar, universell (alle Konfigurationen enthalten), größere Größe
- Das AAB:-Veröffentlichungsformat ist nicht direkt installierbar und erfordert die Verarbeitung durch den Play Store
- XAPK: Container (APK + OBB/Splits), erfordert Installationsprogramm oder Extraktion, wird von APKPure verwendet
- APKS: Container (geteilte APKs), Bundletool-Format, erfordert Installationsprogramm oder Merger
- Für den APKM:-Container (geteilte APKs) im APKMirror-Format ist ein Installationsprogramm erforderlich
Das richtige Werkzeug auswählen
Je nachdem, mit welchem Format Sie arbeiten, eignen sich unterschiedliche Tools:
- Haben Sie ein XAPK? Verwenden Sie unseren XAPK-zu-APK-Konverter, um die installierbare APK zu extrahieren
- Haben Sie einen AAB? Verwenden Sie unseren AAB-zu-APK-Konverter, um eine universelle APK zu generieren
- Haben Sie geteilte APKs (APKS)? Verwenden Sie unseren Fusion von APKS zu APK, um sie zu kombinieren
- Müssen Sie eine APK verifizieren? Nutzen Sie unseren APK-Verifizierer zur Signaturprüfung
- Benötigen Sie OBB-Dateien von einem XAPK? Verwenden Sie unseren OBB-Extraktor, um Erweiterungsdateien zu entpacken
Welches Android-Paketformat sollten Sie verwenden?
Die Vielfalt der Dateiformate des Android-Ökosystems spiegelt die Entwicklung der Plattform von einfachen Einzeldatei-APKs zu anspruchsvollen modularen Bereitstellungssystemen wider. Jedes Format dient der Lösung eines bestimmten Problems: AABs verringern die Downloadgröße, XAPKs vereinfachen die Verteilung von Apps mit mehreren Dateien, OBBs verarbeiten große Spieldaten und geteilte APKs ermöglichen eine gerätespezifische Optimierung.
Sobald Sie diese Formate verstanden haben, können Sie mit jedem Android-Paket umgehen, auf das Sie stoßen, unabhängig davon, ob Sie Apps seitlich laden, Ihr Gerät sichern oder Ihre eigenen Anwendungen entwickeln. Die wichtigste Erkenntnis ist, dass es sich bei den meisten dieser Formate letztendlich um Container handelt, die APK-Dateien in verschiedenen Konfigurationen enthalten, und mit den richtigen Tools können Sie immer das extrahieren, was Sie benötigen.