APK: mi ez, a fájl felépítése és működési elve

Szerző: IT Sectr Megjelenés: 2026-04-15 Olvasási idő: 8 perc

APK (Android Package Kit) egy archívumfájl-formátum, amelyet Android-alkalmazások terjesztésére és telepítésére használnak. Minden alkalmazás, amelyet a felhasználó a Google Play-ből letölt vagy manuálisan telepít, egy APK-fájl. A Android Open Source Project, 2026 szerint a formátum a ZIP szabványon alapul, és lefordított kódot, erőforrásokat, manifesztet és digitális aláírást tartalmaz.

Főbb pontok

  • APK — ZIP-alapú Android telepítőcsomag-formátum DEX bájtkóddal és erőforrásokkal.
  • Felépítés tartalmazza a manifesztet, DEX-fájlokat, erőforrásokat, natív kódkönyvtárakat és tanúsítványokat.
  • Aláírás — kötelező elem: az aláíratlan APK nem telepíthető eszközökre.
  • Építés a Gradle-en keresztül történik: Java/Kotlin-tól a tömörített DEX bájtkódig.
  • Harmadik féltől származó áruházak és a közvetlen APK-telepítés továbbra is népszerűek a Google Play-en kívül.

Mi az APK és mire használják

APK (Android Package Kit) egy archívumformátum, amelybe az Android-alkalmazást csomagolják terjesztés céljából. Technikailag az APK egy meghatározott szerkezetű ZIP-archívum, amely tartalmazza az alkalmazás eszközön való működéséhez szükséges összes komponenst.

A formátum története

Az APK formátum az Android első verziójával együtt jelent meg 2008-ban. Alapul a JAR (Java Archive) szabványt vették, amely maga is ZIP-en alapul. Ez az öröklés biztosította a kompatibilitást a meglévő archívumkezelő eszközökkel — bármely archiváló megnyitja az APK-t mint egy szokásos ZIP-et.

Alkalmazási területek

Google Play — az APK terjesztésének fő csatornája, de a formátumot más forgatókönyvekben is használják: közvetlen telepítés böngészőn keresztül (sideloading), vállalati alkalmazásáruházak, tesztelés fejlesztői eszközökön és telepítés emulátorokban. A Statista szerint az Android-alkalmazások telepítésének körülbelül 15%-a 2025-ben a Google Play-en kívül történik.

Az APK-fájl belső felépítése

Az APK belső felépítése szigorúan szabályozott: minden alkalmazásnak meghatározott fájlokat és könyvtárakat kell tartalmaznia. A szerkezet megsértése telepítési hibához vezet.

Fájl/könyvtárRendeltetés
AndroidManifest.xmlAlkalmazás manifeszt: engedélyek, komponensek, SDK verzió
classes.dexLefordított DEX bájtkód (több fájl is lehet)
resources.arscLefordított erőforrások: karakterláncok, stílusok, elrendezések
res/Nem lefordított erőforrások: képek, betűtípusok, XML
lib/Natív könyvtárak (.so) különböző CPU architektúrákhoz
META-INF/Metaadatok: tanúsítványok, fájllisták, hash-ek

AndroidManifest.xml

A manifeszt az alkalmazás központi konfigurációs fájlja. Lefordított bináris formában (nem olvasható XML-ben) tartalmazza a csomag nevét, verzióját, tevékenységek listáját, szolgáltatásokat, engedélyeket és SDK-követelményeket. Manifeszt nélkül a rendszer nem tudja, hogyan indítsa el az alkalmazást.

DEX-fájlok

A Java vagy Kotlin forráskód DEX (Dalvik Executable) fájlokba fordul le. A fő fájl neve classes.dex. Ha a bájtkód meghaladja a 64K metódus korlátját, classes2.dex, classes3.dex és így tovább jön létre — a multidex mechanizmus.

Natív könyvtárak

A lib/ könyvtár lefordított C/C++ könyvtárakat tartalmaz különböző architektúrákhoz: armeabi-v7a, arm64-v8a, x86, x86_64. Minden könyvtár .so (Shared Object) kiterjesztéssel rendelkezik. A modern alkalmazások általában csak arm64-v8a-t szállítanak.

Az APK építésének folyamata Gradle-en keresztül

Az APK építése egy többlépcsős folyamat, amelyet a Gradle build rendszer és az Android Gradle Plugin automatizál. Minden lépés a forrásfájlokat a végleges archívum komponenseivé alakítja.

Építési lépések

A forráskód Java bájtkóddá (.class) fordul, majd a d8 eszközön (korábban dx) keresztül DEX-re konvertálódik. Az erőforrások az AAPT2-n keresztül bináris formátumba fordulnak. Az összes komponens ZIP-archívumba csomagolódik és digitális aláírással kerül aláírásra.

kotlin
// build.gradle.kts — APK építésének alapszintű konfigurációja
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 és méretcsökkentés

ProGuard vagy R8 elkódolja a kódot, eltávolítja a nem használt osztályokat és metódusokat, csökkentve az APK méretét. Elkódolás nélkül az APK teljes osztályneveket tartalmaz, ami megkönnyíti a dekompilálást. Az R8 emellett DEX-szintű bájtkód-optimalizálást is végez.

APK aláírása: v1, v2, v3 és v4 sémák

A digitális aláírás az APK kötelező eleme. Az Android nem telepít aláíratlan csomagokat. Az aláírás garantálja, hogy az alkalmazás nem változott meg a közzététel után, és meghatározza, hogy kié a csomag.

Az aláírási sémák fejlődése

v1 (JAR signing) — eredeti séma, amely az archívum minden fájljának aláírásán alapul. Gyengeség: fájlok eltávolíthatók a META-INF-ből észlelés nélkül. v2 (APK Signature Scheme v2) az Android 7.0-ban jelent meg — a teljes archívum aláírásra kerül, ami megakadályozza a módosítást. v3 támogatja a kulcsrotációt, a v4 pedig az inkrementális telepítést.

A Google Play 2021 augusztusa óta v2 vagy magasabb verziót követel meg minden új alkalmazáshoz. Javasolt az APK-t mindhárom sémával aláírni a maximális kompatibilitás érdekében a különböző Android-verziókkal.

Az aláírás folyamata Gradle-en keresztül

A build.gradle-ben meg kell adni a keystore-t, jelszót és aliast. A privát kulcs titkosított tárolóban van. A Google Play-ben való közzétételhez az App Signinget használják — a Google tárolja a privát kulcsot, a fejlesztő pedig feltölti az aláírt APK-t.

APK telepítése Android-eszközre

Az APK telepítése a PackageManager rendszer csomagkezelőn keresztül történik. A folyamat magában foglalja az aláírás ellenőrzését, a manifeszt elemzését, a fájlok másolását és a DEX optimalizálását dex2oat-on keresztül.

Telepítés ADB-n keresztül

Az ADB (Android Debug Bridge) eszköz lehetővé teszi az APK közvetlen telepítését a fejlesztő számítógépéről. Az `adb install app.apk` parancs átmásolja a fájlt az eszközre és elindítja a telepítést. A -r jelző újratelepíti az alkalmazást az adatok megtartásával, a -d jelző lehetővé teszi az alacsonyabb versionCode-ú verzió telepítését.

Telepítés biztonsága

Android 8.0-tól kezdve a rendszer minden alkalmazás esetében külön megerősítést kér az ismeretlen forrásból történő telepítéshez. Android 14 tovább erősítette az ellenőrzést: az APK telepítése harmadik féltől származó áruházakon keresztül csak a beállításokban adott kifejezett engedély után lehetséges. A Google Play Protect minden APK-t megvizsgál telepítéskor rosszindulatú kódra.

APK Expansion Files (OBB)

A 150 MB-nál nagyobb alkalmazásokhoz a Google Play Expansion Files-t támogat — kiegészítő OBB csomagokat, egyenként legfeljebb 2 GB méretben. Az OBB fájlok nem részei az APK-nak, hanem a telepítés után külön töltődnek le. A formátum két típust támogat: main (alap erőforrások) és patch (frissítések).

kotlin
// APK verziójának ellenőrzése PackageManager-en keresztül
val pm = packageManager
val info = pm.getPackageInfo(
    "com.example.app",
    PackageManager.GET_ACTIVITIES
)
Log.d("APK", "Verzió: ${info.versionName}")

dex2oat optimalizálás

ART (Android Runtime) rendszerrel rendelkező eszközökön a telepítés után elindul a DEX natív kóddá fordítás a dex2oat-on keresztül. A folyamat néhány másodpercig tarthat, és megnöveli a telepített alkalmazás méretét, de felgyorsítja annak indítását.

APK vs AAB: melyik formátumot válasszuk

AAB (Android App Bundle) — a Google által az APK alternatívájaként népszerűsített formátum a Google Play-ben való közzétételhez. A különbség alapvető: az AAB nem telepíthető közvetlenül, hanem tárolóként szolgál, amelyből a Google Play optimalizált APK-kat generál.

ParaméterAPKAAB
Letöltési méretTeljes archívumCsak szükséges komponensek
Közvetlen telepítésIgenNem (APK generálás)
TerjesztésBármely csatornaGoogle Play
VerziókezelésVerzió a manifesztbenDynamic Delivery
KözzétételGoogle Play + harmadik felekGoogle Play

Google Play 2021 augusztusa óta AAB-t követel meg az új alkalmazásokhoz. Az APK azonban továbbra is a fő formátum marad a Google Play-en kívüli terjesztéshez — weboldalakon, vállalati áruházakon és tesztelésen keresztül.

Gyakori APK-problémák és megoldásaik

A fejlesztők rendszeresen szembesülnek problémákkal az APK építése és telepítése során. A legtöbb ezek közül a verziók összeférhetetlenségével, az aláírással vagy az archívum szerkezetével kapcsolatos.

INSTALL_FAILED_UPDATE_INCOMPATIBLE

A hiba akkor jelentkezik, amikor egy APK-t ugyanazzal a csomagnévvel, de eltérő aláírással próbálnak telepíteni. Android nem engedélyezi a módosított tanúsítvánnyal rendelkező alkalmazás újratelepítését. Megoldás — távolítsa el a régi verziót a telepítés előtt.

A metóduskorlát túllépése (65K)

Ha a projekt meghaladja a 65536 metódus korlátját, az építés dex hibával meghiúsul. Megoldás — kapcsolja be a multidex-et a build.gradle-ben, vagy optimalizálja a függőségeket a nem használt könyvtárak eltávolításával.

Túl nagy méretű APK

A Google Play az APK méretét 150 MB-ban korlátozza. Nagyobb alkalmazásokhoz APK Expansion Files (OBB) használatos. Javasolt a méret csökkentése R8, WebP képek és Android App Bundle segítségével. Minden plusz megabyte negatívan hat a telepítési konverzióra: a Google szerint minden 10 MB 1%-kal csökkenti a konverziót.

APK dekompilálása és biztonság

Az APK dekompilálható JADX, APKTool vagy Bytecode Viewer eszközökkel. JADX visszaállítja az eredeti Java kódot a DEX-ből, ami az elkódolás nélküli alkalmazásokat teljesen olvashatóvá teszi. A kód védelmére ProGuard/R8 használatos, amely az osztályokat, metódusokat és mezőket rövid olvashatatlan nevekre nevezi át, és eltávolítja a hibakeresési információkat.

APK elemzése eszközökkel

Az APK tartalmának elemzéséhez Android Studio Profiler, apkanalyzer (CLI eszköz az Android SDK-ból) és harmadik féltől származó segédprogramok használatosak. apkanalyzer megmutatja az APK egyes összetevőinek méretét: DEX, erőforrások, natív könyvtárak és aláírás. Az elemzés segít azonosítani, mely függőségek foglalják a legtöbb helyet, és döntést hozni a cseréjükről vagy eltávolításukról.

Gyakran ismételt kérdések

Megnyitható az APK szokásos ZIP archívumként?

Igen, bármely archiváló (7-Zip, WinRAR) megnyitja az APK-t ZIP-ként. A tartalom megtekinthető, de a kód dekompilálásához speciális eszközökre — JADX vagy apktool — van szükség.

Miben különbözik az APK az XAPK-tól?

XAPK — nem hivatalos formátum, amelyet néhány harmadik féltől származó áruház használ. Az APK-t kiegészítő OBB fájlokkal egy archívumba egyesíti. A Google Play és a hivatalos Android dokumentáció nem használja az XAPK-t.

Alá kell írni az APK-t teszteléshez?

Android Studio automatikusan aláírja a debug build-et debug.keystore-ral az eszközön való futtatáskor. A tesztverzió csapatnak történő terjesztéséhez release kulccsal történő aláírás vagy App Signing használata szükséges.

Hogyan lehet csökkenteni az APK méretét?

Használja az R8-at elkódoláshoz és minimalizáláshoz, konvertálja a képeket WebP-be, távolítsa el a nem használt erőforrásokat a Lint-en keresztül, és nagy projektek esetén váltson Android App Bundle-re Dynamic Delivery-vel.

Megváltoztatható az APK közzététel után?

Nem — az APK bármilyen megváltoztatása az aláírás után megtöri a digitális aláírást. Frissítéshez új verziót kell építeni és aláírni megnövelt versionCode-kal.

Összefoglalás

  • APK — ZIP-alapú Android telepítőcsomag-formátum kötelező digitális aláírással.
  • Felépítés tartalmazza a manifesztet, DEX bájtkódot, erőforrásokat, natív könyvtárakat és tanúsítványokat.
  • Építés a Gradle-en keresztül történik, a d8 eszközzel DEX-re fordítva.
  • Aláírás kötelező: a v1, v2, v3 és v4 sémák különböző védelmi szinteket biztosítanak.
  • Telepítés lehetséges Google Play-en, ADB-n, böngészőn és vállalati áruházakon keresztül.
  • AAB felváltja az APK-t a Google Play-ben, de az APK marad a külső terjesztés szabványa.
  • Korlátok: 150 MB korlát a Google Play-ben, 64K metódus multidex nélkül, kötelező aláírás.

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is