minSdkVersion: apa itu, cara memilih versi minimum Android

Penulis: IT Sectr Diterbitkan: 2026-02-08 Waktu membaca: 11 mnt

minSdkVersion — tingkat API Android minimum di mana aplikasi dapat diinstal dan dijalankan. Parameter ini ditentukan dalam build.gradle di blok defaultConfig dan menetapkan batas bawah kompatibilitas: jika tingkat API perangkat di bawah nilai minSdk, sistem memblokir instalasi, dan Google Play tidak menampilkan aplikasi ke perangkat tersebut. Menurut Android Developers, pemilihan minSdk yang tepat sangat penting untuk keseimbangan antara jangkauan audiens dan ketersediaan API modern.

Poin Utama

  • minSdkVersion — tingkat API minimum untuk instalasi aplikasi, ditetapkan di build.gradle
  • Google Play menyembunyikan aplikasi di perangkat dengan tingkat API di bawah minSdkVersion
  • Jangkauan minSdk = 26 (Android 8.0) mencakup ~85% perangkat, minSdk = 21 — ~97%
  • AndroidX dan pustaka Jetpack memungkinkan penggunaan API baru dengan minSdk rendah
  • lint memperingatkan tentang pemanggilan API di atas minSdk — gunakan @RequiresApi atau SDK_INT

Apa itu minSdkVersion di Android?

minSdkVersion — parameter bilangan bulat di build.gradle yang menetapkan tingkat API Android minimum untuk instalasi aplikasi. Jika tingkat API perangkat di bawah nilai yang ditentukan, PackageManager memblokir instalasi, dan Google Play Store menyembunyikan aplikasi dari hasil pencarian untuk perangkat tersebut. minSdkVersion ditulis ke AndroidManifest.xml pada tahap build melalui tag <uses-sdk android:minSdkVersion> dan diperiksa pada setiap instalasi.

Nilai minSdkVersion adalah kompromi antara jangkauan audiens dan akses ke API baru. Semakin rendah minSdk, semakin banyak perangkat yang dapat menginstal aplikasi, terutama di negara berkembang di mana smartphone Android lama populer. Semakin tinggi minSdk, semakin sedikit kode kompatibilitas mundur yang diperlukan dan semakin banyak API modern yang tersedia tanpa pemeriksaan runtime. Android Jetpack dan pustaka AndroidX menyediakan backport dari banyak API baru ke versi Android lama, memungkinkan pemilihan minSdk yang lebih rendah tanpa kehilangan fungsionalitas.

minSdkVersion mempengaruhi semua tahap pengembangan: analisis statis (lint menggunakan minSdk untuk peringatan), kompatibilitas dependensi (pustaka mungkin memerlukan minSdk sendiri), pengujian (perlu diuji pada perangkat dengan minSdk) dan Google Play Console (jangkauan audiens dihitung berdasarkan minSdk). Mengubah minSdkVersion adalah salah satu keputusan paling bertanggung jawab dalam konfigurasi proyek, karena mempengaruhi kode, pengujian, dan basis pengguna.

Di mana minSdkVersion ditentukan

Build.gradle.kts (Kotlin DSL) — standar modern dalam proyek Android. Parameter minSdk ditetapkan di blok defaultConfig pada tingkat modul. Nilai dapat ditimpa untuk berbagai jenis build dan varian produk, memungkinkan pengujian pada API yang lebih rendah tanpa mengubah nilai utama.

kotlin
// build.gradle.kts — konfigurasi dasar minSdk
android {
    namespace = "com.example.myapp"
    compileSdk = 36

    defaultConfig {
        applicationId = "com.example.myapp"
        minSdk = 26      // Android 8.0 Oreo
        targetSdk = 36
        versionCode = 1
        versionName = "1.0.0"
    }

    // Menimpa minSdk untuk berbagai flavor
    flavorDimensions += "tier"
    productFlavors {
        create("free") {
            minSdk = 26
        }
        create("premium") {
            minSdk = 26
        }
    }
}

Dalam contoh minSdk = 26 sesuai dengan Android 8.0 Oreo. Ini adalah nilai populer di tahun 2026: menurut Android Studio Distribution Dashboard hanya memotong ~15% perangkat. compileSdk = 36 memberikan akses ke semua API Android 16, dan targetSdk = 36 mengaktifkan perubahan perilaku versi terbaru. Untuk build debug, minSdk dapat diturunkan untuk pengujian pada emulator lama.

Cara memilih minSdkVersion: faktor dan strategi

Pemilihan minSdkVersion — keputusan strategis berdasarkan analisis audiens target, persyaratan API, dan ekosistem pustaka. Tidak ada satu nilai yang benar untuk semua proyek. Pada tahun 2026, Android Studio merekomendasikan minSdk = 26 (Android 8.0) sebagai tingkat dasar untuk proyek baru, tetapi untuk aplikasi B2B atau solusi perusahaan, nilai yang lebih rendah atau lebih tinggi dapat diterima.

Faktor pemilihan minSdkVersion

Faktor pertama — Distribution Dashboard. Android Studio menyediakan statistik perangkat aktif berdasarkan tingkat API berdasarkan data Google Play, diperbarui setiap bulan. minSdkVersion harus mencakup setidaknya 90-95% perangkat aktif di pasar target. Untuk aplikasi internasional dengan audiens di Afrika dan Asia Tenggara, minSdk harus diturunkan menjadi 21 (Android 5.0) karena tingginya proporsi perangkat lama.

Faktor kedua — persyaratan dependensi. Setiap pustaka memiliki minSdkVersion sendiri yang ditentukan dalam manifesnya. Jika pustaka memerlukan minSdk 29 dan aplikasi — minSdk 26, build akan gagal dengan kesalahan manifest merger. Pustaka Google Play Services modern memiliki minSdk 21, Firebase — minSdk 21, sebagian besar pustaka Jetpack — minSdk 21 atau 26, Compose BOM — minSdk 21. Untuk Compose ambang batas minimum — API 21.

Faktor ketiga — API yang diperlukan. Jika fungsionalitas kunci aplikasi memerlukan API yang hanya tersedia dari tingkat tertentu (misalnya PhotoPicker — API 34, Predicted Navigation — API 35), ini dapat membenarkan peningkatan minSdk. Namun lebih sering kombinasi backport AndroidX (Activity Result API, NotificationCompat) dan pemeriksaan runtime digunakan untuk mempertahankan minSdk yang rendah.

minSdkVersi AndroidJangkauan (~2026)Rekomendasi
215.0 Lollipop97%Jangkauan maksimal, banyak kode fallback
236.0 Marshmallow95%Runtime Permissions tersedia secara native
268.0 Oreo85%Tingkat dasar yang direkomendasikan
2910 Q72%Scoped Storage native, lebih sedikit pengujian
3112 Snow Cone55%Aplikasi niche, API modern

Strategi pemilihan langkah demi langkah

Langkah 1: buka Android Studio, File → New Project dan lihat minSdk yang direkomendasikan di wizard. Langkah 2: periksa Distribution Dashboard di Android Studio (View → Tool Windows → App Inspection → Distribution Dashboard). Langkah 3: analisis dependensi proyek — lakukan build dan perbaiki konflik manifest merger. Langkah 4: evaluasi API tingkat X mana yang benar-benar digunakan tanpa backport. Langkah 5: tetapkan minSdk sebagai nilai minimum yang mencakup 90%+ audiens target dan kompatibel dengan semua dependensi.

Jangkauan perangkat: distribusi tingkat API (2026)

Distribusi perangkat berdasarkan tingkat API — indikator dinamis yang berubah setiap kuartal. Menurut Android Studio Distribution Dashboard per Juni 2026, sekitar 85% perangkat Android aktif berjalan pada API 26 (Android 8.0) dan lebih tinggi, 72% — pada API 29 (Android 10) dan lebih tinggi, 55% — pada API 31 (Android 12) dan lebih tinggi. Pasar China memiliki statistiknya sendiri karena tidak adanya Google Play Services di banyak perangkat Huawei.

Perangkat GMS (Google Mobile Services) diperbarui lebih cepat: pangsa API 31+ pada perangkat tersebut mencapai 68% berkat persyaratan wajib Google Play kepada produsen. Perangkat non-GMS (Huawei, Honor, beberapa merek China) memiliki distribusi yang lebih lama: pangsa API 31+ pada perangkat tersebut sekitar 35%. Jika aplikasi ditujukan untuk pasar internasional, andalkan statistik global. Jika untuk pasar China — pertimbangkan segmen non-GMS.

