APK scindés et Android App Bundles, expliqués aux utilisateurs
Advertisement
D'un APK à plusieurs
Autrefois, une appli était un seul APK contenant code et ressources pour toutes les tailles d'écran, toutes les langues et tous les processeurs. Depuis août 2021, Google Play exige que les nouvelles applis soient déposées sous forme d'Android App Bundle (.aab). Play conserve le bundle et, à chaque téléchargement, génère l'ensemble d'APK qui composent l'appli sur cet appareil précis.
Les parties
- base.apk : le code et les ressources communs à tous les appareils. Installable seul uniquement si l'appli a été construite ainsi ; la plupart des applis modernes ne le sont pas.
- Les scindés de configuration :
split_config.arm64_v8a.apk(code natif du processeur),split_config.xxhdpi.apk(images pour la densité d'écran),split_config.en.apk,split_config.fr.apk(textes de langue). Un appareil reçoit un exemplaire de chaque type. - Les scindés de fonctionnalité : modules facultatifs que l'appli télécharge à la demande, comme un éditeur ou une fonction d'appareil photo.
Tous les scindés d'une appli partagent le nom de paquet, le code de version et la signature. Android les installe en une seule session et les traite comme une seule appli.
Pourquoi n'installer que base.apk échoue
L'appli démarre, cherche une ressource ou une bibliothèque native logée dans un scindé, et plante avec Resources$NotFoundException ou UnsatisfiedLinkError ; ou l'installateur refuse avec INSTALL_FAILED_MISSING_SPLIT. C'est la raison pour laquelle un XAPK doit être installé en entier ; voir installer des APK scindés avec SAI.
Comment les miroirs gèrent les lots
Puisque Play génère des ensembles propres à chaque appareil, un miroir conserve soit un APK universel (la build en fichier unique du développeur, contenant toutes les configurations, plus volumineuse mais installable partout), soit un XAPK contenant la base et les scindés de la configuration la plus courante (arm64, xxhdpi, plusieurs langues). Les pages de version d'ici indiquent le format de chaque fichier, afin que vous puissiez choisir l'APK universel pour un appareil inhabituel et le XAPK pour un téléphone actuel.
Vérifier ce que contient un appareil
App Manager ou SAI listent les scindés d'une appli installée dans ses détails. adb shell pm path <paquet> affiche chaque fichier APK de l'appli, un par ligne. Une appli avec une seule ligne a été installée en paquet universel ou en fichier unique.
Ce guide décrit le comportement général d'Android ; les noms des menus varient selon le fabricant et la version. Les téléchargements de ce site proviennent de miroirs tiers établis et ne sont jamais modifiés par nous.