Mengonfigurasi modul aplikasi

Halaman ini menjelaskan setelan aplikasi yang berguna dalam file build.gradle.kts tingkat modul. Selain memberikan ringkasan properti penting yang ditetapkan dalam file build.gradle.kts, pelajari cara:

  • Mengubah ID aplikasi untuk konfigurasi build yang berbeda.
  • Menyesuaikan namespace dengan aman apa pun ID aplikasi-nya.

Menyetel ID aplikasi

Setiap aplikasi Android memiliki ID aplikasi unik yang terlihat seperti nama paket Java atau Kotlin, misalnya com.example.myapp. ID ini secara unik mengidentifikasi aplikasi Anda di perangkat dan Google Play Store.

ID aplikasi ditentukan oleh properti applicationId dalam file build.gradle.kts modul Anda, seperti yang ditampilkan di sini. Perbarui nilai applicationId dengan mengganti com.example.myapp dengan ID aplikasi Anda:

Kotlin

android {
    defaultConfig {
        applicationId = "com.example.myapp"
        minSdk = 15
        targetSdk = 24
        versionCode = 1
        versionName = "1.0"
    }
    ...
}

Groovy

android {
    defaultConfig {
        applicationId "com.example.myapp"
        minSdkVersion 15
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
    }
    ...
}

Meskipun ID aplikasi terlihat seperti nama paket Kotlin atau Java tradisional, aturan pemberian nama untuk ID aplikasi sedikit lebih ketat:

  • Nama harus memiliki setidaknya dua bagian (satu atau beberapa titik).
  • Setiap bagian harus diawali dengan huruf.
  • Semua karakter hanya boleh berupa alfanumerik atau garis bawah [a-zA-Z0-9_].

Saat Anda membuat project baru di Android Studio, applicationId akan otomatis diberi nama paket yang Anda pilih saat penyiapan. Secara teknis, Anda dapat mengalihkan kedua properti secara independen sejak saat itu, tetapi hal ini tidak direkomendasikan.

Sebaiknya Anda melakukan hal berikut saat menyetel ID aplikasi:

  • Pastikan ID aplikasi tetap sama dengan namespace. Perbedaan antara dua properti tersebut bisa sedikit membingungkan, tetapi jika nama keduanya tetap sama, Anda tidak perlu khawatir.
  • Jangan mengubah ID aplikasi setelah memublikasikan aplikasi. Jika Anda mengubahnya, Google Play Store akan memperlakukan upload berikutnya sebagai aplikasi baru.
  • Tentukan ID aplikasi secara eksplisit. Jika ID aplikasi tidak ditentukan secara eksplisit menggunakan properti applicationId, ID tersebut akan otomatis menggunakan nilai yang sama dengan namespace. Artinya, mengubah namespace akan mengubah ID aplikasi, yang biasanya bukan yang Anda inginkan.

Mengubah ID aplikasi untuk pengujian

Secara default, alat build akan menerapkan ID aplikasi ke APK uji instrumentasi Anda menggunakan ID aplikasi untuk varian build yang ditentukan yang ditambah dengan .test. Misalnya, APK pengujian untuk varian build com.example.myapp.free memiliki ID aplikasi com.example.myapp.free.test.

Meskipun tidak wajib, Anda dapat mengubah ID aplikasi dengan menentukan properti testApplicationId dalam blok defaultConfig atau productFlavor.

Menetapkan namespace

Setiap modul Android memiliki namespace, yang digunakan sebagai nama paket Kotlin atau Java untuk class R dan BuildConfig yang dihasilkannya.

Namespace Anda ditentukan oleh properti namespace dalam file build.gradle.kts modul, seperti yang ditunjukkan dalam cuplikan kode berikut. namespace awalnya ditetapkan ke nama paket yang Anda pilih saat membuat project.

Kotlin

android {
    namespace = "com.example.myapp"
    ...
}

Groovy

android {
    namespace "com.example.myapp"
    ...
}

Saat mem-build aplikasi menjadi paket aplikasi akhir (APK), alat build Android menggunakan namespace sebagai namespace untuk class R yang dihasilkan aplikasi Anda, yang digunakan untuk mengakses resource aplikasi. Misalnya, dalam file build sebelumnya, class R dibuat di com.example.myapp.R.

Nama yang Anda setel untuk properti namespace file build.gradle.kts akan selalu cocok dengan nama paket dasar project, tempat Anda menyimpan aktivitas dan kode aplikasi lainnya. Anda dapat memiliki sub-paket lainnya di project, tetapi file tersebut harus mengimpor class R menggunakan namespace dari properti namespace.

Untuk alur kerja yang lebih sederhana, namespace harus sama dengan ID aplikasi, seperti saat default-nya.

Mengubah namespace

Pada umumnya, Anda harus membiarkan namespace dan ID aplikasi tetap sama, seperti default-nya. Namun, Anda mungkin harus mengubah namespace pada waktu tertentu jika sedang menata ulang kode atau untuk menghindari konflik namespace.

Dalam kasus ini, ubah namespace dengan memperbarui properti namespace dalam file build.gradle.kts modul Anda, apa pun ID aplikasi-nya. Sebelum melakukannya, pastikan ID aplikasi Anda ditentukan secara eksplisit sehingga mengubah namespace tidak akan mengubah ID aplikasi. Untuk mengetahui informasi selengkapnya tentang pengaruh namespace terhadap ID aplikasi, lihat Menyetel ID aplikasi.

Jika nama namespace dan applicationId Gradle berbeda, alat build akan menyalin ID aplikasi ke file manifes akhir aplikasi Anda di akhir build. Jadi, jika Anda memeriksa file AndroidManifest.xml setelah proses build, atribut package akan ditetapkan ke ID aplikasi. Atribut package dari manifes gabungan adalah tempat Google Play Store dan platform Android benar-benar mencari untuk mengidentifikasi aplikasi Anda.

Mengubah namespace untuk pengujian

Namespace default untuk set sumber androidTest dan test adalah namespace utama, dengan .test ditambahkan di akhir. Misalnya, jika properti namespace dalam file build.gradle adalah com.example.myapp, namespace pengujian akan ditetapkan secara default ke com.example.myapp.test. Guna mengubah namespace untuk pengujian, gunakan properti testNamespace, seperti yang ditunjukkan dalam cuplikan kode berikut:

Kotlin

android {
    namespace = "com.example.myapp"
    testNamespace = "com.example.mytestapp"
    ...
}

Groovy

android {
    namespace "com.example.myapp"
    testNamespace "com.example.mytestapp"
    ...
}

Perhatian: Jangan setel testNamespace dan namespace ke nilai yang sama, atau konflik namespace akan terjadi.

Untuk mempelajari pengujian lebih lanjut, lihat Menguji aplikasi di Android.