APK: nədir, fayl strukturu və iş prinsipi

Müəllif: IT Sectr Dərc olunub: 2026-04-15 Oxuma vaxtı: 8 dəq

APK (Android Package Kit) — Android-də tətbiqlərin paylanması və quraşdırılması üçün istifadə olunan arxiv fayl formatıdır. İstifadəçinin Google Play-dən endirdiyi və ya əl ilə quraşdırdığı hər bir tətbiq APK faylıdır. Android Open Source Project, 2026-ya görə, format ZIP standartına əsaslanır və tərtib edilmiş kod, resurslar, manifest və rəqəmsal imza ehtiva edir.

Əsas məqamlar

  • APK — DEX bayt-kodu və resursları ilə ZIP əsaslı Android quraşdırma paketi formatı.
  • Struktur manifest, DEX faylları, resurslar, yerli kod kitabxanaları və sertifikatları əhatə edir.
  • İmza — məcburi element: imzasız APK cihazlarda quraşdırılmır.
  • Yığılma Gradle vasitəsilə baş verir: Java/Kotlin-dən sıxılmış DEX bayt-koduna qədər.
  • Üçüncü tərəf mağazaları və birbaşa APK quraşdırması Google Play xaricində tələb olunur.

APK nədir və nə üçün istifadə olunur

APK (Android Package Kit) — Android tətbiqinin paylanma üçün paketləndiyi arxiv formatıdır. Texniki olaraq APK, cihazda tətbiqin işləməsi üçün lazım olan bütün komponentləri ehtiva edən müəyyən strukturlu ZIP arxividir.

Formatın tarixi

APK formatı 2008-ci ildə Android-in ilk versiyası ilə birlikdə meydana çıxdı. Əsas olaraq JAR (Java Archive) standartı götürüldü, o da öz növbəsində ZIP-ə əsaslanır. Bu miras arxivlərlə işləmək üçün mövcud alətlərlə uyğunluğu təmin etdi — istənilən arxivləşdirici APK-nı adi ZIP kimi açır.

İstifadə sahələri

Google Play — APK paylanmasının əsas kanalıdır, lakin format digər ssenarilərdə də istifadə olunur: brauzer vasitəsilə birbaşa quraşdırma (sideloading), korporativ tətbiq mağazaları, tərtibatçı cihazlarında sınaq və emulyatorlarda quraşdırma. Statista-ya görə, 2025-ci ildə Android tətbiq quraşdırmalarının təxminən 15%-i Google Play xaricində baş verir.

APK faylının daxili strukturu

Daxili quruluşu ciddi şəkildə tənzimlənir: hər bir tətbiq müəyyən fayl və qovluqları ehtiva etməlidir. Strukturun pozulması quraşdırma xətasına gətirib çıxarır.

Fayl/qovluqTəyinatı
AndroidManifest.xmlTətbiq manifesti: icazələr, komponentlər, SDK versiyası
classes.dexTərtib edilmiş DEX bayt-kodu (bir neçə fayl ola bilər)
resources.arscTərtib edilmiş resurslar: sətirlər, stillər, planlar
res/Tərtib edilməmiş resurslar: şəkillər, şriftlər, XML
lib/Müxtəlif CPU arxitekturaları üçün yerli kitabxanalar (.so)
META-INF/Metaməlumatlar: sertifikatlar, fayl siyahıları, heşlər

AndroidManifest.xml

Manifest — tətbiqin mərkəzi konfiqurasiya faylıdır. İkili tərtib edilmiş formada (oxuna bilən XML deyil) paket adı, versiya, fəaliyyətlərin siyahısı, xidmətlər, icazələr və SDK tələblərini ehtiva edir. Manifest olmadan sistem tətbiqi necə işə salacağını bilmir.

DEX faylları

Java və ya Kotlin dillərindəki mənbə kodu DEX (Dalvik Executable) fayllarına tərtib edilir. Əsas fayl classes.dex adlanır. Bayt-kod 64K metod limitini keçərsə, classes2.dex, classes3.dex və s. yaradılır — multidex mexanizmi.

Yerli kitabxanalar

lib/ qovluğu müxtəlif arxitekturalar üçün tərtib edilmiş C/C++ kitabxanalarını ehtiva edir: armeabi-v7a, arm64-v8a, x86, x86_64. Hər kitabxana .so (Shared Object) genişlənməsinə malikdir. Müasir tətbiqlər adətən yalnız arm64-v8a təqdim edir.

Gradle vasitəsilə APK yığılma prosesi

APK-nın yığılması Gradle və Android Gradle Plugin tərəfindən avtomatlaşdırılmış çoxmərhələli prosesdir. Hər mərhələ mənbə fayllarını son arxivin komponentlərinə çevirir.

Yığılma mərhələləri

Mənbə kodu Java bayt-koduna (.class) tərtib edilir, sonra d8 aləti (əvvəllər dx) vasitəsilə DEX-ə çevrilir. Resurslar AAPT2 vasitəsilə ikili formata tərtib edilir. Bütün komponentlər ZIP arxivinə yığılır və rəqəmsal imza ilə imzalanır.

kotlin
// build.gradle.kts — APK yığılmasının əsas konfiqurasiyası
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 və ölçünün azaldılması

ProGuard və ya R8 kodu gizlədir, istifadə olunmayan sinifləri və metodları silərək APK ölçüsünü azaldır. Gizlətmə olmadan APK siniflərin tam adlarını ehtiva edir ki, bu da dekompilyasiyanı asanlaşdırır. R8 həmçinin DEX səviyyəsində bayt-kod optimallaşdırması həyata keçirir.

APK imzası: v1, v2, v3 və v4 sxemləri

Rəqəmsal imza APK-nın məcburi elementidir. Android imzasız paketləri quraşdırmır. İmza tətbiqin nəşrdən sonra dəyişdirilmədiyini təmin edir və paketin kimə məxsus olduğunu müəyyən edir.

İmza sxemlərinin təkamülü

v1 (JAR signing) — arxivdəki hər faylın imzalanmasına əsaslanan orijinal sxem. Zəiflik: META-INF-dən faylları aşkarlanmadan silmək olar. v2 (APK Signature Scheme v2) Android 7.0-da meydana çıxdı — bütün arxiv imzalanır ki, bu da dəyişikliyin qarşısını alır. v3 açar rotasiyasını dəstəkləyir, v4 isə artımlı quraşdırmanı dəstəkləyir.

Google Play, 2021-ci ilin avqustundan etibarən bütün yeni tətbiqlər üçün v2 və ya daha yüksək versiyanı tələb edir. Müxtəlif Android versiyaları ilə maksimum uyğunluq üçün APK-nın hər üç sxemlə imzalanması tövsiyə olunur.

Gradle vasitəsilə imzalama prosesi

build.gradle-də keystore, parol və alias göstərilir. Şəxsi açar şifrələnmiş anbarda saxlanılır. Google Play-də nəşr üçün App Signing istifadə olunur — Google şəxsi açarı saxlayır, tərtibatçı isə imzalanmış APK-nı yükləyir.

APK-nın Android cihazına quraşdırılması

APK-nın quraşdırılması sistem paket meneceri PackageManager vasitəsilə həyata keçirilir. Proses imzanın yoxlanılması, manifestin təhlili, faylların kopyalanması və dex2oat vasitəsilə DEX optimallaşdırmasını əhatə edir.

ADB vasitəsilə quraşdırma

ADB (Android Debug Bridge) aləti tərtibatçı kompüterindən birbaşa APK quraşdırmağa imkan verir. `adb install app.apk` əmri faylı cihaza kopyalayır və quraşdırmanı işə salır. -r bayrağı tətbiqi məlumatları saxlamaqla yenidən quraşdırır, -d bayrağı daha aşağı versionCode olan versiyanın quraşdırılmasına icazə verir.