Tingkat APIVersi AndroidJangkauan globalJangkauan non-GMS
21-255.0-6.0~2%~5%
26-288.0-9.0~13%~20%
29-3010-11~15%~25%
31-3312-13~20%~25%
34-3514-15~30%~15%
3616~20%~10%

Kesimpulan: untuk aplikasi internasional minSdk 26 mencakup 85% perangkat dengan biaya kompatibilitas mundur minimal. Untuk aplikasi dengan audiens di negara berkembang, minSdk 21 (jangkauan 97%) dapat dibenarkan, tetapi akan membutuhkan lebih banyak kode untuk bekerja dengan API usang. Untuk aplikasi Enterprise dengan armada perangkat yang terkontrol, Anda dapat menetapkan minSdk 31 dan sepenuhnya menghilangkan kode fallback.

Kompatibilitas mundur: AndroidX, lint dan @RequiresApi

Kompatibilitas mundur — kesulitan utama dengan minSdkVersion yang rendah. AndroidX (sebelumnya Support Library) menyediakan backport API modern ke versi Android lama: AppCompatActivity untuk Material Design, FragmentManager, Loader, NotificationCompat, PreferenceFragmentCompat dan puluhan komponen lainnya. Menggunakan padanan AndroidX daripada API native — langkah pertama menuju kompatibilitas.

lint (penganalisis statis Android Studio) memindai kode untuk pemanggilan API di atas minSdkVersion. Jika metode ditandai dengan @RequiresApi dengan tingkat API di atas minSdk dan dipanggil tanpa pemeriksaan, lint menyoroti kesalahan. Untuk menekan peringatan, gunakan anotasi @SuppressLint("NewApi") pada metode atau @RequiresApi(Build.VERSION_CODES.TIRAMISU) pada seluruh fungsi. Pemeriksaan runtime melalui Build.VERSION.SDK_INT — mekanisme utama untuk memanggil API baru secara aman pada perangkat lama.

kotlin
// Contoh kompatibilitas mundur: PhotoPicker (API 34+) dan fallback
import android.os.Build
import android.os.Build.VERSION
import android.os.Build.VERSION_CODES
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity

class ImagePickerActivity : AppCompatActivity() {

    // Activity Result API (AndroidX) — berfungsi di semua tingkat API
    private val pickImageLauncher = registerForActivityResult(
        ActivityResultContracts.GetContent()
    ) { uri ->
        uri?.let { displayImage(it) }
    }

    fun pickImage() {
        // PhotoPicker hanya tersedia dari API 34
        if (VERSION.SDK_INT >= VERSION_CODES.UPSIDE_DOWN_CAKE) {
            // Kami menggunakan PhotoPicker (API 34+)
            val intent = android.provider.MediaStore
                .ACTION_PICK_IMAGES
            startActivityForResult(intent, 100)
        } else {
            // Fallback: GetContent (berfungsi di semua versi)
            pickImageLauncher.launch("image/*")
        }
    }

    @RequiresApi(VERSION_CODES.UPSIDE_DOWN_CAKE)
    fun usePhotoPickerOnly() {
        // Metode ini tidak dapat dipanggil pada API < 34
        val intent = android.provider.MediaStore
            .ACTION_PICK_IMAGES
        startActivityForResult(intent, 100)
    }
}

Kelas ImagePickerActivity menunjukkan tiga tingkat kompatibilitas mundur. Activity Result API dari AndroidX berfungsi di semua tingkat API, jadi untuk pemilihan gambar dasar minSdk tidak penting. PhotoPicker (ACTION_PICK_IMAGES) hanya tersedia dari API 34 dan dipanggil di bawah pemeriksaan SDK_INT dengan fallback ke GetContent. Metode usePhotoPickerOnly ditandai dengan @RequiresApi — lint tidak akan mengizinkan pemanggilannya tanpa pemeriksaan. AppCompat dari AndroidX secara otomatis menyesuaikan tema, fragmen, dan animasi dengan versi OS.

minSdkVersion di pustaka dan modul

Pustaka (AAR, JAR) juga memiliki minSdkVersion yang ditentukan dalam manifesnya. Saat menghubungkan pustaka, Gradle memeriksa kompatibilitas: jika minSdk pustaka lebih tinggi dari minSdk aplikasi, build gagal dengan kesalahan. Untuk pustaka publik, disarankan untuk menentukan minSdk serendah mungkin (21 dalam banyak kasus) agar tidak membatasi konsumen. Jika pustaka memerlukan API 29+, ia kehilangan ~28% pengguna potensial.

Proyek multi-modul dapat memiliki minSdkVersion yang berbeda untuk modul yang berbeda. Misalnya, modul :core:network dapat memiliki minSdk 26, dan modul :feature:camera — minSdk 29 (karena CameraX dengan persyaratan tertentu). Google Play mensyaratkan bahwa minSdk modul utama :app lebih rendah atau sama dengan minSdk semua modul dependen. Dalam praktiknya, semua modul dari satu aplikasi biasanya memiliki minSdk yang sama untuk menyederhanakan pemeliharaan.

kotlin
// build.gradle.kts — modul pustaka dengan minSdk rendah
plugins {
    id("com.android.library")
    id("org.jetbrains.kotlin.android")
}

android {
    namespace = "com.example.mylibrary"
    compileSdk = 36

    defaultConfig {
        minSdk = 21  // Minimum untuk jangkauan maksimal
        targetSdk = 36
    }
}

dependencies {
    // AndroidX Core — minSdk 21, menambahkan backport
    implementation("androidx.core:core-ktx:1.15.0")
    implementation("androidx.appcompat:appcompat:1.7.0")
}

Modul pustaka dengan minSdk = 21 kompatibel dengan 97% perangkat dan tidak membatasi konsumen. Jika pustaka menggunakan API di atas 21, pengembang harus menambahkan pemeriksaan runtime atau menentukan @RequiresApi pada metode yang sesuai. AndroidX Core KTX (minSdk 21) menyediakan backport untuk Context, Bundle, Locale dan kelas sistem lainnya, memungkinkan pustaka mempertahankan minSdk yang rendah.

Kesalahan umum saat memilih minSdkVersion

Kesalahan dalam memilih minSdk dapat mengakibatkan ribuan instalasi atau berminggu-minggu pengembangan tambahan. Kesalahan umum pertama — menyalin minSdk dari template proyek tanpa analisis Distribution Dashboard. Banyak pengembang meninggalkan minSdk = 21 dari template Android Studio, padahal untuk audiens mereka minSdk 26 sudah cukup dan akan mengurangi jumlah pemeriksaan SDK_INT dalam kode.

Kesalahan kedua — minSdk terlalu tinggi tanpa mempertimbangkan pasar. Jika Anda menetapkan minSdk = 31 (Android 12) untuk aplikasi internasional, Anda kehilangan ~45% perangkat. Untuk startup atau aplikasi dengan audiens massal, ini adalah bencana. Selalu periksa Distribution Dashboard sebelum menaikkan minSdk dan gunakan pengujian A/B di Google Play Console jika Anda tidak yakin.

Kesalahan ketiga — mengabaikan minSdk dependensi. Saat menambahkan pustaka baru, periksa minSdk-nya di dokumentasi atau file POM. Firebase ML Kit memerlukan minSdk 21, beberapa pustaka kamera kustom memerlukan minSdk 29. Jika manifest merger gagal di produksi karena pustaka baru, perbaikan bisa memakan waktu berhari-hari.

kotlin
// Contoh: pemeriksaan kompatibilitas API saat runtime
fun checkFeatureAvailability(): Boolean {
    // Kesalahan umum — pemanggilan API tanpa pemeriksaan SDK_INT
    return when {
        VERSION.SDK_INT >= VERSION_CODES.UPSIDE_DOWN_CAKE -> {
            // API 34+ — kami menggunakan PhotoPicker
            true
        }
        VERSION.SDK_INT >= VERSION_CODES.Q -> {
            // API 29-33 — kami menggunakan MediaStore
            true
        }
        else -> {
            // API < 29 — gunakan ACTION_GET_CONTENT
            true
        }
    }
}

Arsitektur yang benar dari pemeriksaan tingkat API — when dengan rentang yang mencakup semua nilai yang mungkin dari minSdk hingga compileSdk. Aturan utama: setiap pemanggilan API tingkat X harus dilindungi dengan pemeriksaan VERSION.SDK_INT untuk semua perangkat dengan tingkat API dari minSdk hingga X. lint membantu mendeteksi pemanggilan yang tidak diperiksa, tetapi tidak dapat menjamin cakupan penuh untuk kode dinamis.

Pertanyaan yang Sering Diajukan

Apa itu minSdkVersion di Android?

minSdkVersion — tingkat API Android minimum di mana aplikasi dapat diinstal. Ditentukan dalam build.gradle di blok defaultConfig. Jika tingkat API perangkat di bawah minSdk, instalasi diblokir oleh sistem, dan Google Play tidak menampilkan aplikasi ke perangkat tersebut. minSdk mempengaruhi jangkauan audiens: minSdk = 26 mencakup ~85% perangkat, minSdk = 21 — ~97%.

Bagaimana cara memilih minSdkVersion yang tepat untuk proyek baru?

minSdkVersion dipilih berdasarkan statistik Distribution Dashboard di Android Studio dan audiens target. Untuk aplikasi massal disarankan minSdk 26 (Android 8.0) — mencakup ~85% perangkat. Untuk aplikasi B2B Anda dapat menetapkan minSdk 31 (Android 12). Penting untuk memeriksa bahwa semua pustaka yang digunakan mendukung minSdk yang dipilih. Untuk aplikasi Compose ambang batas minimum — API 21.

Bagaimana cara menggunakan API baru dengan minSdkVersion rendah?

API baru dapat digunakan dengan minSdkVersion rendah melalui AndroidX dengan backport (AppCompat, Core KTX, Activity Result API) atau melalui pemeriksaan runtime Build.VERSION.SDK_INT dengan kode fallback. Anotasi @RequiresApi menunjukkan kepada lint bahwa metode memerlukan tingkat API tertentu. AndroidX Material Components juga menyediakan kompatibilitas mundur untuk komponen UI. Tanpa pemeriksaan, aplikasi akan crash dengan NoSuchMethodError.

Apa yang terjadi jika pustaka memerlukan minSdk lebih tinggi dari milik saya?

Jika pustaka memiliki minSdkVersion lebih tinggi dari aplikasi, Android Studio menampilkan kesalahan build: Manifest merger failed. Solusinya — naikkan minSdk aplikasi ke tingkat pustaka, temukan alternatif dengan minSdk lebih rendah, atau gunakan pembungkus. Sebagian besar pustaka Jetpack memiliki minSdk 21 atau 26. Firebase ML Kit memerlukan minSdk 21, CameraX — minSdk 21.

Bisakah minSdkVersion diubah setelah publikasi?

Menaikkan minSdkVersion setelah publikasi dimungkinkan, tetapi dapat menyebabkan hilangnya pengguna pada perangkat lama. Disarankan untuk menaikkan minSdk tidak lebih dari 1-2 tingkat API sekaligus, menganalisis statistik perangkat aktif di Google Play Console. Menurunkan minSdkVersion secara teknis dimungkinkan, tetapi memerlukan pemeriksaan kode untuk pemanggilan API di atas minSdk baru dan mungkin memerlukan penulisan ulang bagian kode.

Ringkasan

  • minSdkVersion — tingkat API minimum untuk instalasi aplikasi, parameter kompatibilitas kritis di build.gradle
  • Rentang minSdk = 21 mencakup 97% perangkat, minSdk = 26 — 85%, minSdk = 31 — 55%
  • AndroidX dan pustaka Jetpack memastikan kompatibilitas mundur API baru pada versi lama
  • lint memperingatkan tentang pemanggilan API di atas minSdk — gunakan @RequiresApi dan pemeriksaan if SDK_INT
  • Google Play memeriksa minSdk saat instalasi dan memfilter aplikasi untuk perangkat yang tidak kompatibel
  • Pemilihan minSdk harus didasarkan pada Distribution Dashboard, persyaratan dependensi, dan pasar target
  • Peningkatan minSdk setelah publikasi menyebabkan hilangnya pengguna — analisis statistik sebelum perubahan

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