Android Studio adalah IDE resmi berbasis IntelliJ IDEA yang dipakai hampir oleh semua developer Android. IDE ini menggabungkan editor Kotlin, debugger, profiler, dan integrasi rapat dengan Gradle, SDK Manager, serta AVD (Android Virtual Device). Pada chapter ini kita akan memetakan bagian-bagian penting yang sering dijumpai sehari-hari: SDK Manager untuk mengelola paket SDK, AVD untuk menjalankan emulator, build variants untuk memilih tipe build, dan alat baris perintah seperti ADB dan logcat. Memahami alur ini membuat kita cepat produktif di lingkungan kerja.
SDK dan SDK Manager #
SDK Android bukan satu file, melainkan kumpulan paket yang dapat dipasang sesuai kebutuhan. SDK Manager adalah dialog di Android Studio (dan perintah sdkmanager di terminal) yang mengelola paket-paket tersebut. Setidaknya ada empat kategori paket yang relevan: platform-tools (ADB, fastboot), platforms (Android API level), build-tools (aapt, d8, zipalign), dan emulator. Tanpa platform-tools, kita tidak dapat mem-flash APK ke peranti fisik. Tanpa platforms, kompilasi tidak dapat menemukan API android.app.Activity.
Berikut cuplikan yang mensimulasikan logika SDK Manager sebagai struktur data Kotlin murni:
// android_studio_sdk.kt
// Mendemonstrasikan konfigurasi SDK dan AVD sebagai struktur data ringkas.
// Tidak memakai SDK Android asli — hanya memetakan bagian penting yang
// biasanya ditemui pada dialog SDK Manager / Device Manager di Android Studio.
data class SdkPaket(val nama: String, val ukuranMB: Int, val apiLevel: Int)
data class AvdDevice(val nama: String, val profil: String, val api: Int, val ramMB: Int)
class SdkManager(val paketTerpasang: MutableList<SdkPaket>) {
fun daftarPaket(): List<SdkPaket> = paketTerpasang.toList()
fun pasang(paket: SdkPaket) {
require(paket.apiLevel >= 21) { "API minimum yang didukung adalah 21 (Lollipop)" }
paketTerpasang.add(paket)
}
fun totalUkuranMB(): Int = paketTerpasang.sumOf { it.ukuranMB }
}
class AvdManager(private val sdk: SdkManager) {
private val peranti = mutableListOf<AvdDevice>()
fun buatAvd(nama: String, profil: String, api: Int, ramMB: Int): AvdDevice {
val terpasang = sdk.daftarPaket().any { it.apiLevel == api }
require(terpasang) { "API $api belum dipasang di SDK Manager" }
val device = AvdDevice(nama, profil, api, ramMB)
peranti.add(device)
return device
}
fun daftarAvd(): List<AvdDevice> = peranti.toList()
}
fun main() {
val sdk = SdkManager(mutableListOf(
SdkPaket("platform-tools", 12, 33),
SdkPaket("platforms;android-33", 75, 33)
))
sdk.pasang(SdkPaket("platforms;android-34", 78, 34))
println("Paket terpasang (${sdk.daftarPaket().size}):")
sdk.daftarPaket().forEach { println(" ${it.nama} — ${it.ukuranMB} MB (API ${it.apiLevel})") }
println("Total ukuran: ${sdk.totalUkuranMB()} MB")
val avd = AvdManager(sdk)
avd.buatAvd("Pixel-7-API34", "pixel_7", 34, 2048)
avd.buatAvd("Pixel-7-API33", "pixel_7", 33, 2048)
println("Daftar AVD (${avd.daftarAvd().size}):")
avd.daftarAvd().forEach { println(" ${it.nama} — ${it.profil} API ${it.api} RAM ${it.ramMB} MB") }
}Output yang Dihasilkan:
Paket terpasang (3):
platform-tools — 12 MB (API 33)
platforms;android-33 — 75 MB (API 33)
platforms;android-34 — 78 MB (API 34)
Total ukuran: 165 MB
Daftar AVD (2):
Pixel-7-API34 — pixel_7 API 34 RAM 2048 MB
Pixel-7-API33 — pixel_7 API 33 RAM 2048 MBFungsi require memvalidasi prasyarat minimal API 21 sebelum paket diterima. Validasi semacam ini mencerminkan kebijakan minimum yang dipakai Google untuk Android Studio modern.
AVD sebagai Pengganti Peranti Fisik #
AVD (Android Virtual Device) adalah konfigurasi peranti virtual yang dijalankan oleh emulator Android. Setiap AVD merekam tiga hal penting: profil peranti (Pixel 7, tablet, Wear OS), API level (harus cocok dengan SDK yang sudah terpasang), dan sumber daya (RAM, penyimpanan). AVD memungkinkan kita menguji aplikasi pada berbagai ukuran layar dan API tanpa membeli banyak peranti fisik.
| Komponen AVD | Pengaturan umum |
|---|---|
| Profil peranti | Pixel 7, Nexus 10, Pixel Watch |
| API level | 30, 33, 34 (harus ada di SDK Manager) |
| RAM | 1536–4096 MB (lebih kecil = start lebih cepat) |
| Penyimpanan | 4–8 GB(default) |
Pada cuplikan di atas, AvdManager memvalidasi bahwa API level yang diminta telah dipasang di SdkManager sebelum membuat AVD baru. Mekanisme serupa terjadi pada dialog Device Manager di Android Studio: jika kita mencoba membuat AVD API 35 sementara platforms;android-35 belum dipasang, dialog akan menolak dan menyarankan pemasangan paket.
Build Variants dan Tipe Build #
Setiap modul aplikasi memiliki tipe build (debug, release) dan flavor produk (free, pro). Kombinasi keduanya menghasilkan build variant seperti freeDebug atau proRelease. Build variants memungkinkan satu basis kode menghasilkan beberapa APK dengan konfigurasi berbeda. Tipe debug memasang applicationIdSuffix ".debug" agar dapat dipasang berdampingan dengan versi rilis, sedangkan release menjalani R8/ProGuard untuk mengecilkan dan mengaburkan bytecode.
android {
buildTypes {
getByName("release") {
isMinifyEnabled = true
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
}
flavorDimensions += "tier"
productFlavors {
create("free") { dimension = "tier" }
create("pro") { dimension = "tier" }
}
}Cuplikan di atas bukan kode yang dijalankan, melainkan ilustrasi konfigurasi Gradle Kotlin DSL yang umum dijumpai pada file app/build.gradle.kts.
Alat Baris Perintah: ADB dan Logcat #
ADB (Android Debug Bridge) adalah jembatan baris perintah antara komputer dan peranti Android. Kita memakai ADB untuk memasang APK, mengirim file, melihat log, dan memantau proses. Beberapa perintah paling sering dipakai:
# Memasang APK ke peranti terhubung
adb install -r app/build/outputs/apk/debug/app-debug.apk
# Melihat log realtime dengan filter tag
adb logcat -s MyActivity:I AndroidRuntime:E
# Masuk ke shell peranti
adb shellLogcat adalah mekanisme logging sistem Android yang menampung log dari semua aplikasi. Setiap baris log memiliki level (V, D, I, W, E), tag (biasanya nama class), dan pesan. Pemfilteran lewat adb logcat -s MyTag:I membantu kita memisahkan log aplikasi dari log sistem yang ramai. Di Android Studio, panel Logcat menyediakan tampilan grafis untuk hal yang sama.
Referensi Lanjutan #
- Publish your app — dokumentasi Android Studio untuk menyiapkan SDK, build variant, dan publikasi aplikasi
- Android developers — Kotlin — rujukan Android + Kotlin sebagai pintu masuk pengaturan lingkungan Android Studio
Selanjutnya #
Setelah IDE dan SDK terpasang, langkah berikutnya adalah membongkar struktur proyek Android: file build.gradle.kts, AndroidManifest.xml, dan source set main, test, androidTest. Kita akan membedahnya pada chapter Android Project Structure.