Quraşdırma təhlükəsizliyi

Android 8.0-dan başlayaraq sistem hər bir tətbiq üçün ayrıca naməlum mənbələrdən quraşdırmanın təsdiqini tələb edir. Android 14 nəzarəti gücləndirdi: üçüncü tərəf mağazaları vasitəsilə APK quraşdırması yalnız parametrlərdə açıq icazədən sonra mümkündür. Google Play Protect quraşdırma zamanı hər bir APK-nı zərərli kod üçün skan edir.

APK Expansion Files (OBB)

150 MB-dan böyük tətbiqlər üçün Google Play Expansion Files — hər biri 2 GB-a qədər əlavə OBB paketlərini dəstəkləyir. OBB faylları APK-ya daxil deyil, quraşdırmadan sonra ayrıca endirilir. Format iki növü dəstəkləyir: main (əsas resurslar) və patch (yeniləmələr).

kotlin
// PackageManager vasitəsilə APK versiyasının yoxlanılması
val pm = packageManager
val info = pm.getPackageInfo(
    "com.example.app",
    PackageManager.GET_ACTIVITIES
)
Log.d("APK", "Versiya: ${info.versionName}")

dex2oat optimallaşdırması

ART (Android Runtime) olan cihazlarda quraşdırmadan sonra dex2oat vasitəsilə DEX-in yerli koda tərtibi işə salınır. Proses bir neçə saniyə çəkə bilər və quraşdırılmış tətbiqin ölçüsünü artırır, lakin onun işə salınmasını sürətləndirir.

APK vs AAB: hansı formatı seçmək

AAB (Android App Bundle) — Google-ın Google Play-də nəşr üçün APK-ya alternativ olaraq təqdim etdiyi format. Fərq əsaslıdır: AAB birbaşa quraşdırılmır, əksinə Google Play-in optimallaşdırılmış APK yaratdığı konteyner rolunu oynayır.

ParametrAPKAAB
Yükləmə ölçüsüTam arxivYalnız lazım komponentlər
Birbaşa quraşdırmaBəliXeyr (APK yaradılması)
Paylanmaİstənilən kanalGoogle Play
Versiya nəzarətiManifestdə versiyaDynamic Delivery
NəşrGoogle Play + üçüncü tərəflərGoogle Play

Google Play 2021-ci ilin avqustundan etibarən yeni tətbiqlər üçün AAB tələb edir. Lakin APK Google Play xaricində paylanma üçün əsas format olaraq qalır — veb-saytlar, korporativ mağazalar və sınaq vasitəsilə.

APK ilə tipik problemlər və həlli

Tərtibatçılar APK-nın yığılması və quraşdırılması zamanı müntəzəm olaraq problemlərlə qarşılaşırlar. Onların əksəriyyəti versiya uyğunsuzluğu, imza və ya arxiv strukturu ilə bağlıdır.

INSTALL_FAILED_UPDATE_INCOMPATIBLE

Xəta eyni paket adı, lakin fərqli imza ilə APK quraşdırmağa cəhd edərkən yaranır. Android dəyişdirilmiş sertifikatlı tətbiqin yenidən quraşdırılmasına icazə vermir. Həll yolu — quraşdırmadan əvvəl köhnə versiyanı silin.

Metod limitinin aşılması (65K)

Layihə 65536 metod limitini keçərsə, yığılma dex xətası ilə uğursuz olur. Həll yolu — build.gradle-də multidex-i qoşmaq və ya istifadə olunmayan kitabxanaları silərək asılılıqları optimallaşdırmaq.

APK çox böyük ölçüdədir

Google Play APK ölçüsünü 150 MB ilə məhdudlaşdırır. Daha böyük tətbiqlər üçün APK Expansion Files (OBB) istifadə olunur. R8, WebP şəkilləri və Android App Bundle vasitəsilə ölçünün azaldılması tövsiyə olunur. Hər əlavə meqabayt quraşdırma konversiyasına mənfi təsir göstərir: Google-a görə, hər 10 MB konversiyanı 1% azaldır.

APK dekompilyasiyası və təhlükəsizlik

APK-nı JADX, APKTool və ya Bytecode Viewer alətləri ilə dekompilyasiya etmək olar. JADX DEX-dən orijinal Java kodunu bərpa edir ki, bu da gizlətmə olmadan tətbiqləri tam oxunaqlı edir. Kodu qorumaq üçün ProGuard/R8 istifadə olunur, sinifləri, metodları və sahələri qısa oxunmaz adlarla dəyişdirir və debug məlumatlarını silir.

APK-nın alətlərlə təhlili

APK məzmununun təhlili üçün Android Studio Profiler, apkanalyzer (Android SDK-dan CLI aləti) və üçüncü tərəf yardımçı proqramları istifadə olunur. apkanalyzer APK-nın hər bir komponentinin ölçüsünü göstərir: DEX, resurslar, yerli kitabxanalar və imza. Təhlil hansı asılılıqların ən çox yer tutduğunu müəyyən etməyə və onların dəyişdirilməsi və ya silinməsi barədə qərar qəbul etməyə kömək edir.

Tez-tez verilən suallar

APK-nı adi ZIP arxivi kimi açmaq olarmı?

Bəli, istənilən arxivləşdirici (7-Zip, WinRAR) APK-nı ZIP kimi açır. Məzmunu görmək olar, lakin kodun dekompilyasiyası üçün xüsusi alətlər — JADX və ya apktool tələb olunur.

APK XAPK-dan nə ilə fərqlənir?

XAPK — bəzi üçüncü tərəf mağazaları tərəfindən istifadə olunan qeyri-rəsmi formatdır. APK-nı əlavə OBB faylları ilə bir arxivdə birləşdirir. Google Play və Android-in rəsmi sənədləri XAPK-dan istifadə etmir.

Sınaq üçün APK-nı imzalamaq lazımdırmı?

Android Studio cihazda işə salarkən debug.keystore ilə debug qurğusunu avtomatik imzalayır. Test versiyasını komandaya yaymaq üçün buraxılış açarı ilə imza və ya App Signing istifadəsi tələb olunur.

APK ölçüsünü necə azaltmaq olar?

Gizlətmə və minimallaşdırma üçün R8-dən istifadə edin, şəkilləri WebP-yə çevirin, Lint vasitəsilə istifadə olunmayan resursları silin, böyük layihələr üçün isə Dynamic Delivery ilə Android App Bundle-a keçin.

APK-nı nəşrdən sonra dəyişdirmək olarmı?

Xeyr — imzadan sonra APK-da hər hansı dəyişiklik rəqəmsal imzanı pozur. Yeniləmə üçün artırılmış versionCode ilə yeni versiyanı yığmaq və imzalamaq lazımdır.

Nəticə

  • APK — məcburi rəqəmsal imza ilə ZIP əsaslı Android quraşdırma paketi formatı.
  • Struktur manifest, DEX bayt-kodu, resurslar, yerli kitabxanalar və sertifikatları əhatə edir.
  • Yığılma d8 aləti ilə DEX-ə tərtiblə Gradle vasitəsilə həyata keçirilir.
  • İmza məcburidir: v1, v2, v3 və v4 sxemləri müxtəlif qoruma səviyyəsi təmin edir.
  • Quraşdırma Google Play, ADB, brauzer və korporativ mağazalar vasitəsilə mümkündür.
  • AAB Google Play-də APK-nı əvəz edir, lakin APK xarici paylanma üçün standart olaraq qalır.
  • Məhdudiyyətlər: Google Play üçün 150 MB limiti, multidex olmadan 64K metod, məcburi imza.

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun