Ipinaliwanag ang Bawat Format ng File sa Android: APK, AAB, XAPK, APKS, APKM, OBB, at Higit Pa

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

Gumagamit ang Android ecosystem ng iba't ibang format ng file para sa packaging, pamamahagi, at pag-iimbak ng data ng app. Kung nag-download ka na ng app mula sa isang third-party na pinagmulan, malamang na nakatagpo ka ng mga extension ng file na lampas sa pamilyar na APK. Ang mga format tulad ng XAPK, APKS, APKM, AAB, at OBB ay nagsisilbi sa isang partikular na layunin sa lifecycle ng Android app.

Ang gabay na ito ay nilalayong maging kumpletong sanggunian para sa bawat pangunahing format ng Android file. Makikita ng mga developer, makapangyarihang user na nag-sideload ng mga app, at mausisa na mga mambabasa na gustong malaman kung ano talaga ang nilalaman ng mga file na ito sa bawat format na ipinaliwanag sa simpleng wika sa ibaba.

APK: Android Package Kit

Ang APK ay ang pangunahing format ng file para sa mga Android application. Ito ang karaniwang format ng pag-install mula nang simulan ang Android at nananatiling format na katutubong naiintindihan ng operating system ng Android para sa pag-install ng app.

Ano ang Nilalaman Nito

Ang APK file ay mahalagang ZIP archive na may partikular na panloob na istraktura:

  • AndroidManifest.xml, Binary XML file na nagdedeklara ng pangalan ng package, mga bahagi, pahintulot, at mga kinakailangan ng app
  • classes.dex (at classes2.dex, atbp.), Compiled Dalvik bytecode na naglalaman ng Java/Kotlin code ng app
  • resources.arsc, Compiled resource table mapping resource ID sa kanilang mga value
  • res/, Direktoryo na naglalaman ng mga mapagkukunan tulad ng mga layout, drawable, at string na nire-reference ng ID
  • assets/, Raw asset file na na-access ng app sa runtime sa pamamagitan ng AssetManager
  • lib/, Mga katutubong aklatan na inayos ayon sa arkitektura ng CPU (hal., lib/arm64-v8a/)
  • META-INF/, Signature file at impormasyon ng sertipiko

Kapag Nakatagpo Mo Ito

Ang mga APK file ay ang dina-download mo kapag nag-sideload ng mga app mula sa mga third-party na pinagmulan. Sila rin ang na-install sa iyong device mula sa Play Store, kahit na ang mga modernong pag-install sa Play Store ay kadalasang gumagamit ng mga split APK na nabuo mula sa App Bundle.

Paano Ito Pangasiwaan

Maaaring direktang i-install ang mga APK file sa Android sa pamamagitan ng pagbubukas ng mga ito gamit ang isang file manager o paggamit ng adb install. Maaari mo ring suriin ang kanilang mga nilalaman sa pamamagitan ng pagpapalit ng pangalan ng extension sa .zip at pag-extract, o sa pamamagitan ng paggamit ng aming Tagasuri ng APK upang suriin ang mga lagda at metadata.

AAB: Android App Bundle

Ang Android App Bundle ay ang format ng pag-publish ng Google para sa Play Store. Mula noong Agosto 2021, dapat isumite ang lahat ng bagong app sa Play Store bilang mga AAB sa halip na mga APK.

Ano ang Nilalaman Nito

Gumagamit ang AAB file ng protocol buffer-based na format at naglalaman ng:

  • Base module: Core app code at mga mapagkukunan na kinakailangan sa bawat device
  • Mga paghahati ng configuration: Resources na inayos ayon sa density ng screen, arkitektura ng CPU, at wika
  • Mga module ng dinamikong tampok: Opsyonal na mga tampok na maaaring i-download kapag hinihiling
  • Metadata ng bundle: Mga Tagubilin para sa Google Play kung paano bumuo ng mga APK na partikular sa device

Kapag Nakatagpo Mo Ito

Bilang isang regular na user, karaniwang hindi ka direktang nakakaharap ng mga AAB file. Ginagamit ang mga ito ng mga developer sa panahon ng proseso ng pagbuo at pag-upload. Gayunpaman, kung kukuha ka ng AAB file (marahil mula sa mga build artifact ng open-source na proyekto), kailangan mong i-convert ito sa format na APK bago i-install.

Paano Ito Pangasiwaan

Gamitin ang bundletool command-line utility ng Google o ang aming AAB to APK converter upang bumuo ng na-install na APK mula sa isang AAB file. Ang proseso ng conversion ay lumilikha ng alinman sa isang pangkalahatang APK (mas malaki, gumagana sa lahat ng dako) o mga APK na partikular sa device (mas maliit, naka-target sa device).

XAPK: Pinalawak na APK

Ang XAPK ay isang format ng container na pinasikat ng APKPure na nagbu-bundle ng APK kasama ng mga nauugnay nitong OBB data file o naghahati ng mga configuration ng APK sa isang nada-download na package.

Ano ang Nilalaman Nito

Ang XAPK file ay isang ZIP archive na naglalaman ng:

  • Isang base APK file (ang pangunahing application)
  • OBB file (data ng pagpapalawak para sa mga laro at malalaking app)
  • Opsyonal, hatiin ang mga APK file para sa iba't ibang configuration ng device
  • Isang manifest.json file na naglalarawan sa mga nilalaman ng package at mga tagubilin sa pag-install
  • Isang icon na file para sa mga layunin ng pagpapakita

Kapag Nakatagpo Mo Ito

Nakatagpo ka ng mga XAPK file kapag nagda-download ng malalaking app o laro mula sa mga repositoryo ng third-party na app. Ang mga laro na nangangailangan ng karagdagang mga file ng data (dating ipinamahagi bilang mga OBB file) ay karaniwang naka-package bilang mga XAPK upang pasimplehin ang proseso ng pag-download sa isang solong file.

Paano Ito Pangasiwaan

Ang mga XAPK file ay hindi direktang mai-install ng default na package installer ng Android. Kailangan mo ng nakalaang XAPK installer app o maaari mong gamitin ang aming XAPKS sa APK converter para kunin ang base APK. Para sa mga larong nangangailangan ng data ng OBB, kakailanganin mo ring i-extract at ilagay ang mga OBB file sa tamang direktoryo gamit ang aming Tagakuha ng OBB.

APK: Set ng APK

Ang format ng APKS ay ang output ng bundletool ng Google kapag bumubuo ng mga APK na partikular sa device mula sa isang AAB file. Ginagamit din ito ng ilang tool sa pag-backup ng app para mag-imbak ng mga split APK installation.

Ano ang Nilalaman Nito

Ang APKS file ay isang ZIP archive na naglalaman ng:

  • toc.pb, Isang protocol buffer na talaan ng mga nilalaman na naglalarawan sa split structure
  • splits/, Directory na naglalaman ng base APK at lahat ng configuration split APK
  • Opsyonal, ang mga standalone na APK para sa mga device na hindi sumusuporta sa mga split installation

Kapag Nakatagpo Mo Ito

Nakatagpo ka ng mga APKS file kapag gumagamit ng bundletool nang lokal, kapag nagba-back up ng mga app na naka-install mula sa Play Store, o kapag nagda-download mula sa ilang mga third-party na repository na nagpapanatili ng split APK structure.

Paano Ito Pangasiwaan

Maaari kang mag-install ng mga APKS file gamit ang install-apks command ng bundletool o i-convert ang mga ito sa isang APK gamit ang aming APKS sa APK merger. Tandaan na ang pagsasama-sama ng mga split APK sa isang pangkalahatang APK ay maaaring tumaas ang laki ng file dahil ang lahat ng mga mapagkukunan ng configuration ay pinagsama.

APKM: APKMirror Package

