Pertanyaan Apa itu Gradle di Android Studio?


Gradle agak membingungkan bagi saya dan juga untuk pengembang Android baru. Adakah yang bisa menjelaskan apa gradle di Android Studio dan apa tujuannya? Mengapa Gradle disertakan di Android Studio?


1031
2018-05-25 22:53


asal


Jawaban:


Jawaban singkat

Gradle adalah sistem build.

Jawaban panjang

Sebelum Android Studio Anda menggunakan Eclipse untuk tujuan pengembangan Anda, dan, kemungkinan besar, Anda tidak tahu cara membuat APK Android tanpa Eclipse.

Anda dapat melakukan ini pada baris perintah, tetapi Anda harus mempelajari apa yang setiap alat (dx, aapt) lakukan di SDK. Eclipse menyelamatkan kita semua dari perincian yang rendah tetapi penting dan mendasar ini dengan memberi kita sistem bangun mereka sendiri.

Sekarang, pernahkah Anda bertanya-tanya mengapa res folder ada di direktori yang sama dengan Anda src map?

Di sinilah sistem membangun memasuki gambar. Sistem build secara otomatis mengambil semua file sumber (.java atau .xml), lalu gunakan alat yang sesuai (misalnya, ambil java file kelas dan mengubahnya menjadi dex file), dan kelompok semuanya menjadi satu file terkompresi, APK tercinta kami.

Sistem ini membangun menggunakan beberapa konvensi: contoh salah satunya adalah untuk menentukan direktori yang berisi file sumber (di Eclipse itu \src folder) atau file sumber daya (di Eclipse itu \res map).

Sekarang, untuk mengotomatisasi semua tugas ini, harus ada skrip; Anda dapat menulis sistem build Anda sendiri menggunakan shell scripting di linux atau file batch sintaks di windows. Mengerti?

Gradle adalah yang lain membangun sistem yang mengambil fitur terbaik dari sistem bangun lain dan menggabungkannya menjadi satu. Ini ditingkatkan berdasarkan kekurangan mereka. Ini adalah sebuah Sistem build berbasis JVM, maksudnya adalah Anda dapat menulis skrip Anda sendiri di Java, yang digunakan oleh Android Studio.

Satu hal keren tentang gradle adalah bahwa itu adalah a sistem berbasis plugin. Ini berarti jika Anda memiliki bahasa pemrograman Anda sendiri dan Anda ingin mengotomatiskan tugas membangun beberapa paket (keluaran seperti JAR untuk Java) dari sumber maka Anda dapat menulis plugin lengkap di Java atau Groovy (atau Kotlin, lihat sini), dan mendistribusikannya ke seluruh dunia.

Mengapa Google menggunakannya?

Google melihat salah satu sistem membangun paling canggih di pasar dan menyadari bahwa Anda dapat menulis skrip sendiri dengan sedikit atau tanpa kurva pembelajaran, dan tanpa mempelajari Groovy atau bahasa baru lainnya. Jadi mereka menulis plugin Android untuk Gradle.

Anda pasti sudah melihatnya build.gradle file dalam proyek Anda. Di situlah Anda dapat menulis skrip untuk mengotomatiskan tugas Anda. Kode yang Anda lihat di file-file ini adalah kode Groovy. Jika Anda menulis System.out.println("Hello Gradle!"); maka itu akan dicetak di konsol Anda.

Apa yang bisa Anda lakukan dalam skrip build?

Contoh sederhananya adalah Anda harus menyalin beberapa file dari satu direktori ke direktori lain sebelum proses pembuatan yang sebenarnya terjadi. Skrip build Gradle dapat melakukan ini.


1246
2017-07-18 15:27



Ini adalah alat pembangunan baru yang ingin Google gunakan untuk Android. Ini digunakan karena itu menjadi lebih extensible, dan berguna daripada semut. Ini dimaksudkan untuk meningkatkan pengalaman pengembang.

Anda dapat melihat pembicaraan oleh Xavier Ducrohet dari Tim Pengembang Android Google I / O sini.

Ada juga pembicaraan lain di Android Studio oleh Xavier dan Tor Norbye, juga selama Google I / O di sini.


137
2018-05-26 03:48



1 - Gradle Informasi latar belakang.

2 - Gradle konsep.

3 - Fase Inisialisasi.

4 - Fase Inisialisasi (Lanjutan).

5 - Apa itu Gradle ?

6 - Fase Konfigurasi.

Gradle

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

Lihat ini LINK


65
2018-03-11 08:43



Gradle adalah sistem build yang sedang berjalan Android Studio.

Dalam bahasa lain misalnya:


34
2017-08-21 02:25



Berikut ini penjelasan mendetail tentang apa itu Gradle dan cara menggunakannya di studio android.

Menjelajahi File Gradle

  1. Setiap kali Anda membuat proyek di Android Studio, sistem build secara otomatis menghasilkan semua file build Gradle yang diperlukan.

Gradle Build Files

  1. Gradle membangun file menggunakan file Domain Specific Language or DSL untuk mendefinisikan custom membangun logika dan berinteraksi dengan khusus Android elemen dari plugin Android untuk Gradle.

  2. Proyek Android Studio terdiri dari 1 atau lebih modul, yang komponen yang dapat Anda buat, uji, dan debug secara independen. Setiap modul memiliki file build sendiri, jadi setiap proyek Android Studio berisi 2 jenis file build Gradle.

  3. File Build Tingkat Teratas: Di sinilah Anda akan menemukan opsi konfigurasi yang umum untuk semua modul yang membuat proyek Anda.

  4. File Build Tingkat Modul: Setiap modul memiliki file build Gradle sendiri yang berisi pengaturan build modul-spesifik. Anda akan menghabiskan sebagian besar waktu Anda mengedit file membangun tingkat modul (s) daripada Anda file build tingkat teratas proyek.

Untuk melihat file build.gradle ini, buka panel Project Android Studio (dengan memilih tab Project) dan perluas folder Gradle Scripts. Dua item pertama dalam folder Gradle Scripts adalah file build Gradle level proyek dan level modul

Gradle Build File Tingkat Atas

Setiap proyek Android Studio berisi file build Gradle tingkat atas tunggal. Ini build.gradle file adalah item pertama yang muncul di folder Gradle Scripts dan ditandai dengan jelas Project.

Biasanya, Anda tidak perlu melakukan perubahan pada file ini, tetapi   masih berguna untuk memahami isinya dan peran yang dimainkannya   dalam proyek Anda.

Modul-Level Gradle Membangun File

Selain file build Gradle tingkat proyek, setiap modul memiliki file build Gradle-nya sendiri. Di bawah ini adalah versi beranotasi dari file build Gradle tingkat modul dasar.

File Gradle Lainnya

Selain file build.gradle, folder Gradle Scripts Anda berisi beberapa file Gradle lainnya. Sebagian besar waktu Anda tidak perlu mengedit file-file ini secara manual karena mereka akan memperbarui secara otomatis ketika Anda membuat perubahan yang relevan untuk proyek Anda. Namun, itu ide yang baik untuk memahami peran file-file ini bermain dalam proyek Anda.

gradle-wrapper.properties (Versi Gradle)

File ini memungkinkan orang lain untuk membuat kode Anda, bahkan jika mereka tidak menginstal Gradle di komputer mereka. File ini memeriksa apakah versi Gradle yang benar sudah diinstal dan mengunduh versi yang diperlukan jika diperlukan.

settings.gradle

File ini merujuk semua modul yang membentuk proyek Anda.

gradle.properties (Properti Proyek)

File ini berisi informasi konfigurasi untuk keseluruhan proyek Anda.   Ini kosong secara default, tetapi Anda dapat menerapkan berbagai properti untuk   proyek Anda dengan menambahkannya ke file ini.

local.properties (Lokasi SDK)

File ini memberi tahu pengaya Android Gradle tempat ia dapat menemukan pemasangan SDK Android Anda.

catatan:  local.properties berisi informasi yang spesifik untuk pemasangan lokal Android SDK. Ini berarti Anda tidak seharusnya menyimpan file ini di bawah kendali sumber.

Bacaan yang disarankan - Tutorial Tutsplus 

Saya mendapat pemahaman yang jelas tentang gradle dari ini.


28
2017-12-12 08:04



Gradle adalah salah satu jenis membangun alat yang membangun kode sumber program. Jadi ini adalah bagian penting dari Android Studio, dan perlu dipasang sebelum mulai mengembangkan aplikasi Anda.

Kami tidak perlu menginstalnya secara terpisah, karena Android Studio melakukannya untuk kami, ketika kami membuat proyek pertama kami.


24
2018-01-19 09:14



DEFINISI::  Gradle dapat dijelaskan mekanisme bangunan terstruktur di mana ia menyediakan pengembang alat dan fleksibilitas untuk mengelola sumber daya dari sebuah proyek untuk membuat build yang smaller in size, targeting specific requirements untuk perangkat tertentu dari konfigurasi tertentu 


KONFIGURASI DASAR 

  1. minimumSdk 
  2. maximumSdk 
  3. targettedSdk 
  4. versionCode 
  5. versionName

