APK: apa itu, struktur file dan prinsip kerja

Penulis: IT Sectr Diterbitkan: 2026-04-15 Waktu membaca: 8 mnt

APK (Android Package Kit) adalah format file arsip yang digunakan untuk mendistribusikan dan menginstal aplikasi di Android. Setiap aplikasi yang diunduh pengguna dari Google Play atau diinstal secara manual adalah file APK. Menurut Android Open Source Project, 2026, format ini didasarkan pada standar ZIP dan berisi kode yang dikompilasi, sumber daya, manifes, dan tanda tangan digital.

Poin utama

  • APK — format paket instalasi Android berbasis ZIP dengan kode byte DEX dan sumber daya.
  • Struktur mencakup manifes, file DEX, sumber daya, pustaka kode asli, dan sertifikat.
  • Tanda tangan — elemen wajib: APK yang tidak ditandatangani tidak dapat diinstal di perangkat.
  • Pembuatan dilakukan melalui Gradle: dari Java/Kotlin hingga kode byte DEX terkompresi.
  • Toko pihak ketiga dan instalasi APK langsung tetap populer di luar Google Play.

Apa itu APK dan untuk apa digunakan

APK (Android Package Kit) adalah format arsip di mana aplikasi Android dikemas untuk didistribusikan. Secara teknis, APK adalah arsip ZIP dengan struktur tertentu yang berisi semua komponen yang diperlukan untuk menjalankan aplikasi di perangkat.

Sejarah format

Format APK muncul bersamaan dengan versi pertama Android pada tahun 2008. Sebagai dasar diambil standar JAR (Java Archive), yang pada gilirannya didasarkan pada ZIP. Warisan ini memastikan kompatibilitas dengan alat arsip yang ada — pengarsip apa pun dapat membuka APK sebagai ZIP biasa.

Bidang penerapan

Google Play — saluran utama distribusi APK, tetapi format ini juga digunakan dalam skenario lain: instalasi langsung melalui browser (sideloading), toko aplikasi perusahaan, pengujian di perangkat pengembang, dan instalasi di emulator. Menurut Statista, sekitar 15% instalasi aplikasi Android pada tahun 2025 terjadi di luar Google Play.

Struktur internal file APK

Struktur internal APK diatur secara ketat: setiap aplikasi harus berisi file dan direktori tertentu. Pelanggaran struktur menyebabkan kesalahan instalasi.

File/direktoriTujuan
AndroidManifest.xmlManifes aplikasi: izin, komponen, versi SDK
classes.dexKode byte DEX yang dikompilasi (bisa beberapa file)
resources.arscSumber daya yang dikompilasi: string, gaya, tata letak
res/Sumber daya yang tidak dikompilasi: gambar, font, XML
lib/Pustaka asli (.so) untuk berbagai arsitektur CPU
META-INF/Metadata: sertifikat, daftar file, hash

AndroidManifest.xml

Manifes — file konfigurasi pusat aplikasi. Dalam bentuk biner yang dikompilasi (bukan XML yang dapat dibaca) berisi nama paket, versi, daftar aktivitas, layanan, izin, dan persyaratan SDK. Tanpa manifes, sistem tidak tahu cara menjalankan aplikasi.

File DEX

Kode sumber dalam Java atau Kotlin dikompilasi menjadi file DEX (Dalvik Executable). File utama bernama classes.dex. Jika kode byte melebihi batas 64K metode, dibuat classes2.dex, classes3.dex dan seterusnya — mekanisme multidex.

Pustaka asli

Direktori lib/ berisi pustaka C/C++ yang dikompilasi untuk berbagai arsitektur: armeabi-v7a, arm64-v8a, x86, x86_64. Setiap pustaka memiliki ekstensi .so (Shared Object). Aplikasi modern biasanya hanya menyediakan arm64-v8a.

Proses pembuatan APK melalui Gradle

Pembuatan APK adalah proses multi-tahap yang diotomatisasi oleh sistem build Gradle dan Android Gradle Plugin. Setiap tahap mengubah file sumber menjadi komponen arsip akhir.

Tahapan pembuatan

Kode sumber dikompilasi menjadi kode byte Java (.class), kemudian dikonversi ke DEX melalui alat d8 (sebelumnya dx). Sumber daya dikompilasi ke format biner melalui AAPT2. Semua komponen dikemas dalam arsip ZIP dan ditandatangani dengan tanda tangan digital.

kotlin
// build.gradle.kts — konfigurasi dasar pembuatan 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 dan pengurangan ukuran

