Mempercepat clean build dengan cache build

Cache build menyimpan output tertentu yang dihasilkan oleh plugin Android untuk Gradle saat mem-build project Anda (seperti AAR yang tidak dikemas dan dependensi jarak jauh yang belum melalui pre-dexing). Clean build Anda jauh lebih cepat saat menggunakan cache karena sistem build dapat menggunakan kembali file yang tersimpan dalam cache pada pembuatan berikutnya, daripada membuatnya kembali. Cache build juga dapat digunakan pada server continuous integration dan ketika menjalankan beberapa proses build pada satu mesin lokal.

Project yang menggunakan plugin Android 2.3.0 dan yang lebih baru mengaktifkan cache build secara default (kecuali jika Anda secara eksplisit menonaktifkan cache build). Namun, plugin akan menonaktifkan penyimpanan cache untuk dependensi jarak jauh yang belum melalui pre-dexing jika Anda menetapkan salah satu properti build berikut ini ke setelan yang berbeda dari yang ditunjukkan di bawah ini. (Ini adalah setelan default untuk setiap properti, jadi jika Anda sama sekali tidak mendeklarasikannya, penyimpanan cache untuk dependensi jarak jauh yang belum melalui pre-dexing akan tetap diaktifkan.)

android {
  defaultConfig {
    // If you do enable multidex, you must also set
    // minSdkVersion to 21 or higher.
    multiDexEnabled false
  }
  buildTypes {
    <build-type> {
      minifyEnabled false
    }
  }
  dexOptions {
    preDexLibraries true
  }
  ...
}
...

Catatan: Jika project Anda menggunakan plugin Android versi 2.2.2 atau 2.2.3, versi eksperimental fitur cache build akan digunakan. Anda harus memperbarui project agar menggunakan plugin Android versi terbaru.

Jika ingin mempelajari cara lain untuk mempercepat build, baca Mengoptimalkan kecepatan build.

Mengubah lokasi cache build

Secara default, plugin Android menyimpan cache Anda di <user-home>/.android/build-cache/. Jika Anda mengonfigurasi salah satu variabel jalur berikut (dicantumkan dalam prioritas menurun), Android Studio akan menggunakan <path-variable>/.android/build-cache/:

  • ANDROID_SDK_HOME
  • user.home
  • HOME

Plugin Android menggunakan satu lokasi default untuk cache build sehingga dapat berbagi file cache dengan semua project yang menggunakan plugin Android 2.3.0 atau yang lebih baru (dan tidak menonaktifkan cache build). Misalnya, setelah salah satu project Anda mem-build dan menyimpan dependensi yang belum melalui pre-dexing dalam cache, project lain yang juga menggunakan dependensi tersebut dapat melewati pre-dexing lagi dengan menyalinnya dari cache build bersama.

Jika Anda lebih memilih project yang membuat cache sendiri (dan tidak menggunakannya bersama project lain), Anda dapat menentukan lokasi unik untuk cache di file gradle.properties project seperti berikut:

// You can specify either an absolute path or a path relative
// to the gradle.properties file.
android.buildCacheDir=<path-to-directory>

Setelah selesai mengedit file, klik Sync Project untuk membuat direktori cache build yang baru.

Catatan: Sebaiknya jangan tetapkan direktori untuk cache build yang berada di dalam direktori <project-root>/build/ atau <project-root>/<module-root>/build/ karena Gradle akan menghapus direktori ini setiap kali menjalankan tugas clean.

Jika Anda hanya ingin berbagi cache dengan project tertentu lainnya, tentukan direktori cache build yang sama di file gradle.properties project tersebut.

Mengosongkan build cache

Sama dengan tugas clean plugin Android yang mengosongkan direktori build/ project, Anda dapat menjalankan tugas cleanBuildCache untuk mengosongkan cache build project. Jika suatu project menetapkan direktori non-default untuk cache build-nya, menjalankan tugas dari project tersebut hanya akan mengosongkan cache tersebut (bukan cache bersama di lokasi default). Untuk menjalankan tugas, pilih View > Tool Windows > Terminal dari panel menu dan gunakan salah satu perintah berikut:

  • Di Windows:
    gradlew cleanBuildCache
  • Di Mac atau Linux:
    ./gradlew cleanBuildCache

Catatan: Tugas cleanBuildCache tidak tersedia jika Anda menonaktifkan cache build.

Menonaktifkan cache build

Karena cache build akan mempercepat clean build, sebaiknya jangan menonaktifkan fitur ini. Jika tetap ingin menonaktifkan cache build untuk project Anda, tambahkan kode berikut ke file gradle.properties project:

// To re-enable the build cache, either delete the following
// line or set the property to 'true'.
android.enableBuildCache=false

Setelah selesai mengedit file, klik Sync Project untuk menerapkan perubahan.

Catatan: Setelah Anda menonaktifkan cache build, plugin Android akan mengabaikan properti android.buildCacheDir, dan tugas cleanBuildCache tidak lagi tersedia. Selain itu, menonaktifkan cache build juga tidak otomatis mengosongkan direktori cache. Hal ini memungkinkan Anda menyimpan file cache jika Anda memutuskan untuk mengaktifkan kembali cache build.