PERPUSTAKAAN :: Kita dapat menambahkan pustaka android atau pustaka pihak ketiga lainnya sebagai tambahan sesuai dengan persyaratan yang merupakan tugas yang membosankan sebelumnya. Jika perpustakaan tidak cocok untuk proyek yang ada, Pengembang akan menunjukkan log di mana orang tersebut dapat menemukan solusi yang tepat untuk membuat perubahan pada proyek sehingga perpustakaan dapat ditambahkan. Itu hanya satu garis ketergantungan 


MENGHASILKAN VARIETAS BUILDS

Menggabungkan tipe build dengan build flavor untuk mendapatkan variasi varian build 

 ====================                         ====================
|     BuildTypes     |                       |   ProductFlavours  |
 --------------------  ====================== --------------------
|  Debug,Production  |      ||       ||      | Paid,Free,Demo,Mock|
 ====================       ||       ||       ==================== 
                            ||       ||
                            VV       VV
 =================================================================
|           DebugPaid, DebugFree, DebugDemo, DebugMock            |
|  ProductionPaid, ProductionFree, ProductionDemo, ProductionMock |
 =================================================================

MENGURANGKAN UKURAN

Gradle membantu dalam mengurangi ukuran build yang dihasilkan dengan menghapus sumber daya yang tidak digunakan juga hal-hal yang tidak terpakai dari pustaka terintegrasi


MENGELOLA IZIN 

Kita dapat Menentukan izin tertentu untuk membangun tertentu dengan menambahkan izin tertentu dalam skenario tertentu berdasarkan persyaratan


BANGUNAN UNTUK PERANGKAT TERTENTU

Kami dapat mengelola pembuatan pembangkit untuk perangkat tertentu yang mencakup kepadatan tertentu dan tingkat api tertentu. Ini membantu dalam penyebaran produk di app store sesuai dengan persyaratan di berbagai jenis perangkat


REFERENSI BAIK

Tutorial Vogella


20
2017-11-26 17:21



Anda dapat menemukan semua yang perlu Anda ketahui tentang Gradle di sini: Panduan Pengguna Plugin Gradle

Tujuan dari Sistem Bangun yang baru

Tujuan dari sistem build yang baru adalah:

  • Permudah penggunaan kembali kode dan sumber daya
  • Buat beberapa varian aplikasi dengan mudah, baik untuk distribusi multi-apk atau untuk berbagai rasa aplikasi
  • Buatlah mudah untuk mengonfigurasi, memperluas, dan menyesuaikan proses pembuatan
  • Integrasi IDE yang baik

Mengapa Gradle?

Gradle adalah sistem build canggih serta build canggih   toolkit memungkinkan untuk membuat custom membangun logika melalui plugin.

Berikut beberapa fitur yang membuat kami memilih Gradle:

  • Domain Specific Language (DSL) untuk mendeskripsikan dan memanipulasi logika build
  • Membangun file berbasis Groovy dan memungkinkan pencampuran elemen deklaratif melalui DSL dan menggunakan kode untuk memanipulasi elemen DSL   untuk menyediakan logika khusus.
  • Pengelolaan dependensi internal melalui Maven dan / atau Ivy.
  • Sangat fleksibel. Memungkinkan menggunakan praktik terbaik tetapi tidak memaksakan caranya sendiri dalam melakukan sesuatu.
  • Plugin dapat mengekspos DSL mereka sendiri dan API mereka sendiri untuk membangun file untuk digunakan.
  • API Tooling Bagus memungkinkan integrasi IDE

19
2018-01-21 04:50



Gradle adalah a membangun sistem. Membangun sistem adalah perangkat lunak yang dirancang untuk mengotomatiskan proses kompilasi program. Membangun sistem datang dalam berbagai bentuk, dan digunakan untuk berbagai tugas membangun perangkat lunak. Sementara tujuan utama mereka adalah membuat executable secara efisien.

Istilah lain yang terkait adalah Build automation yang merupakan proses mengotomatiskan pembuatan perangkat lunak dan proses terkait termasuk: menyusun kode sumber komputer ke dalam kode biner, mengemas kode biner, dan menjalankan pengujian otomatis.

Beberapa sistem bangun serupa untuk bahasa lain (lihat daftar lengkap sini):

  1. Apache Ant & Apache Maven - Java
  2. sbt (Simple Build Tool) - untuk Scala (Mainkan kerangka kerja dll)
  3. A-A-P - alat build berbasis Python
  4. Rake (Apache Builder) - Ruby
  5. Leiningen untuk Clojure

