Mempercepat Build Time Aplikasi Android pada IDE Android Studio 2.1

Bismillah,

Pada kesempatan kali ini saya akan mencoba menulis bagaimana cara mempercepat build time aplikasi Android pada IDE Android Studio 2.1.

Pengembangan aplikasi Android semenjak berpindah menggunakan gradle, semakin besar proyek yang dikembangkan semakin lama pula waktu yang dibutuhkan untuk melakukan proses build aplikasi. Beberapa hal yang disarankan untuk mempercepat performa build time yang dipaparkan di video ini sudah dilakukan, seperti:

  • mengaktifkan daemon Gradle
  • memperbesar ukuran memory yang digunakan oleh Gradle
  • menggunakan build tools versi paling mutakhir

Screen Shot 2016-05-31 at 09.14.33
Performance Checklist

Untuk penggunaan SSD guna mempercepat build time, dikarenakan harganya yang masih relatif mahal dan kapasitasnya yang tidak banyak saat ini saya masih belum punya alokasi dana untuk membelinya. Walaupun saya tahu ini bisa mempercepat waktu build time secara sangat signifikan jika dibandingkan dengan menggunakan HDD biasa.

Hal lain yang bisa dilakukan untuk mempercepat build time adalah menggunakan minSdkVersion versi 21 untuk build flavordevelopment‘ Anda. Pada berkasbuild.gradle anda, cukup ubah menjadi seperti contoh berikut:

Development {
    minSdkVersion 21
    targetSdkVersion 23
    applicationId 'com.example.dev'
}

IDE Android Studio versi 2.1 membawa sebuah fitur baru yang cukup menarik. Fitur tersebut bernama Dex in Process. Dengan fitur ini, beberapa proses DEX akan berjalan di dalam VM yang sama dan juga berbagi dengan Gradle sehingga fitur ini memerlukan alokasi memori ekstra sebelum dapat digunakan [sumber]. Penjelasan singkat mengenai fitur ini dapat Anda saksikan pada video ini.

Fitur Dex in Process ini sebenarnya sudah ada pada Android Studio versi 2.0, tetapi tidak diaktifkan secara otomatis (menurut video ini). Untuk mengaktifkannya kita harus menambahkan baris berikut pada berkasbuild.gradle:

android {
    dexOptions {
        dexInProcess true
    }
}

Beberapa berkas yang perlu disesuaikan adalah gradle.propertiesglobal dan juga build.gradle proyek Anda. Pada berkas gradle.propertiessesuaikan konfigurasi ukuran heap JVM maksimum Anda, minimal ukuran heap maksimum agar dapat menjalankan fitur Dex in Process ini adalah 2GB. Pada contoh berikut saya mengatur ukuran heap maksimum menjadi 4GB.

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
org.gradle.jvmargs=-Xmx4096m

Sedangkan pada berkas build.gradle proyek Anda dapat disesuaikan sebagaimana contoh berikut:

android {
    dexOptions {
        maxProcessCount 2
        javaMaxHeapSize "2g"
    }
}

Pada contoh di atas, kita mengalokasikan heap JVM maksimum sebesar 4 GB pada berkas gradle.properties sehingga secara teori kita dapat memiliki 2 proses Dex yang masing-masing memiliki ukuran heap maksimum sebesar 2 GB atau 4 proses Dex dengan ukuran heap maksimum masing-masing 1GB. Konfigurasi yang optimal seperti apa perlu kita lakukan eksperimen bergantung pada proyek yang kita kerjakan.

1-kjTJ5WZzupoOfvvPEzhrFw
Gambar ilustrasi diambil dari laman ini

Pada gambar ilustrasi di atas, dapat dilihat dengan menggunakan fitur Dex in Processini dapat mempersingkat build time proyek aplikasi Wikipedia hingga sepertiga dari waktu awal yang dibutuhkan. Tentu hal ini sangat mempersingkat waktu tunggu yang kita perlukan. Tapi perlu diingat, hasil yang didapat akan berbeda bergantung pada perangkat komputer yang digunakan dan proyek kita masing-masing.

Selamat bereksperimen dan semoga tulisan ini bermanfaat.

Terinspirasi dan bersumber utama dari artikel “Faster Android Studio Builds with Dex In Process” di Medium.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s