Fiecare format de fișier Android explicat: APK, AAB, XAPK, APKS, APKM, OBB și altele

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

Ecosistemul Android folosește o varietate de formate de fișiere pentru ambalarea, distribuirea și stocarea datelor aplicației. Dacă ați descărcat vreodată o aplicație dintr-o sursă terță parte, probabil că ați întâlnit extensii de fișiere dincolo de APK-ul familiar. Formate precum XAPK, APKS, APKM, AAB și OBB servesc fiecare unui scop specific în ciclul de viață al aplicației Android.

Acest ghid este menit să fie o referință completă pentru fiecare format major de fișier Android. Dezvoltatorii, utilizatorii puternici care încarcă aplicațiile laterale și cititorii curioși care doresc doar să știe ce conțin de fapt aceste fișiere vor găsi fiecare format explicat în limbaj simplu mai jos.

APK: Android Package Kit

APK-ul este formatul de fișier de bază pentru aplicațiile Android. A fost formatul de instalare standard de la începuturile Android și rămâne formatul pe care sistemul de operare Android îl înțelege în mod nativ pentru instalarea aplicației.

Ce Conține

Un fișier APK este în esență o arhivă ZIP cu o structură internă specifică:

  • AndroidManifest.xml, fișier XML binar care declară numele pachetului aplicației, componentele, permisiunile și cerințele
  • classes.dex (și classes2.dex etc.), cod de octet Dalvik compilat care conține codul Java/Kotlin al aplicației
  • resources.arsc, Tabelul de resurse compilat maparea ID-urilor resurselor la valorile lor
  • res/, Director care conține resurse cum ar fi machete, desenabile și șiruri de caractere la care se face referire prin ID
  • assets/, fișiere de active brute accesate de aplicație în timpul execuției prin AssetManager
  • lib/, biblioteci native organizate după arhitectura CPU (de exemplu, lib/arm64-v8a/)
  • META-INF/, Fișiere de semnătură și informații despre certificat

Când Îl întâlnești

Fișierele APK sunt cele pe care le descărcați atunci când instalați manual aplicații din surse terțe. Ele sunt, de asemenea, ceea ce se instalează pe dispozitivul dvs. din Magazinul Play, deși instalările moderne din Magazinul Play folosesc adesea APK-uri divizate generate din App Bundle-urile.

Cum să o gestionezi

Fișierele APK pot fi instalate direct pe Android, deschizându-le cu un manager de fișiere sau folosind adb install. De asemenea, puteți examina conținutul acestora prin redenumirea extensiei în .zip și extragere sau folosind Verificator APK pentru a inspecta semnăturile și metadatele.

AAB: Android App Bundle

Android App Bundle este formatul de publicare Google pentru Play Store. Din august 2021, toate aplicațiile noi din Magazinul Play trebuie trimise ca AAB, nu ca APK.

Ce Conține

Un fișier AAB utilizează un format bazat pe tampon de protocol și conține:

  • Modul de bază: Codul principal al aplicației și resursele necesare pe fiecare dispozitiv
  • Configurație împărțită: Resurse organizate în funcție de densitatea ecranului, arhitectura CPU și limbă
  • Module de caracteristici dinamice: Caracteristici opționale care pot fi descărcate la cerere
  • Pachet de metadate: Instrucțiuni pentru Google Play despre cum să generați APK-uri specifice dispozitivului

Când Îl întâlnești

Ca utilizator obișnuit, de regulă nu întâlniți fișiere AAB în mod direct. Acestea sunt utilizate de dezvoltatori în timpul procesului de compilare și încărcare. Cu toate acestea, dacă obțineți un fișier AAB (poate din artefactele de construire a unui proiect open-source), trebuie să îl convertiți în format APK înainte de instalare.

Cum să o gestionezi

Utilizați utilitarul de linie de comandă bundletool de la Google sau Convertor AAB în APK pentru a genera un APK instalabil dintr-un fișier AAB. Procesul de conversie creează fie un APK universal (mai mare, funcționează peste tot), fie APK-uri specifice dispozitivului (mai mici, direcționate pe dispozitiv).

XAPK: APK extins

XAPK este un format de container popularizat de APKPure care reunește un APK împreună cu fișierele de date OBB asociate sau împarte configurațiile APK într-un singur pachet descărcabil.

Ce Conține

Un fișier XAPK este o arhivă ZIP care conține:

  • Un fișier APK de bază (aplicația principală)
  • Fișiere OBB (date de extindere pentru jocuri și aplicații mari)
  • Opțional, împărțiți fișierele APK pentru diferite configurații ale dispozitivului
  • Un fișier manifest.json care descrie conținutul pachetului și instrucțiunile de instalare
  • Un fișier pictogramă pentru afișare

Când Îl întâlnești

Întâlniți fișiere XAPK atunci când descărcați aplicații mari sau jocuri din depozite de aplicații terțe. Jocurile care necesită fișiere de date suplimentare (distribuite anterior ca fișiere OBB) sunt de obicei ambalate ca XAPK-uri pentru a simplifica procesul de descărcare într-un singur fișier.

Cum să o gestionezi

Fișierele XAPK nu pot fi instalate direct de programul de instalare implicit al pachetului Android. Aveți nevoie fie de o aplicație de instalare XAPK dedicată, fie puteți utiliza Convertor XAPKS în APK pentru a extrage APK-ul de bază. Pentru jocurile care necesită date OBB, va trebui, de asemenea, să extrageți și să plasați fișierele OBB în directorul corect folosind Extractor OBB.

APK: APK Set

Formatul APKS este rezultatul bundletoolului Google atunci când generează APK-uri specifice dispozitivului dintr-un fișier AAB. Este, de asemenea, folosit de unele instrumente de backup pentru aplicații pentru a stoca instalările APK divizate.

Ce Conține

Un fișier APKS este o arhivă ZIP care conține:

  • toc.pb, un cuprins al tamponului de protocol care descrie structura divizată
  • splits/, Director care conține APK-ul de bază și toate APK-urile împărțite din configurație
  • Opțional, APK-uri independente pentru dispozitivele care nu acceptă instalări separate

Când Îl întâlnești

Întâlnești fișiere APKS atunci când folosești bundletool la nivel local, când faci copii de rezervă pentru aplicații instalate din Magazinul Play sau când descărcați din anumite depozite terță parte care păstrează structura APK-ului împărțit.

Cum să o gestionezi

Puteți instala fișiere APKS folosind comanda install-apks a bundletool sau le puteți converti într-un singur APK folosind Fuziunea APKS cu APK. Rețineți că îmbinarea APK-urilor divizate într-un APK universal poate crește dimensiunea fișierului, deoarece toate resursele de configurare sunt combinate.

APKM: pachet APKMirror

APKM este un format de container proprietar creat de APKMirror pentru distribuirea de aplicații care constau din mai multe APK-uri divizate. Are un scop similar cu XAPK și APK, dar folosește propria structură a APKMirror.

Ce Conține

Un fișier APKM este o arhivă ZIP care conține:

  • Un fișier APK de bază
  • Împărțiți fișierele APK pentru diferite configurații (densitate, ABI, limbă)
  • Un fișier de metadate care descrie structura pachetului

Când Îl întâlnești

Întâlnești fișiere APKM exclusiv când descărcați din APKMirror. Site-ul folosește acest format pentru aplicațiile care sunt distribuite ca App Bundle în Magazinul Play și, prin urmare, constau din mai multe APK-uri divizate.

Cum să o gestionezi

Fișierele APKM necesită aplicația APKMirror Installer pentru instalare directă sau puteți extrage conținutul (deoarece este un fișier ZIP) și instalați manual APK-urile împărțite folosind comanda install-multiple a ADB. APK-ul de bază poate fi, de asemenea, extras și instalat individual, deși unele funcționalități pot fi limitate fără pachetele divizate de configurare.

OBB: Blob binar opac

Fișierele OBB sunt fișiere de extindere utilizate de aplicațiile Android (în primul rând jocuri) pentru a stoca cantități mari de date care depășesc limita de dimensiune APK a Magazinului Play. Deși Google a înlocuit în mare măsură acest sistem cu Play Asset Delivery, multe aplicații existente încă folosesc fișiere OBB.