17
2017-09-18 08:28



Dengan risiko menjadi diskursif, saya pikir di balik ini adalah pertanyaan mengapa pengalaman Android Studio / Gradle sangat buruk.

Pengalaman tipikal Clojure:

  • unduh proyek dengan dependensi yang terdaftar di project.clj.
  • Leiningen mendapat ketergantungan berkat Clojars dan Maven.
  • Kompilasi proyek.

Pengalaman Android Studio / Gradle yang khas:

  • "Impor proyek Eclipse saya".
  • Proyek OK diimpor.
  • Gradle melakukan itu ... tunggu ... tunggu ... tunggu ... Gradle selesai.
  • Kompilasi ... tidak dapat dikompilasi karena saya tidak tahu apa X / tidak dapat menemukan perpustakaan Y.

Saya tidak yakin ini adalah kesalahan Gradle. Tetapi "impor dari proyek Eclipse" tampaknya cukup bersisik. Untuk semua kecanggihan dugaan Gradle dan keunggulan sistem build, Android Studio sepertinya tidak mengimpor dependensi build atau proses build dari Eclipse dengan sangat baik.

Ini tidak memberi tahu Anda ketika gagal untuk mengimpor grafik ketergantungan lengkap. Android Studio tidak memberikan bantuan atau kiat yang berguna tentang cara menyelesaikan masalah. Ini tidak memberi tahu Anda di mana Anda dapat secara manual melihat di folder Eclipse. Itu tidak memberi tahu Anda perpustakaan mana yang tampaknya hilang. Atau membantu Anda mencari Maven dll. Untuk mereka.

Pada tahun 2016, hal-hal seperti Leiningen / Clojars, atau npm node, atau pip Python, atau apk Debian (dan saya yakin banyak manajer paket serupa untuk bahasa dan sistem lain) semuanya bekerja dengan baik ... dependensi yang hilang adalah hal di masa lalu.

Kecuali dengan Android. Android Studio sekarang adalah satu-satunya tempat di mana saya tampaknya masih mengalami neraka ketergantungan-hilang.

Saya cenderung mengatakan ini adalah kesalahan Google. Mereka merusak ekosistem Android (dan ribuan proyek Android / tutorial online) saat mereka memutuskan memutuskan untuk beralih dari Eclipse ke Android Studio / Gradle tanpa menghasilkan proses konversi yang kuat. Orang-orang yang proyeknya bekerja di Eclipse tidak mengadaptasikannya ke AS (mungkin karena itu menyakitkan bagi mereka). Dan orang yang mencoba menggunakan proyek-proyek tersebut di AS sedang mengalami masalah yang sama.

Lagi pula, jika Gradle adalah sistem build yang super canggih ini, mengapa saya masih mengelola banyak dependensi lain di manajer SDK? Mengapa tidak dapat proyek yang perlu, katakanlah, ndk menentukan ini dalam file Gradle-nya sehingga secara otomatis diinstal dan dibangun-melawan ketika diperlukan? Mengapa NDK istimewa? Demikian pula untuk platform target? Mengapa saya menginstalnya secara eksplisit di IDE daripada hanya memeriksa proyek saya terhadap mereka dan meminta semua ini disortir untuk saya di belakang layar?


14
2017-08-21 14:33



Gradle adalah sistem build canggih serta toolkit pengembangan canggih yang memungkinkan untuk membuat custom membangun logika melalui plugin!

Keuntungan:

  • Dsl - Bahasa khusus domain, berdasarkan groovy
  • DAG - Directed Acyclic Graph
  • Pembentukan inkremental
  • Model domain diperluas
  • Gradle selalu diperbarui
  • Sebelum tugas dijalankan, Gradle mengambil snapshot tugasnya masukan dan keluaran.
  • Jika snapshot telah berubah atau tidak ada, Gralde akan laksanakan kembali tugas ini.

Entri manifes

Melalui DSL dimungkinkan untuk mengkonfigurasi berikut ini entri manifes:

Bangun varian

Secara default, plugin Android secara otomatis menyiapkan proyek membuat versi debug dan rilis dari aplikasi.

Dependensi

  1. Ketergantungan Lokal:

Jika Anda memiliki arsip biner di sistem file lokal Anda yang modul   tergantung pada, seperti file JAR, Anda dapat mendeklarasikan dependensi ini di   file build untuk modul itu.

  1. Remote Dependencies:

Pertama, repositori harus ditambahkan ke daftar, dan kemudian   ketergantungan harus dinyatakan dengan cara yang dinyatakan oleh Maven atau Ivy   artefak.


10
2017-11-17 10:03