Bagaimana menentukan versi SDK minimum dan target?
Bagaimana struktur direktori proyek Android disusun?
Apa fungsi Gradle dalam proses build Android?
Bagaimana mengelola dependensi eksternal dalam proyek?
Apa perbedaan compileSdkVersion dan targetSdkVersion?
Reference Points
Android Development with Kotlin (Slides 41-49, 79-86)
Android Development with Kotlin (Slide 22)
Android Development with Kotlin (Slide 47)
Android Development with Kotlin (Slide 81-86)
Struktur Proyek Android
Proyek Android di Android Studio memiliki struktur direktori yang terorganisir. Folder utama berisi modul aplikasi (app), file konfigurasi Gradle (build.gradle), dan skrip wrapper Gradle (gradlew). Di dalam modul app, terdapat direktori src yang memisahkan kode sumber (main/java), sumber daya (res), dan file manifes (AndroidManifest.xml).
Relasi versi harus memenuhi: minSdkVersion ≤ targetSdkVersion ≤ compileSdkVersion. Versi SDK yang lebih tinggi memungkinkan penggunaan fitur terbaru tetapi mengurangi kompatibilitas dengan perangkat lama.
Sistem Build dengan Gradle
Gradle adalah sistem otomasi build yang mengelola:
Kompilasi kode dan sumber daya
Pengemasan APK/AAB
Manajemen dependensi
Tugas pengujian
Ada dua jenis file build.gradle:
Level Proyek: Mengkonfigurasi repositori dan plugin
Gradle secara otomatis mendownload dependensi dari repositori yang dikonfigurasi (Google’s Maven, Maven Central).
Proses Build Android
Proses build mengubah kode sumber menjadi APK melalui tahapan:
Kompilasi sumber daya (XML, gambar) ke format biner
Kompilasi kode Kotlin/Java ke bytecode DEX
Penggabungan aset dan kode ke APK mentah
Penandatanganan dengan kunci digital
Optimasi dengan alat seperti R8/ProGuard
Perintah Gradle umum:
./gradlew assembleDebug: Membuat APK debug
./gradlew installDebug: Menginstal APK ke perangkat
./gradlew clean: Menghapus output build sebelumnya
Summary
Konfigurasi proyek Android melibatkan struktur direktori spesifik dengan file manifes, kode sumber, dan sumber daya terpisah. Gradle berfungsi sebagai tulang punggung proses build dengan mengelola dependensi, versi SDK (minSdkVersion, targetSdkVersion, compileSdkVersion), dan tugas kompilasi. Manajemen dependensi dilakukan melalui deklarasi dalam build.gradle yang terhubung ke repositori eksternal. Proses build melalui tahapan kompilasi sumber daya, konversi kode ke DEX, pengemasan APK, dan penandatanganan untuk menghasilkan aplikasi yang dapat dijalankan di perangkat Android.
Additional Information
Optimasi Proses Build
Untuk mempercepat build pada proyek besar, gunakan:
Build Cache: Mengaktifkan org.gradle.caching=true di gradle.properties
Konfigurasi On-Demand: Hanya mengkonfigurasi modul yang diperlukan
Gradle Daemon: Proses latar belakang yang mengurangi waktu inisialisasi
Parallel Execution: org.gradle.parallel=true untuk tugas independen
Multidex dan Limit Metode
Aplikasi dengan >65.536 metode memerlukan konfigurasi multidex: