APK: ano ito, istraktura ng file at prinsipyo ng paggana

May-akda: IT Sectr Nai-publish: 2026-04-15 Oras ng pagbabasa: 8 min

APK (Android Package Kit) ay isang format ng archive file na ginagamit para sa pamamahagi at pag-install ng mga application sa Android. Bawat application na dina-download ng user mula sa Google Play o manu-manong ini-install ay isang APK file. Ayon sa Android Open Source Project, 2026, ang format ay batay sa ZIP na pamantayan at naglalaman ng compiled code, resources, manifest at digital signature.

Mga pangunahing punto

  • APK — format ng installation package ng Android na batay sa ZIP na may DEX byte-code at resources.
  • Istraktura ay may kasamang manifest, DEX file, resources, native code library at certificate.
  • Lagda — sapilitang elemento: ang hindi nilagdaang APK ay hindi nai-install sa mga device.
  • Pagbuo ay nagaganap sa pamamagitan ng Gradle: mula Java/Kotlin hanggang compressed DEX byte-code.
  • Mga third-party na tindahan at direktang pag-install ng APK ay nananatiling ginagamit sa labas ng Google Play.

Ano ang APK at para saan ito ginagamit

APK (Android Package Kit) ay isang format ng archive kung saan nakabalot ang Android application para sa pamamahagi. Sa teknikal, ang APK ay isang ZIP archive na may tiyak na istraktura na naglalaman ng lahat ng mga component na kinakailangan para sa paggana ng application sa device.

Kasaysayan ng format

Ang APK format ay lumitaw kasama ng unang bersyon ng Android noong 2008. Bilang batayan ay kinuha ang JAR (Java Archive) na pamantayan, na sa turn ay batay sa ZIP. Ang pagmamanang ito ay nagtiyak ng compatibility sa mga umiiral na tool sa pag-archive — kahit anong archiver ay nagbubukas ng APK tulad ng ordinaryong ZIP.

Mga lugar ng paggamit

Google Play — pangunahing channel ng pamamahagi ng APK, ngunit ang format ay ginagamit din sa iba pang sitwasyon: direktang pag-install sa pamamagitan ng browser (sideloading), corporate application store, pag-test sa developer device at pag-install sa emulator. Ayon sa Statista, halos 15% ng pag-install ng Android application sa 2025 ay nagaganap sa labas ng Google Play.

Istraktura ng APK file mula sa loob

Ang panloob na istraktura ng APK ay mahigpit na kinokontrol: bawat application ay dapat maglaman ng tiyak na mga file at directory. Ang paglabag sa istraktura ay humahantong sa error sa pag-install.

File/directoryLayunin
AndroidManifest.xmlManifest ng application: mga pahintulot, component, bersyon ng SDK
classes.dexCompiled DEX byte-code (maaaring maraming file)
resources.arscCompiled resources: strings, style, layout
res/Hindi compiled resources: mga larawan, font, XML
lib/Native library (.so) para sa iba't ibang CPU architecture
META-INF/Metadata: certificate, listahan ng file, hash

AndroidManifest.xml

Ang manifest ay ang sentral na configuration file ng application. Sa binary compiled form (hindi sa nababasang XML) naglalaman ito ng package name, version, listahan ng activities, services, permissions at SDK requirements. Kung walang manifest, hindi alam ng system kung paano patakbuhin ang application.

Mga DEX file

Ang source code sa Java o Kotlin ay compiled sa DEX (Dalvik Executable) file. Ang pangunahing file ay tinatawag na classes.dex. Kung ang byte-code ay lumampas sa limit na 64K methods, nilikha ang classes2.dex, classes3.dex at iba pa — ang multidex mechanism.

Mga native library

Ang directory na lib/ ay naglalaman ng compiled C/C++ library para sa iba't ibang architecture: armeabi-v7a, arm64-v8a, x86, x86_64. Bawat library ay may extension na .so (Shared Object). Ang mga modernong application ay karaniwang nagbibigay lamang ng arm64-v8a.

Proseso ng pagbuo ng APK sa pamamagitan ng Gradle

Ang pagbuo ng APK ay isang multi-stage process na awtomatiko ng build system na Gradle at Android Gradle Plugin. Bawat stage ay nagko-convert ng source file sa component ng final archive.

Mga stage ng pagbuo

Ang source code ay compiled sa Java byte-code (.class), pagkatapos ay convert sa DEX sa pamamagitan ng tool na d8 (dating dx). Ang resources ay compiled sa binary format sa pamamagitan ng AAPT2. Lahat ng component ay nakabalot sa ZIP archive at pinirmahan ng digital signature.

kotlin
// build.gradle.kts — base configuration ng pagbuo ng APK
android {
    defaultConfig {
        applicationId = "com.example.app"
        minSdk = 24
        targetSdk = 34
        versionCode = 1
        versionName = "1.0.0"
    }
    buildTypes {
        release {
            isMinifyEnabled = true
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt")
            )
        }
    }
}

ProGuard at pagbawas ng laki

ProGuard o R8 ay nag-o-obfuscate ng code, nagtatanggal ng hindi ginagamit na mga class at method, binabawasan ang laki ng APK. Kung walang obfuscation, ang APK ay naglalaman ng buong pangalan ng class na nagpapadali sa decompilation. Ang R8 ay nagsasagawa rin ng byte-code optimization sa DEX level.

Pagpirma ng APK: v1, v2, v3 at v4 na mga scheme

Ang digital signature ay sapilitang elemento ng APK. Hindi ini-install ng Android ang hindi pirma na package. Ang pirma ay ginagarantiyahan na ang application ay hindi nabago pagkatapos ng publication at tinutukoy kung kanino nabibilang ang package.

Ebolusyon ng mga scheme ng pagpirma

v1 (JAR signing) — orihinal na scheme batay sa pagpirma ng bawat file sa archive. Kahinaan: maaaring tanggalin ang file mula sa META-INF nang hindi natutukoy. v2 (APK Signature Scheme v2) ay lumitaw sa Android 7.0 — ang buong archive ay pinirmahan na pumipigil sa pagbabago. v3 ay sumusuporta sa key rotation, at v4 ay sumusuporta sa incremental installation.

Ang Google Play ay nangangailangan ng v2 o mas mataas para sa lahat ng bagong application mula noong Agosto 2021. Inirerekomenda na pirmahan ang APK gamit ang lahat ng tatlong scheme para sa maximum compatibility sa iba't ibang bersyon ng Android.

Proseso ng pagpirma sa pamamagitan ng Gradle

Sa build.gradle ay tinutukoy ang keystore, password at alias. Ang pribadong key ay naka-store sa naka-encrypt na storage. Para sa publication sa Google Play ay ginagamit ang App Signing — iniimbak ng Google ang pribadong key, at ang developer ay nag-uupload ng pinirmahang APK.

Pag-install ng APK sa Android device

Ang pag-install ng APK ay isinasagawa sa pamamagitan ng system package manager na PackageManager. Ang proseso ay may kasamang verification ng pirma, pag-parse ng manifest, pagkopya ng file at DEX optimization sa pamamagitan ng dex2oat.

Pag-install sa pamamagitan ng ADB

Ang tool na ADB (Android Debug Bridge) ay nagbibigay-daan sa pag-install ng APK nang direkta mula sa computer ng developer. Ang command na `adb install app.apk` ay kumokopya ng file sa device at nag-start ng installation. Ang flag na -r ay nag-reinstall ng application na pinapanatili ang data, ang flag na -d ay nagbibigay-daan sa pag-install ng bersyon na may mas mababang versionCode.

Seguridad ng pag-install

Simula sa Android 8.0, ang system ay nangangailangan ng kumpirmasyon ng pag-install mula sa hindi kilalang source para sa bawat application nang hiwalay. Android 14 ay nagpatibay ng kontrol: ang pag-install ng APK sa pamamagitan ng third-party na tindahan ay posible lamang pagkatapos ng malinaw na pahintulot sa mga setting. Ang Google Play Protect ay nag-scan ng bawat APK sa pag-install para sa malisyosong code.

APK Expansion Files (OBB)

Para sa application na mas malaki sa 150 MB, ang Google Play ay sumusuporta sa Expansion Files — karagdagang OBB package hanggang 2 GB bawat isa. Ang mga OBB file ay hindi bahagi ng APK, ngunit dina-download nang hiwalay pagkatapos ng pag-install. Ang format ay sumusuporta sa dalawang uri: main (base resources) at patch (mga update).

kotlin
// Pagsusuri ng bersyon ng APK sa pamamagitan ng PackageManager
val pm = packageManager
val info = pm.getPackageInfo(
    "com.example.app",
    PackageManager.GET_ACTIVITIES
)
Log.d("APK", "Bersyon: ${info.versionName}")

Optimization ng dex2oat

Sa mga device na may ART (Android Runtime) pagkatapos ng pag-install ay inilunsad ang compilation ng DEX sa native code sa pamamagitan ng dex2oat. Ang proseso ay maaaring tumagal ng ilang segundo at pinapataas ang laki ng naka-install na application, ngunit pinapabilis ang paglunsad nito.

APK vs AAB: aling format ang pipiliin

AAB (Android App Bundle) — format na itinutulak ng Google bilang alternatibo sa APK para sa publication sa Google Play. Ang pagkakaiba ay pangunahing: ang AAB ay hindi direktang nai-install, ngunit nagsisilbing container kung saan ang Google Play ay gumagawa ng optimized na APK.

ParameterAPKAAB
Laki ng downloadBuong archiveTanging kinakailangang component
Direktang pag-installOoHindi (pag-generate ng APK)
PamamahagiKahit anong channelGoogle Play
Kontrol ng bersyonBersyon sa manifestDynamic Delivery
PublicationGoogle Play + third-partyGoogle Play

Google Play ay nangangailangan ng AAB mula noong Agosto 2021 para sa mga bagong application. Gayunpaman, ang APK ay nananatiling pangunahing format para sa pamamahagi sa labas ng Google Play — sa pamamagitan ng mga website, corporate store at pag-test.

Mga karaniwang problema sa APK at solusyon

Ang mga developer ay regular na nakakaranas ng problema sa pagbuo at pag-install ng APK. Karamihan sa mga ito ay may kaugnayan sa incompatibility ng bersyon, pirma o istraktura ng archive.

INSTALL_FAILED_UPDATE_INCOMPATIBLE

Ang error ay nangyayari kapag sinusubukang mag-install ng APK na may parehong package name ngunit ibang pirma. Android ay hindi pinapayagan ang muling pag-install ng application na may binagong certificate. Solusyon — tanggalin ang lumang bersyon bago mag-install.

Paglampas sa limit ng method (65K)

Kung ang proyekto ay lumampas sa limit na 65536 method, ang pagbuo ay nabibigo na may dex error. Solusyon — i-activate ang multidex sa build.gradle o i-optimize ang dependencies sa pamamagitan ng pag-alis ng hindi ginagamit na library.

APK na masyadong malaki ang laki

Nililimitahan ng Google Play ang laki ng APK sa 150 MB. Para sa mas malaking application ay ginagamit ang APK Expansion Files (OBB). Inirerekomenda na bawasan ang laki sa pamamagitan ng R8, WebP na mga larawan at Android App Bundle. Bawat dagdag na megabyte ay negatibong nakakaapekto sa conversion ng pag-install: ayon sa Google, bawat 10 MB ay nagbabawas ng conversion ng 1%.

Decompilation ng APK at seguridad

Ang APK ay maaaring i-decompile gamit ang mga tool na JADX, APKTool o Bytecode Viewer. JADX ay nag-recover ng original Java code mula sa DEX, na ginagawang ganap na nababasa ang mga application na walang obfuscation. Para sa proteksyon ng code ay ginagamit ang ProGuard/R8, na nagpapalit ng pangalan ng class, method at field sa maiikling hindi nababasang pangalan at nagtatanggal ng debug information.

Pagsusuri ng APK sa pamamagitan ng mga tool

Para sa pagsusuri ng nilalaman ng APK ay ginagamit ang Android Studio Profiler, apkanalyzer (CLI tool mula sa Android SDK) at third-party na utilities. apkanalyzer ay nagpapakita ng laki ng bawat component ng APK: DEX, resources, native library at pirma. Ang pagsusuri ay tumutulong na matukoy kung aling dependencies ang kumukuha ng pinakamaraming espasyo at gumawa ng desisyon tungkol sa pagpapalit o pag-alis ng mga ito.

Mga madalas itanong

Maaari bang buksan ang APK bilang ordinaryong ZIP archive?

Oo, kahit anong archiver (7-Zip, WinRAR) ay nagbubukas ng APK bilang ZIP. Maaaring tingnan ang nilalaman, ngunit para sa decompilation ng code ay kinakailangan ang mga espesyal na tool — JADX o apktool.

Ano ang pagkakaiba ng APK sa XAPK?

XAPK — hindi opisyal na format na ginagamit ng ilang third-party na tindahan. Pinagsasama nito ang APK na may karagdagang OBB file sa isang archive. Ang Google Play at opisyal na dokumentasyon ng Android ay hindi gumagamit ng XAPK.

Kailangan bang pirmahan ang APK para sa pag-test?

Android Studio ay awtomatikong pumipirma ng debug build na may debug.keystore kapag pinatakbo sa device. Para sa pamamahagi ng test version sa team ay kinakailangan ang pirma gamit ang release key o paggamit ng App Signing.

Paano bawasan ang laki ng APK?

Gamitin ang R8 para sa obfuscation at minimization, i-convert ang mga larawan sa WebP, tanggalin ang hindi ginagamit na resources sa pamamagitan ng Lint, at para sa malalaking proyekto lumipat sa Android App Bundle na may Dynamic Delivery.

Maaari bang baguhin ang APK pagkatapos ng publication?

Hindi — kahit anong pagbabago sa APK pagkatapos ng pagpirma ay sumisira sa digital signature. Para sa update ay kailangang buuin at pirmahan ang bagong bersyon na may mas mataas na versionCode.

Buod

  • APK — format ng installation package ng Android na batay sa ZIP na may sapilitang digital signature.
  • Istraktura ay may kasamang manifest, DEX byte-code, resources, native library at certificate.
  • Pagbuo ay isinasagawa sa pamamagitan ng Gradle na may compilation sa DEX sa pamamagitan ng tool na d8.
  • Pirma ay sapilitan: mga scheme v1, v2, v3 at v4 ay nagbibigay ng iba't ibang antas ng proteksyon.
  • Pag-install ay posible sa pamamagitan ng Google Play, ADB, browser at corporate store.
  • AAB ay pumapalit sa APK sa Google Play, ngunit ang APK ay nananatiling pamantayan para sa panlabas na pamamahagi.
  • Mga limitasyon: limit na 150 MB para sa Google Play, 64K method na walang multidex, sapilitang pirma.

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din