ProGuard atau R8 mengaburkan kode, menghapus kelas dan metode yang tidak digunakan, mengurangi ukuran APK. Tanpa pengaburan, APK berisi nama kelas lengkap, yang memudahkan dekompilasi. R8 juga melakukan optimalisasi kode byte di tingkat DEX.

Penandatanganan APK: skema v1, v2, v3 dan v4

Tanda tangan digital adalah elemen wajib APK. Android tidak menginstal paket yang tidak ditandatangani. Tanda tangan menjamin bahwa aplikasi tidak dimodifikasi setelah publikasi dan menentukan siapa pemilik paket.

Evolusi skema penandatanganan

v1 (JAR signing) — skema asli berdasarkan penandatanganan setiap file dalam arsip. Kerentanan: file dapat dihapus dari META-INF tanpa terdeteksi. v2 (APK Signature Scheme v2) muncul di Android 7.0 — seluruh arsip ditandatangani, yang mencegah modifikasi. v3 mendukung rotasi kunci, dan v4 mendukung instalasi inkremental.

Google Play memerlukan v2 atau lebih tinggi untuk semua aplikasi baru sejak Agustus 2021. Disarankan untuk menandatangani APK dengan ketiga skema untuk kompatibilitas maksimal dengan berbagai versi Android.

Proses penandatanganan melalui Gradle

Dalam build.gradle ditentukan keystore, kata sandi, dan alias. Kunci pribadi disimpan dalam penyimpanan terenkripsi. Untuk publikasi di Google Play digunakan App Signing — Google menyimpan kunci pribadi, dan pengembang mengunggah APK yang ditandatangani.

Instalasi APK di perangkat Android

Instalasi APK dilakukan melalui manajer paket sistem PackageManager. Prosesnya mencakup verifikasi tanda tangan, penguraian manifes, penyalinan file, dan optimalisasi DEX melalui dex2oat.

Instalasi melalui ADB

Alat ADB (Android Debug Bridge) memungkinkan instalasi APK langsung dari komputer pengembang. Perintah `adb install app.apk` menyalin file ke perangkat dan memulai instalasi. Bendera -r menginstal ulang aplikasi dengan mempertahankan data, bendera -d mengizinkan instalasi versi dengan versionCode lebih rendah.

Keamanan instalasi

Mulai Android 8.0, sistem memerlukan konfirmasi instalasi dari sumber tidak dikenal untuk setiap aplikasi secara terpisah. Android 14 memperkuat kontrol: instalasi APK melalui toko pihak ketiga hanya dimungkinkan setelah izin eksplisit di pengaturan. Google Play Protect memindai setiap APK saat instalasi untuk kode berbahaya.

APK Expansion Files (OBB)

Untuk aplikasi yang lebih besar dari 150 MB, Google Play mendukung Expansion Files — paket OBB tambahan hingga 2 GB masing-masing. File OBB tidak termasuk dalam APK, tetapi diunduh secara terpisah setelah instalasi. Format ini mendukung dua jenis: main (sumber daya dasar) dan patch (pembaruan).

kotlin
// Memeriksa versi APK melalui PackageManager
val pm = packageManager
val info = pm.getPackageInfo(
    "com.example.app",
    PackageManager.GET_ACTIVITIES
)
Log.d("APK", "Versi: ${info.versionName}")

Optimalisasi dex2oat

Pada perangkat dengan ART (Android Runtime) setelah instalasi, kompilasi DEX ke kode asli dimulai melalui dex2oat. Proses ini dapat memakan waktu beberapa detik dan meningkatkan ukuran aplikasi yang diinstal, tetapi mempercepat peluncurannya.

APK vs AAB: format mana yang dipilih

AAB (Android App Bundle) — format yang dipromosikan Google sebagai alternatif APK untuk publikasi di Google Play. Perbedaannya mendasar: AAB tidak diinstal secara langsung, tetapi berfungsi sebagai wadah dari mana Google Play menghasilkan APK yang dioptimalkan.

ParameterAPKAAB
Ukuran unduhanArsip lengkapHanya komponen yang diperlukan
Instalasi langsungYaTidak (menghasilkan APK)
DistribusiSaluran apa punGoogle Play
Kontrol versiVersi di manifesDynamic Delivery
PublikasiGoogle Play + pihak ketigaGoogle Play

Google Play memerlukan AAB sejak Agustus 2021 untuk aplikasi baru. Namun, APK tetap menjadi format utama untuk distribusi di luar Google Play — melalui situs web, toko perusahaan, dan pengujian.

Masalah umum dengan APK dan solusinya

Pengembang secara teratur menghadapi masalah saat membangun dan menginstal APK. Sebagian besar terkait dengan ketidakcocokan versi, tanda tangan, atau struktur arsip.

INSTALL_FAILED_UPDATE_INCOMPATIBLE

Kesalahan terjadi saat mencoba menginstal APK dengan nama paket yang sama tetapi tanda tangan berbeda. Android tidak mengizinkan instalasi ulang aplikasi dengan sertifikat yang diubah. Solusi — hapus versi lama sebelum instalasi.

Melebihi batas metode (65K)

Jika proyek melebihi batas 65536 metode, pembuatan gagal dengan kesalahan dex. Solusi — aktifkan multidex di build.gradle atau optimalkan dependensi dengan menghapus pustaka yang tidak digunakan.

APK berukuran terlalu besar

Google Play membatasi ukuran APK hingga 150 MB. Untuk aplikasi yang lebih besar digunakan APK Expansion Files (OBB). Disarankan untuk mengurangi ukuran melalui R8, gambar WebP, dan Android App Bundle. Setiap megabita tambahan berdampak negatif pada konversi instalasi: menurut Google, setiap 10 MB mengurangi konversi sebesar 1%.

Dekompilasi APK dan keamanan

APK dapat didekompilasi menggunakan alat JADX, APKTool, atau Bytecode Viewer. JADX memulihkan kode Java asli dari DEX, yang membuat aplikasi tanpa pengaburan sepenuhnya dapat dibaca. Untuk melindungi kode digunakan ProGuard/R8, yang mengganti nama kelas, metode, dan bidang menjadi nama pendek yang tidak terbaca serta menghapus informasi debug.

Analisis APK melalui alat

Untuk analisis konten APK digunakan Android Studio Profiler, apkanalyzer (alat CLI dari Android SDK), dan utilitas pihak ketiga. apkanalyzer menunjukkan ukuran setiap komponen APK: DEX, sumber daya, pustaka asli, dan tanda tangan. Analisis membantu mengidentifikasi dependensi mana yang memakan ruang terbanyak dan mengambil keputusan tentang penggantian atau penghapusannya.

Pertanyaan yang sering diajukan

Bisakah APK dibuka sebagai arsip ZIP biasa?

Ya, pengarsip apa pun (7-Zip, WinRAR) membuka APK sebagai ZIP. Konten dapat dilihat, tetapi untuk dekompilasi kode diperlukan alat khusus — JADX atau apktool.

Apa perbedaan APK dengan XAPK?

XAPK — format tidak resmi yang digunakan oleh beberapa toko pihak ketiga. Ini menggabungkan APK dengan file OBB tambahan menjadi satu arsip. Google Play dan dokumentasi resmi Android tidak menggunakan XAPK.

Apakah perlu menandatangani APK untuk pengujian?

Android Studio secara otomatis menandatangani build debug dengan debug.keystore saat dijalankan di perangkat. Untuk mendistribusikan versi uji ke tim, diperlukan tanda tangan dengan kunci rilis atau penggunaan App Signing.

Bagaimana cara mengurangi ukuran APK?

Gunakan R8 untuk pengaburan dan minimalisasi, konversi gambar ke WebP, hapus sumber daya yang tidak digunakan melalui Lint, dan untuk proyek besar beralihlah ke Android App Bundle dengan Dynamic Delivery.

Bisakah APK diubah setelah publikasi?

Tidak — setiap perubahan APK setelah penandatanganan merusak tanda tangan digital. Untuk pembaruan, harus dibuat dan ditandatangani versi baru dengan versionCode yang ditingkatkan.

Kesimpulan

  • APK — format paket instalasi Android berbasis ZIP dengan tanda tangan digital wajib.
  • Struktur mencakup manifes, kode byte DEX, sumber daya, pustaka asli, dan sertifikat.
  • Pembuatan dilakukan melalui Gradle dengan kompilasi ke DEX melalui alat d8.
  • Tanda tangan wajib: skema v1, v2, v3 dan v4 memberikan tingkat perlindungan yang berbeda.
  • Instalasi dimungkinkan melalui Google Play, ADB, browser, dan toko perusahaan.
  • AAB menggantikan APK di Google Play, tetapi APK tetap menjadi standar untuk distribusi eksternal.
  • Batasan: batas 150 MB untuk Google Play, 64K metode tanpa multidex, tanda tangan wajib.

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga