Chaque format de fichier Android expliqué : APK, AAB, XAPK, APKS, APKM, OBB, etc.

A filing tray with tabs labeled APK, AAB, XAPK, APKS, APKM and OBB

L'écosystème Android utilise divers formats de fichiers pour regrouper, distribuer et stocker les données des applications. Si vous avez déjà téléchargé une application à partir d'une source tierce, vous avez probablement rencontré des extensions de fichier au-delà de l'APK familier. Les formats tels que XAPK, APKS, APKM, AAB et OBB remplissent chacun un objectif spécifique dans le cycle de vie des applications Android.

Ce guide est censé être une référence complète pour tous les principaux formats de fichiers Android. Les développeurs, les utilisateurs expérimentés qui chargent des applications et les lecteurs curieux qui veulent simplement savoir ce que contiennent réellement ces fichiers trouveront tous chaque format expliqué en langage simple ci-dessous.

APK : Kit de packages Android

L'APK est le format de fichier fondamental pour les applications Android. Il s'agit du format d'installation standard depuis la création d'Android et reste le format que le système d'exploitation Android comprend nativement pour l'installation d'applications.

Ce qu'il contient

Un fichier APK est essentiellement une archive ZIP avec une structure interne spécifique :

  • AndroidManifest.xml, fichier XML binaire déclarant le nom du package, les composants, les autorisations et les exigences de l'application
  • classes.dex (et classes2.dex, etc.), bytecode Dalvik compilé contenant le code Java/Kotlin de l'application
  • resources.arsc, table de ressources compilée mappant les ID de ressources à leurs valeurs
  • res/, répertoire contenant des ressources telles que des mises en page, des dessins et des chaînes référencées par ID
  • assets/, fichiers d'actifs bruts accessibles par l'application au moment de l'exécution via AssetManager
  • lib/, bibliothèques natives organisées par architecture CPU (par exemple, lib/arm64-v8a/)
  • META-INF/, fichiers de signature et informations de certificat

Quand vous le rencontrez

Les fichiers APK sont ce que vous téléchargez lorsque vous chargez des applications à partir de sources tierces. C'est également ce qui est installé sur votre appareil à partir du Play Store, bien que les installations modernes du Play Store utilisent souvent des APK divisés générés à partir des App Bundles.

Comment le gérer

Les fichiers APK peuvent être directement installés sur Android en les ouvrant avec un gestionnaire de fichiers ou en utilisant adb install. Vous pouvez également examiner leur contenu en renommant l'extension en .zip et en l'extrayant, ou en utilisant notre Vérificateur APK pour inspecter les signatures et les métadonnées.

AAB : offre groupée d'applications Android

L'Android App Bundle est le format de publication de Google pour le Play Store. Depuis août 2021, toutes les nouvelles applications sur le Play Store doivent être soumises sous forme d'AAB plutôt que d'APK.

Ce qu'il contient

Un fichier AAB utilise un format basé sur un tampon de protocole et contient :

  • Code de l'application Module de base : Core et ressources requises sur chaque appareil
  • Ressources Divisions de configuration : organisées par densité d'écran, architecture CPU et langue
  • Modules de fonctionnalités dynamiques : Fonctionnalités optionnelles téléchargeables sur demande
  • Instructions Regrouper les métadonnées : pour Google Play sur la façon de générer des APK spécifiques à l'appareil

Quand vous le rencontrez

En tant qu'utilisateur régulier, vous ne rencontrez généralement pas directement les fichiers AAB. Ils sont utilisés par les développeurs pendant le processus de création et de téléchargement. Cependant, si vous obtenez un fichier AAB (peut-être à partir des artefacts de construction d'un projet open source), vous devez le convertir au format APK avant l'installation.

Comment le gérer

Utilisez l'utilitaire de ligne de commande bundletool de Google ou notre Convertisseur AAB en APK pour générer un APK installable à partir d'un fichier AAB. Le processus de conversion crée soit un APK universel (plus grand, fonctionne partout), soit des APK spécifiques à l'appareil (plus petit, ciblé par appareil).

