Mempelajari dan Mengenal Gradle di Android Studio
3/20/2019
Edit
komputerdia.com - Apa itu Gradle ? Secara fungsionalnya gradle adalah sebuah build tools yang disematkan pada apliaksi Android Studio, dimana fungsi utamanya adalah sebagai media untuk mencompile atau menjalankan project aplikasi yang sedang kalian kerjakan , dan mengacu berdasarkan konfigurasi yang berada di bagian Gradle Script.
Secara sederhana Gradle merupakan open source build system dimana Gradle berfungsi untuk mengubah file yang ada di src dan res (xml dan java) menjadi sebuah APK. Sebenarnya kita dapat membuat aplikasi android hanya menggunakan code editor (notepad++,notepad, sublime) tanpa menggunakan menggunakan Android Studio, namun dalam hal ini, kita harus tetap menggunakan SDK Android. Kemudian dengan menggunakan gradle file2 tersebut di diubah dan di-compress menjadi apk
Dari beberapa pengertian diatas dapat ditarik kesimpulan bahwa Secara default Gradle merupakan build tools yang dipakai pada Android Studio, untuk melakukan proses Compile-menjalankan project aplikasi yang sedang kalian kembangkan.
Jika pada aplikasi Eclipse build tools yang dipakai adalah Ant, Maka dengan demikian Gradle merupakan pengembangan yang di berdiri dari Ant, Maven, dan repositori lvy.
Secara sederhana Gradle merupakan open source build system dimana Gradle berfungsi untuk mengubah file yang ada di src dan res (xml dan java) menjadi sebuah APK. Sebenarnya kita dapat membuat aplikasi android hanya menggunakan code editor (notepad++,notepad, sublime) tanpa menggunakan menggunakan Android Studio, namun dalam hal ini, kita harus tetap menggunakan SDK Android. Kemudian dengan menggunakan gradle file2 tersebut di diubah dan di-compress menjadi apk
Dari beberapa pengertian diatas dapat ditarik kesimpulan bahwa Secara default Gradle merupakan build tools yang dipakai pada Android Studio, untuk melakukan proses Compile-menjalankan project aplikasi yang sedang kalian kembangkan.
Jika pada aplikasi Eclipse build tools yang dipakai adalah Ant, Maka dengan demikian Gradle merupakan pengembangan yang di berdiri dari Ant, Maven, dan repositori lvy.
Sementara itu, Android Plugin untuk Gradle bisa berjalan secara bebas di Android Studio tanpa harus mempunyai syarat tertentu. Hal ini dapat diartikan, bahwa kalian bisa melakukan build Aplikasi Android di dalam Android Studio, serta kalian juga dapat membuild lewat Command Line dengan memanfaatkan fitur Gradle.
Baca Juga Artikel Lainnya :
- Mengenal dan Mempelajari Komponen Arsitektur Platform Android .
- Mengenal dan Memahani Struktur Folder Di Android Studio .
- Mengenal Fungsi Fragment Pada Aplikasi Android .
Penjelasan Gradle Di Android Studio
Ketika kalian sedang mengerjakan project Aplikasi Android, tentunya kalian akan melihat suatu bagian disebelah kiri layar monitor kalian dan terletak pada struktur project Android, bagian itulah yang disebut dengan Gradle Script , untuk lebih memahaminya silahkan kalian perhatikan ilustrasi gambar dibawah ini .
Perlu kalian garis bawahi, bahwa banyak sekali masalah yang akan dihadapi oleh para developer ketika mereka tengah mengerjakan project androidnya, dan hal ini banyak disebabkan karena konfigruasi yang dilakukan pada file di Gradle banyak yang tidak berhasil.
Dalam artikel kali ini saya akan mencoba membahas, fungsi-fungsi dari setiap konfigurasi file , serta Gradle Script yang terdapat pada android studuio. Mungkin didalam pembahasan ini, saya tidak terlalu menjelaskan secara terperinci, namun saya telah merangkum bagian-bagian inti dari permasalahan tersebut.
Fungsi - Fungsi Yang Terdapat Pada Gradle Android Studio
1. Build.gradle (Module :app)
Seperti yang bisa kalian lihat pada file dibawah ini, bahwasannya file tersebut merupakan konfigurasi file app level , yang disematkan pada code apply dengan tujuan untuk menambahkan plugin Android ke dalam build sistem. Pada block code dependencies terdapat tiga baris code. diantaranya adalah :
- File tree dependency , yang mana baris pertama ini mempunyai maksud bahwa semua file dengan extension .jar , di dalam lib folder akan dilakukan proses compile.
- Pada baris kedua menunjukan bahwa Gradle menambahkan appcompat-v7 jar versi 24.2.1 dari Android Support Library.
- Baris ketiga menunjukan bahwa Gradle mendownload Junit versi 4.12, yang mana fungsi code testCompile tersebut akan menyediakan class-class di dalam app/src/androidTest/Java , dan juga src/test/java pada struktur project, yang akan kita gunakan untuk unit test.
apply plugin: 'com.android.application' android { compileSdkVersion 24 buildToolsVersion "24.0.2" defaultConfig { applicationId "example.android.practiceset2" minSdkVersion 17 targetSdkVersion 24 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:24.2.1' testCompile 'junit:junit:4.12' }
2. Proses Building
Proses Building ini merupakan suatu proses yang diklaim memang melibatkan banyak tools, kemudian pada proses tersebut juga akan mengconvert sebuah project ke dalam Android Package (APK). Untuk memperjelas masalah tersebut, silahkan kalian perhatikan ilustrasi gambar dibawah ini
3. Build.gradle (Project :Nama Project)
Dibawah ini adalah contoh dari file Build.gradle, silahkan kalian simak terlebih dahulu
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } task clean(type: Delete) { delete rootProject.buildDir }
Pada conroh file diatas, dapat kita jelaskan beberapa kesimpulan seperti dibawah ini :
- Seperti yang bisa kalian lihat , di atas merupakan contoh konfigurasi file top level, yang mana kalian bisa membuat atau menambahkan pilihan konfigurasi secara umum untuk project turunanan / modules. Code block buildscript , pada dasarnya difungsikan untuk mendownload sebuah plugin yang di perlukan oleh Gradle. Contoh kecilnya seperti pada kode diatas, dimana fungsi kode tersebut adalah sebagai jalur yang digunakan untuk mengunduh repository jcenter.
- Secara umum Gradle tidak memasukan fungsi-fungsi Android. Namun untuk mengatasi masalah ini, Google telah menyediakan Android Plugin untuk Gradle ,yang telah terbukti bisa membantu kalian untuk mempermudah melakukan konfigurasi pada file project Android.
- Untuk code allprojects, secara basicnya berfungsi untuk menunjukan bahwa project top level atau project turunan yang di konfigurasi secara bawaan, akan melakukan proses pen-downloadan plugin atau library Java yang berada pada repository jcenter.
- Untuk code task clean, jika melihat fungsinya, kode ini hampir sama dengan tipe delete, hal ini mengindikasikan bahwa direktori build akan dihapus pada project root atau utama kalian. Karena secara default, hal ini berada pada build di top level.
4. Settings.gradle (include ':app')
Apa keuntungan yang bisa kita dapatkan dari fitur gradle? Salah satu keuntungan yang bisa kita dapatkan dari Gradle adalah kita bisa membuat sebuah multi-project. Dengan demikian, sudah bisa kita tebak, bahwa code include menunjukan suatu project yang berada di dalam suatu aplikasi, pada bagian settings.gradle ini, kalian bisa menambahkan suatu library project turunan , dan bisa kalian manfaatkan untuk mendukung project utama dari Aplikasi yang sedang kalian kerjakan.
Tips Sederhana Gradle
Gradle dan Android plugin pada dasarnya telah menyediakan cara yang fleksibel (mudah) untuk mengompilasi, membangun, dan mengemas aplikasi atau library Android kalian. Di artikel kali ini saya telah mengumpulkan beberapa tips dan konfigurasi yang penting untuk membantu kalian dalam memaksimalkan hasil dari masing-masing build.A. Mengubah konfigurasi set sumber default
Dalam kasus ini, kalian dapat menggunakan blok sourceSets di
file build.gradle tingkat-modul untuk mengubah lokasi Gradle mengumpulkan file
untuk setiap komponen dari set sumber.
android {
...
sourceSets {
// Encapsulates configurations for the main source set.
main {
// Changes the directory for Java sources. The default directory is
// 'src/main/java'.
java.srcDirs = ['other/java']
// When you list multiple directories, Gradle uses all of them to collect
// sources. You should avoid specifying a directory which is a parent to one
// or more other directories you specify.
res.srcDirs = ['other/res1', 'other/res2']
// For each source set, you can specify only one Android manifest.
// The following points Gradle to a different manifest for this source set.
manifest.srcFile 'other/AndroidManifest.xml'
...
}
// Create additional blocks to configure other source sets.
androidTest {
// If all the files for a source set are located under a single root
// directory, you can specify that directory using the setRoot property.
// When gathering sources for the source set, Gradle looks only in locations
// relative to the root directory you specify. For example, after applying
// the configuration below for the androidTest source set, Gradle looks for
// Java sources only in the src/tests/java/ directory.
setRoot 'src/tests'
...
}
}
}
...
B. Mengkonfigurasi properti lingkup-project
Perlu diperhatikan, bahwa untuk project yang mencakup beberapa modul, Saya sarankan agar kalian menentukan properti di tingkat project dan membagikannya ke semua modul. Dalam hal ini kalian bisa melakukan dengan menambahkan properti tambahan ke blok ext di file build.gradle tingkat atas.
buildscript {...} allprojects {...} // This block encapsulates custom properties and makes them available to all // modules in the project. ext { // The following are only a few examples of the types of properties you can define. compileSdkVersion = 28 buildToolsVersion = "29.0.0" // You can also use this to specify versions for dependencies. Having consistent // versions between modules can avoid behavior conflicts. supportLibVersion = "28.0.0" ... } ...
Sementara itu, untuk melakukan akses properti-properti dari modul dalam project yang sama, kalian bisa menggunakan sintaks berikut pada file build.gradletingkat modul
android { // Use the following syntax to access properties you defined at the project level: // rootProject.ext.property_name compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion rootProject.ext.buildToolsVersion ... } ... dependencies { compile "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}" ... }