Ce Conține

Fișierele OBB pot conține orice tip de date de care are nevoie aplicația:

  • Texturi de joc și modele 3D
  • Fișiere audio și coloane sonore
  • Conținut video
  • Date de nivel și hărți
  • Orice date binare mari pe care dezvoltatorul alege să le stocheze extern

Formatul datelor dintr-un fișier OBB depinde în întregime de dezvoltator. Unii folosesc compresia ZIP, alții folosesc formate binare personalizate. „Opac” din nume reflectă faptul că Android tratează fișierul ca pe o cutie neagră.

Când Îl întâlnești

Fișierele OBB sunt întâlnite la încărcarea laterală a jocurilor mari sau atunci când sunt incluse în pachete XAPK. Acestea sunt stocate la /Android/obb/[package.name]/ în spațiul de stocare partajat al dispozitivului.

Cum să o gestionezi

Fișierele OBB trebuie plasate în directorul corect pentru ca aplicația să le găsească. Numele fișierului urmează de obicei modelul main.[version].[package.name].obb sau patch.[version].[package.name].obb. Utilizați Extractor OBB pentru a extrage fișierele OBB din pachetele XAPK.

DEX: Dalvik Executable

Fișierele DEX conțin bytecode compilat care rulează pe mediul de rulare Android. Ele se găsesc în fișierele APK, dar pot exista și independent în timpul dezvoltării și depanării.

Ce Conține

Un fișier DEX conține:

  • Cod de octet Java/Kotlin compilat în format de instrucțiuni Dalvik
  • Constante șiruri și definiții de tip
  • Referințe de metodă și câmp
  • Definițiile claselor și ierarhiile acestora

Detalii tehnice

Un singur fișier DEX are o limită de 65.536 de referințe de metode („limita de 64K”). Aplicațiile care depășesc această limită folosesc mai multe fișiere DEX (classes.dex, classes2.dex etc.), o tehnică numită multidex. Instrumentele moderne de construcție gestionează acest lucru automat.

Fișiere ODEX, VDEX și ART

Acestea sunt versiuni optimizate ale fișierelor DEX create de Android Runtime în timpul sau după instalare:

  • ODEX (DEX optimizat): Conține cod de mașină nativ compilat în avans pentru metodele utilizate frecvent. Generat în timpul întreținerii inactiv pe baza profilurilor de utilizare.
  • VDEX (DEX verificat): Conține codul de octet DEX verificat cu rezultate de verificare precalculate. Acest lucru accelerează pornirile ulterioare și lansările de aplicații, omitând reverificarea.
  • ART (Imagine de rulare Android): Conține obiecte de clasă pre-inițializate și date heap. Acest lucru permite runtime-ului să omite încărcarea și inițializarea claselor pentru clasele cadru obișnuite în timpul pornirii.

Aceste fișiere sunt generate de sistem și nu sunt ceva cu care utilizatorii interacționează direct. Sunt stocate în /data/dalvik-cache/ sau alături de APK-ul în /data/app/.

SO: obiect partajat (biblioteci native)

Fișierele cu extensia .so sunt biblioteci partajate native compilate pentru arhitecturi specifice CPU. Acestea conțin cod de mașină scris în C, C++ sau Rust, care rulează direct pe procesor fără suprasolicitarea timpului de rulare Dalvik/ART.

Variante de arhitectură

  • armeabi-v7a, ARM pe 32 de biți (majoritatea dispozitivelor mai vechi)
  • arm64-v8a, ARM pe 64 de biți (cele mai moderne telefoane)
  • x86, Intel/AMD pe 32 de biți (unele tablete și emulatori)
  • x86_64, Intel/AMD pe 64 de biți (Chromebookuri și emulatori)

Când un APK conține biblioteci native, trebuie să includă arhitectura corectă pentru dispozitivul țintă. Dacă este inclusă arhitectura greșită, aplicația se va bloca cu un UnsatisfiedLinkError.

Fișiere XML în Android

Android folosește XML în mod extensiv, dar în două forme diferite:

XML binar

În interiorul fișierelor APK, resursele XML (aspecte, manifeste, fișiere șir) sunt stocate într-un format binar compilat numit AXML. Acest format este mai compact și mai rapid de analizat decât textul XML. Instrumente precum aapt2 sau apktool pot decompila XML binar înapoi în text care poate fi citit.

Text XML

În timpul dezvoltării, fișierele XML sunt în format text standard. Procesul de compilare le compilează în XML binar pentru a fi incluse în APK. Fișierele de configurare precum network_security_config.xml și fișierele de resurse din directorul res/ încep ca text XML.

Fișiere de cartografiere ProGuard/R8

Deși nu este un format specific pentru Android, fișierele de cartografiere (mapping.txt sunt importante pentru înțelegerea aplicațiilor obscucate). Când dezvoltatorii folosesc instrumente de micșorare a codului precum R8, numele claselor și metodelor sunt înlocuite cu identificatori scurti, fără sens. Fișierul de cartografiere înregistrează traducerile numelui de la original la cel ascuns, esențial pentru citirea rapoartelor de blocare.

Format de rezervă Android (AB)

Fișierele cu extensia .ab sunt arhive de rezervă Android create de adb backup. Acestea conțin o arhivă tar (opțional comprimată și criptată) a directorului de date al unei aplicații. Acest format este depreciat în favoarea soluțiilor de backup bazate pe cloud, dar este încă folosit de unele instrumente de backup.

IMG și imagini de partiție

Deși nu sunt legate de aplicație, imaginile sistemului Android folosesc mai multe formate care merită menționate:

  • system.img: Partiția de sistem numai pentru citire care conține cadrul Android și aplicațiile preinstalate
  • boot.img: Conține nucleul Linux și discul ram inițial
  • vendor.img: Drivere și firmware specifice hardware-ului
  • super.img: Container de partiție dinamică utilizat în dispozitivele moderne (Android 10+)

Format tabel de comparație

Iată o referință rapidă care compară principalele formate de distribuție a aplicațiilor:

  • APK: Fișier unic, instalabil direct, universal (toate configurațiile incluse), dimensiune mai mare
  • Formatul de publicare AAB:, care nu poate fi instalat direct, necesită procesare de către Play Store
  • Container XAPK: (APK + OBB/divizări), necesită instalare sau extracție, utilizat de APKPure
  • Container APKS: (APK-uri divizate), format bundletool, necesită instalare sau fuziune
  • Container APKM: (APK-uri divizate), formatul APKMirror, necesită programul de instalare

Alegerea instrumentului potrivit

În funcție de formatul cu care lucrați, sunt adecvate diferite instrumente:

Ce format de pachet Android ar trebui să utilizați?

Varietatea de formate de fișiere a ecosistemului Android reflectă evoluția platformei de la simple APK-uri cu un singur fișier la sisteme de livrare modulare sofisticate. Fiecare format există pentru a rezolva o problemă specifică: AAB-urile reduc dimensiunile de descărcare, XAPK-urile simplifică distribuția aplicațiilor cu mai multe fișiere, OBB-urile gestionează date mari de joc și APK-urile divizate permit optimizarea specifică dispozitivului.

Odată ce înțelegeți aceste formate, puteți gestiona orice pachet Android pe care îl întâlniți, indiferent dacă încărcați aplicații laterale, faceți copii de rezervă ale dispozitivului sau dezvoltați propriile aplicații. Principala concluzie este că majoritatea acestor formate sunt în cele din urmă containere care dețin fișiere APK în diverse configurații și, cu instrumentele potrivite, puteți extrage oricând ceea ce aveți nevoie.

Proiectat și documentat de doamna Shaefale Dezvoltator principal și arhitect pachet Android • Verificat pe Android 12–15

Mst Shaefale menține fuziunea XAPK/APKS la nivelul clientului, analizatorul de manifeste binar și instrumentele de semnare APK v1+v2 la xapktoapk.com. Ați găsit o comandă învechită sau o modificare a sistemului de operare? Trimiteți o notă editorială.