Ang APKM ay isang proprietary na format ng container na ginawa ng APKMirror para sa pamamahagi ng mga app na binubuo ng maraming split APK. Naghahain ito ng katulad na layunin sa XAPK at APKS ngunit gumagamit ng sariling istraktura ng APKMirror.

Ano ang Nilalaman Nito

Ang APKM file ay isang ZIP archive na naglalaman ng:

  • Isang base APK file
  • Hatiin ang mga APK file para sa iba't ibang configuration (density, ABI, wika)
  • Isang metadata file na naglalarawan sa istraktura ng package

Kapag Nakatagpo Mo Ito

Nakatagpo ka ng mga APKM file na eksklusibo kapag nagda-download mula sa APKMirror. Ginagamit ng site ang format na ito para sa mga app na ibinahagi bilang Mga App Bundle sa Play Store at samakatuwid ay binubuo ng maraming split APK.

Paano Ito Pangasiwaan

Ang mga APKM file ay nangangailangan ng APKMirror Installer app para sa direktang pag-install, o maaari mong kunin ang mga nilalaman (dahil ito ay isang ZIP file) at manu-manong i-install ang mga split APK gamit ang install-multiple command ng ADB. Ang batayang APK ay maaari ding i-extract at i-install nang nakapag-iisa, kahit na ang ilang functionality ay maaaring limitado nang walang mga paghahati ng configuration.

OBB: Opaque Binary Blob

Ang mga OBB file ay mga expansion file na ginagamit ng mga Android app (pangunahin ang mga laro) upang mag-imbak ng malalaking halaga ng data na lampas sa limitasyon sa laki ng APK ng Play Store. Bagama't higit na pinalitan ng Google ang system na ito ng Play Asset Delivery, maraming kasalukuyang app ang gumagamit pa rin ng mga OBB file.

Ano ang Nilalaman Nito

Ang mga OBB file ay maaaring maglaman ng anumang uri ng data na kailangan ng app:

  • Mga texture ng laro at mga 3D na modelo
  • Mga audio file at soundtrack
  • Nilalaman ng video
  • Antas ng data at mga mapa
  • Anumang malaking binary data na pipiliin ng developer na iimbak sa labas

Ang format ng data sa loob ng isang OBB file ay ganap na nakasalalay sa developer. Ang ilan ay gumagamit ng ZIP compression, ang iba ay gumagamit ng mga custom na binary na format. Ang "Opaque" sa pangalan ay nagpapakita na itinuturing ng Android ang file bilang isang itim na kahon.

Kapag Nakatagpo Mo Ito

Nakikita ang mga OBB file kapag nag-sideload ng malalaking laro o kapag naka-bundle ang mga ito sa loob ng mga XAPK na pakete. Naka-store ang mga ito sa /Android/obb/[package.name]/ sa nakabahaging storage ng device.

Paano Ito Pangasiwaan

Ang mga OBB file ay dapat ilagay sa tamang direktoryo para mahanap ng app ang mga ito. Ang filename ay karaniwang sumusunod sa pattern na main.[version].[package.name].obb o patch.[version].[package.name].obb. Gamitin ang aming Tagakuha ng OBB upang kunin ang mga OBB file mula sa mga XAPK package.

DEX: Dalvik Executable

Ang mga DEX file ay naglalaman ng pinagsama-samang bytecode na tumatakbo sa runtime environment ng Android. Matatagpuan ang mga ito sa loob ng mga APK file ngunit maaari ding umiral nang hiwalay sa panahon ng pag-develop at pag-debug.

Ano ang Nilalaman Nito

Ang isang DEX file ay naglalaman ng:

  • Compiled Java/Kotlin bytecode sa Dalvik na format ng pagtuturo
  • String constants at mga kahulugan ng uri
  • Paraan at mga sanggunian sa larangan
  • Mga kahulugan ng klase at ang kanilang mga hierarchy

Mga Detalye ng Teknikal

Ang isang solong DEX file ay may 65,536 na limitasyon sa sanggunian ng pamamaraan (ang "64K na limitasyon"). Ang mga app na lumampas sa limitasyong ito ay gumagamit ng maraming DEX file (classes.dex, classes2.dex, atbp.), isang diskarteng tinatawag na multidex. Awtomatikong pinangangasiwaan ito ng mga modernong tool sa pagbuo.

ODEX, VDEX, at ART Files

Ito ang mga naka-optimize na bersyon ng mga DEX file na ginawa ng Android Runtime sa panahon o pagkatapos ng pag-install:

  • ODEX (Na-optimize na DEX): Naglalaman ng maagang-ng-oras na pinagsama-samang native machine code para sa mga madalas na ginagamit na pamamaraan. Nabuo sa panahon ng idle maintenance batay sa mga profile ng paggamit.
  • VDEX (Na-verify na DEX): Naglalaman ng na-verify na DEX bytecode na may paunang na-compute na mga resulta ng pag-verify. Pinapabilis nito ang mga kasunod na boot at paglulunsad ng app sa pamamagitan ng paglaktaw sa muling pag-verify.
  • ART (Android Runtime Image): Naglalaman ng paunang inisyal na mga bagay ng klase at heap data. Nagbibigay-daan ito sa runtime na laktawan ang paglo-load ng klase at pagsisimula para sa mga karaniwang klase ng framework sa panahon ng pagsisimula.

Ang mga file na ito ay binuo ng system at hindi isang bagay na karaniwang direktang nakikipag-ugnayan ang mga user. Naka-store ang mga ito sa /data/dalvik-cache/ o sa tabi ng APK sa /data/app/.

SO: Shared Object (Native Libraries)

Ang mga file na may extension na .so ay mga katutubong shared library na pinagsama-sama para sa mga partikular na arkitektura ng CPU. Naglalaman ang mga ito ng machine code na nakasulat sa C, C++, o Rust na direktang tumatakbo sa processor nang walang overhead ng Dalvik/ART runtime.

Mga Variant ng Arkitektura

  • armeabi-v7a, 32-bit ARM (karamihan sa mga mas lumang device)
  • arm64-v8a, 64-bit ARM (pinaka modernong mga telepono)
  • x86, 32-bit Intel/AMD (ilang mga tablet at emulator)
  • x86_64, 64-bit Intel/AMD (Mga Chromebook at emulator)

Kapag ang isang APK ay naglalaman ng mga katutubong aklatan, dapat itong isama ang tamang arkitektura para sa target na device. Kung kasama ang maling arkitektura, mag-crash ang app sa isang UnsatisfiedLinkError.

Mga XML File sa Android

Ang Android ay gumagamit ng XML nang husto, ngunit sa dalawang magkaibang anyo:

Binary XML

Sa loob ng mga APK file, ang mga mapagkukunang XML (mga layout, manifest, string file) ay iniimbak sa isang pinagsama-samang binary na format na tinatawag na AXML. Ang format na ito ay mas compact at mas mabilis na i-parse kaysa sa text XML. Ang mga tool tulad ng aapt2 o apktool ay maaaring mag-decompile ng binary XML pabalik sa nababasang teksto.

Text XML

Sa panahon ng pagbuo, ang mga XML file ay nasa karaniwang format ng teksto. Ang proseso ng pagbuo ay pinagsama-sama ang mga ito sa binary XML para isama sa APK. Ang mga configuration file tulad ng network_security_config.xml at mga resource file sa res/ na direktoryo ay nagsisimula bilang text XML.

ProGuard/R8 Mapping Files

Bagama't hindi isang format na tukoy sa Android, ang mga mapping file (mapping.txt ay mahalaga para sa pag-unawa sa mga na-obfuscate na app). Kapag gumagamit ang mga developer ng mga tool sa pag-urong ng code tulad ng R8, ang mga pangalan ng klase at pamamaraan ay papalitan ng maikli at walang kahulugan na mga identifier. Itinatala ng mapping file ang orihinal-na-obfuscated na mga pagsasalin ng pangalan, mahalaga para sa pagbabasa ng mga ulat ng pag-crash.

Android Backup Format (AB)

Ang mga file na may extension na .ab ay mga backup archive ng Android na ginawa ng adb backup. Naglalaman ang mga ito ng tar archive (opsyonal na naka-compress at naka-encrypt) ng direktoryo ng data ng isang app. Ang format na ito ay hindi na ginagamit pabor sa cloud-based na mga backup na solusyon ngunit ginagamit pa rin ng ilang backup na tool.

IMG at Partition Images

Bagama't hindi nauugnay sa app, gumagamit ang mga larawan ng Android system ng ilang format na dapat banggitin:

  • system.img: Ang read-only system partition na naglalaman ng Android framework at mga paunang naka-install na app
  • boot.img: Naglalaman ng Linux kernel at paunang ramdisk
  • vendor.img: Mga driver at firmware na partikular sa hardware
  • super.img: Dynamic na lalagyan ng partition na ginagamit sa mga modernong device (Android 10+)

Talahanayan ng Paghahambing ng Format

Narito ang isang mabilis na sanggunian sa paghahambing ng mga pangunahing format ng pamamahagi ng app:

  • APK: Isang file, direktang mai-install, pangkalahatan (kasama ang lahat ng config), mas malaking sukat
  • Ang AAB: format ng pag-publish, hindi direktang mai-install, ay nangangailangan ng pagproseso ng Play Store
  • Ang XAPK: Container (APK + OBB/splits), ay nangangailangan ng installer o extraction, na ginagamit ng APKPure
  • Ang APK: Container (mga split APK), bundletool na format, ay nangangailangan ng installer o merger
  • Ang APKM: Container (mga split APK), APKMirror na format, ay nangangailangan ng kanilang installer

Pagpili ng Tamang Tool

Depende sa kung aling format ang ginagamit mo, iba't ibang mga tool ang naaangkop:

  • May XAPK? Gamitin ang aming XAPKS sa APK converter para i-extract ang na-install na APK
  • May AAB? Gamitin ang aming AAB to APK converter upang bumuo ng isang pangkalahatang APK
  • May mga split APK (APKS)? Gamitin ang aming APKS sa APK merger upang pagsamahin ang mga ito
  • Kailangang i-verify ang isang APK? Gamitin ang aming Tagasuri ng APK upang suriin ang mga lagda
  • Kailangan ng mga OBB file mula sa isang XAPK? Gamitin ang aming Tagakuha ng OBB upang i-unpack ang mga expansion file

Aling Format ng Android Package ang Dapat Mong Gamitin?

Ang iba't ibang format ng file ng Android ecosystem ay sumasalamin sa ebolusyon ng platform mula sa mga simpleng single-file na APK hanggang sa mga sopistikadong modular delivery system. Umiiral ang bawat format upang malutas ang isang partikular na problema: Pinapababa ng mga AAB ang mga laki ng pag-download, pinapasimple ng mga XAPK ang pamamahagi ng mga multi-file na app, pinangangasiwaan ng mga OBB ang malaking data ng laro, at pinapagana ng mga split APK ang pag-optimize na partikular sa device.

Kapag naunawaan mo na ang mga format na ito, maaari mong pangasiwaan ang anumang Android package kung saan ka nararanasan, kung ikaw ay nag-sideload ng mga app, nagba-back up ng iyong device, o gumagawa ng sarili mong mga application. Ang pangunahing takeaway ay ang karamihan sa mga format na ito sa huli ay mga container na naglalaman ng mga APK file sa iba't ibang configuration, at gamit ang mga tamang tool, palagi mong makukuha ang kailangan mo.

Ininhinyero at Dokumento ni Mst Shaefale Punong Developer at Arkitekto ng Package sa Android • Na-verify sa Android 12–15

Pinapanatili ni Mst Shaefale ang client-side na XAPK/APKS merger, binary manifest parser, at APK v1+v2 signing tool sa xapktoapk.com. Makita ang isang hindi napapanahong command o pagbabago ng OS? Magpadala ng editoryal na tala.