XAPK : APK étendu

XAPK est un format de conteneur popularisé par APKPure qui regroupe un APK avec ses fichiers de données OBB associés ou divise les configurations APK en un seul package téléchargeable.

Ce qu'il contient

Un fichier XAPK est une archive ZIP contenant :

  • Un fichier APK de base (l'application principale)
  • Fichiers OBB (données d'extension pour les jeux et les grandes applications)
  • En option, divisez les fichiers APK pour différentes configurations d'appareils
  • Un fichier manifest.json décrivant le contenu du package et les instructions d'installation
  • Un fichier icône à des fins d'affichage

Quand vous le rencontrez

Vous rencontrez des fichiers XAPK lors du téléchargement d'applications ou de jeux volumineux à partir de référentiels d'applications tiers. Les jeux qui nécessitent des fichiers de données supplémentaires (auparavant distribués sous forme de fichiers OBB) sont généralement regroupés sous forme de XAPK pour simplifier le processus de téléchargement en un seul fichier.

Comment le gérer

Les fichiers XAPK ne peuvent pas être installés directement par le programme d'installation du package par défaut d'Android. Vous avez besoin soit d'une application d'installation XAPK dédiée, soit vous pouvez utiliser notre Convertisseur XAPK en APK pour extraire l'APK de base. Pour les jeux nécessitant des données OBB, vous devrez également extraire et placer les fichiers OBB dans le bon répertoire à l'aide de notre Extracteur OBB.

APKS : ensemble d'APK

Le format APKS est le résultat du bundletool de Google lors de la génération d'APK spécifiques à un appareil à partir d'un fichier AAB. Il est également utilisé par certains outils de sauvegarde d'applications pour stocker les installations APK fractionnées.

Ce qu'il contient

Un fichier APKS est une archive ZIP contenant :

  • toc.pb, une table des matières du tampon de protocole décrivant la structure divisée
  • splits/, répertoire contenant l'APK de base et tous les APK divisés en configuration
  • En option, des APK autonomes pour les appareils qui ne prennent pas en charge les installations fractionnées

Quand vous le rencontrez

Vous rencontrez des fichiers APKS lorsque vous utilisez bundletool localement, lors de la sauvegarde d'applications installées à partir du Play Store ou lors du téléchargement à partir de certains référentiels tiers qui préservent la structure APK divisée.

Comment le gérer

Vous pouvez installer les fichiers APKS à l'aide de la commande install-apks de bundletool ou les convertir en un seul APK à l'aide de notre Fusion d'APKS vers APK. Notez que la fusion d’APK divisés en un APK universel peut augmenter la taille du fichier puisque toutes les ressources de configuration sont combinées.

APKM : paquet APKMirror

APKM est un format de conteneur propriétaire créé par APKMirror pour distribuer des applications composées de plusieurs APK divisés. Il a un objectif similaire à XAPK et APKS mais utilise la propre structure d'APKMirror.

Ce qu'il contient

Un fichier APKM est une archive ZIP contenant :

  • Un fichier APK de base
  • Divisez les fichiers APK pour différentes configurations (densité, ABI, langue)
  • Un fichier de métadonnées décrivant la structure du package

Quand vous le rencontrez

Vous rencontrez des fichiers APKM exclusivement lors du téléchargement depuis APKMirror. Le site utilise ce format pour les applications distribuées sous forme d'App Bundles sur le Play Store et composées donc de plusieurs APK divisés.

Comment le gérer

Les fichiers APKM nécessitent l'application APKMirror Installer pour une installation directe, ou vous pouvez extraire le contenu (puisqu'il s'agit d'un fichier ZIP) et installer les APK divisés manuellement à l'aide de la commande install-multiple d'ADB. L'APK de base peut également être extrait et installé de manière autonome, bien que certaines fonctionnalités puissent être limitées sans les divisions de configuration.

OBB : Blob binaire opaque

Les fichiers OBB sont des fichiers d'extension utilisés par les applications Android (principalement des jeux) pour stocker de grandes quantités de données qui dépassent la limite de taille APK du Play Store. Bien que Google ait largement remplacé ce système par Play Asset Delivery, de nombreuses applications existantes utilisent toujours des fichiers OBB.

Ce qu'il contient

Les fichiers OBB peuvent contenir tout type de données dont l'application a besoin :

  • Textures de jeu et modèles 3D
  • Fichiers audio et bandes sonores
  • Contenu vidéo
  • Données de niveau et cartes
  • Toutes les données binaires volumineuses que le développeur choisit de stocker en externe

Le format des données dans un fichier OBB dépend entièrement du développeur. Certains utilisent la compression ZIP, d'autres utilisent des formats binaires personnalisés. Le "Opaque" dans le nom indique qu'Android traite le fichier comme une boîte noire.

Quand vous le rencontrez

Les fichiers OBB sont rencontrés lors du chargement de jeux volumineux ou lorsqu'ils sont regroupés dans des packages XAPK. Ils sont stockés sur /Android/obb/[package.name]/ sur le stockage partagé de l'appareil.

Comment le gérer

Les fichiers OBB doivent être placés dans le bon répertoire pour que l'application les trouve. Le nom de fichier suit généralement le modèle main.[version].[package.name].obb ou patch.[version].[package.name].obb. Utilisez notre Extracteur OBB pour extraire les fichiers OBB des packages XAPK.

DEX : exécutable Dalvik

Les fichiers DEX contiennent le bytecode compilé qui s'exécute sur l'environnement d'exécution d'Android. Ils se trouvent dans les fichiers APK mais peuvent également exister indépendamment pendant le développement et le débogage.

Ce qu'il contient

Un fichier DEX contient :

  • Bytecode Java/Kotlin compilé au format d'instruction Dalvik
  • Constantes de chaîne et définitions de type
  • Références de méthode et de terrain
  • Définitions de classes et leurs hiérarchies

Détails techniques

Un seul fichier DEX a une limite de référence de méthode de 65 536 (la « limite de 64 Ko »). Les applications qui dépassent cette limite utilisent plusieurs fichiers DEX (classes.dex, classes2.dex, etc.), une technique appelée multidex. Les outils de construction modernes gèrent cela automatiquement.

Fichiers ODEX, VDEX et ART

Il s'agit de versions optimisées des fichiers DEX créés par Android Runtime pendant ou après l'installation :

  • ODEX (DEX optimisé) : Contient du code machine natif compilé à l’avance pour les méthodes fréquemment utilisées. Généré pendant la maintenance inactive en fonction des profils d'utilisation.
  • VDEX (DEX vérifié) : Contient le bytecode DEX vérifié avec des résultats de vérification pré-calculés. Cela accélère les démarrages ultérieurs et les lancements d'applications en ignorant la re-vérification.
  • ART (image d'exécution Android) : Contient des objets de classe pré-initialisés et des données de tas. Cela permet au runtime d’ignorer le chargement et l’initialisation des classes du framework commun lors du démarrage.

Ces fichiers sont générés par le système et ne sont pas quelque chose avec lequel les utilisateurs interagissent généralement directement. Ils sont stockés dans /data/dalvik-cache/ ou avec l'APK dans /data/app/.

SO : objet partagé (bibliothèques natives)

Les fichiers portant l'extension .so sont des bibliothèques partagées natives compilées pour des architectures de processeur spécifiques. Ils contiennent du code machine écrit en C, C++ ou Rust qui s'exécute directement sur le processeur sans la surcharge du runtime Dalvik/ART.

Variantes architecturales

  • armeabi-v7a, ARM 32 bits (la plupart des appareils plus anciens)
  • arm64-v8a, ARM 64 bits (la plupart des téléphones modernes)
  • x86, Intel/AMD 32 bits (certaines tablettes et émulateurs)
  • x86_64, Intel/AMD 64 bits (Chromebooks et émulateurs)

Lorsqu'un APK contient des bibliothèques natives, il doit inclure l'architecture correcte pour l'appareil cible. Si une mauvaise architecture est incluse, l'application plantera avec un UnsatisfiedLinkError.

Fichiers XML sous Android

Android utilise largement XML, mais sous deux formes différentes :

XML binaire

Dans les fichiers APK, les ressources XML (mises en page, manifestes, fichiers de chaînes) sont stockées dans un format binaire compilé appelé AXML. Ce format est plus compact et plus rapide à analyser que le texte XML. Des outils tels que aapt2 ou apktool peuvent décompiler le XML binaire en texte lisible.

Texte XML

Lors du développement, les fichiers XML sont au format texte standard. Le processus de construction les compile en XML binaire pour les inclure dans l'APK. Les fichiers de configuration tels que network_security_config.xml et les fichiers de ressources du répertoire res/ démarrent sous forme de texte XML.

Fichiers de mappage ProGuard/R8

Bien qu'il ne s'agisse pas d'un format spécifique à Android, les fichiers de mappage (mapping.txt sont importants pour comprendre les applications obscurcies). Lorsque les développeurs utilisent des outils de réduction de code comme R8, les noms de classe et de méthode sont remplacés par des identifiants courts et dénués de sens. Le fichier de mappage enregistre les traductions des noms d'origine en noms obscurcis, essentielles à la lecture des rapports d'erreur.

Format de sauvegarde Android (AB)

Les fichiers avec l'extension .ab sont des archives de sauvegarde Android créées par adb backup. Ils contiennent une archive tar (éventuellement compressée et cryptée) du répertoire de données d'une application. Ce format est obsolète au profit des solutions de sauvegarde basées sur le cloud mais est toujours utilisé par certains outils de sauvegarde.

IMG et images de partition

Bien qu'elles ne soient pas liées aux applications, les images du système Android utilisent plusieurs formats qui méritent d'être mentionnés :

  • système.img : La partition système en lecture seule contenant le framework Android et les applications préinstallées
  • boot.img : Contient le noyau Linux et le disque virtuel initial
  • vendeur.img : Pilotes et micrologiciels spécifiques au matériel
  • Conteneur de partition dynamique super.img : utilisé dans les appareils modernes (Android 10+)

Tableau de comparaison des formats

Voici une référence rapide comparant les principaux formats de distribution d’applications :

  • APK : Fichier unique, directement installable, universel (toutes les configurations incluses), taille plus grande
  • Le format de publication AAB :, non directement installable, nécessite un traitement par Play Store
  • Conteneur XAPK : (APK + OBB/splits), nécessite un programme d'installation ou une extraction, utilisé par APKPure
  • Conteneur APK : (APK divisés), format bundletool, nécessite un programme d'installation ou une fusion
  • Conteneur APKM : (APK fractionnés), format APKMirror, nécessite leur installateur

Choisir le bon outil

Selon le format avec lequel vous travaillez, différents outils sont appropriés :

Quel format de package Android devriez-vous utiliser?

La variété de formats de fichiers de l'écosystème Android reflète l'évolution de la plate-forme, depuis de simples APK à fichier unique jusqu'à des systèmes de livraison modulaires sophistiqués. Chaque format existe pour résoudre un problème spécifique : les AAB réduisent la taille des téléchargements, les XAPK simplifient la distribution d'applications multi-fichiers, les OBB gèrent des données de jeu volumineuses et les APK fractionnés permettent une optimisation spécifique à l'appareil.

Une fois que vous avez compris ces formats, vous pouvez gérer n'importe quel package Android que vous rencontrez, que vous chargez des applications, sauvegardez votre appareil ou développez vos propres applications. Ce qu’il faut retenir, c’est que la plupart de ces formats sont en fin de compte des conteneurs contenant des fichiers APK dans diverses configurations, et qu’avec les bons outils, vous pouvez toujours extraire ce dont vous avez besoin.

Conçu et documenté par Mst Shaefale Développeur principal et architecte de packages Android • Vérifié sur Android 12-15

Mst Shaefale gère la fusion XAPK/APKS côté client, l'analyseur de manifeste binaire et les outils de signature APK v1+v2 chez xapktoapk.com. Vous repérez une commande obsolète ou un changement de système d'exploitation? Envoyez une note éditoriale.