Anda memang dapat menggunakan gradle-retrolamba
dependensi gradle build untuk menggunakan Java 8 untuk Pengembangan Android.
Di bawah ini adalah panduan lengkap yang baru-baru ini saya ikuti untuk menjalankan ekspresi lambda untuk pengembangan Android. Sumber asli panduan ini disebutkan di bagian akhir.
Dalam panduan ini, metode untuk menghadirkan beberapa fitur Java 8 ke dalam Alat Pengembangan Android akan diperlihatkan, secara khusus ditujukan untuk
Eclipse IDE. Namun, langkah-langkah yang akan dijelaskan dalam panduan ini mungkin juga disesuaikan dengan lingkungan pengembangan pemberontakan baru Google, Android Studio. Ini didasarkan pada edisi komunitas IDE Idea IntelliJ populer oleh JetBrains dan baru-baru ini ditingkatkan ke versi 'beta' oleh Google pada awal Juli 2014, sedikit sebelum panduan ini ditulis. Eclipse akan tetap sebagai lingkungan pengembangan yang menonjol, setidaknya untuk sementara waktu, dan mengingat fakta bahwa sebagian besar proyek Android telah dikembangkan menggunakan Eclipse, sebuah metode untuk menghadirkan fitur Java 8 baru seperti ekspresi lambda ke dalam ADT tampaknya cukup berguna bagi pengembang.
Pengembangan Android didasarkan pada implementasi Java kustom yang disebut Apache Harmony Project yang dihentikan pada tahun 2011. Sintaks Java yang paling umum digunakan dalam Pengembangan Android adalah Java 6 (v1.6) dan Java 7 (v1.7) juga didukung sebagian pada edisi KitKat (Android 4.4. +). Oleh karena itu, fitur Java 8 seperti ekspresi lambda tidak dapat digunakan secara langsung dalam Pengembangan Aplikasi Android tanpa menerapkan beberapa penyesuaian pada alat pengembangan. Untungnya, konstruksi ini pada dasarnya adalah beberapa peningkatan 'gula sintaksis' yang memberikan kekurangan pada pengembang hal-hal seperti 'kelas anonim' dan mereka dapat diterjemahkan ke dalam kelas Java 6 atau Java 7.
Pendekatan terbaru untuk menerjemahkan kode sumber Java 8 ke dalam versi Java yang lebih rendah disebut RetroLambda . Pustaka ini membuat pengembang menjalankan kode Java 8 dengan ekspresi lambda di Java 7 atau bahkan lebih rendah. Sayangnya, fitur Java 8 selain ekspresi lambda tidak didukung oleh RetroLambda untuk saat ini tetapi konsep ekspresi lambda adalah lompatan terbesar pada platform Java 8 dan ini merupakan alat yang hebat untuk pengembang Android.
Detail tentang perpustakaan ini dapat ditemukan di halaman GitHub-nya:
https://github.com/orfjackal/retrolambda#getting-started
Juga, plugin Gradle untuk RetroLambda yang dibuat oleh pengembang lain memungkinkan pembangunan berbasis Gradle diimplementasikan di Java atau Android Projects. Namun, pengembang hanya menyebutkan tentang mengintegrasikan plugin ini ke lingkungan Android Studio. Detail dapat ditemukan di halaman GitHub-nya:
https://github.com/evant/gradle-retrolambda
Menggunakan infrastruktur ini dalam lingkungan pengembangan berbasis Eclipse tidak dapat didekati secara langsung tetapi dapat dilakukan dan akan ditunjukkan di seluruh panduan ini.
Persiapan
Panduan ini mengasumsikan bahwa pembaca memiliki pemahaman dasar tentang Pengembangan Android dan didasarkan pada ADT versi 22.6.2 karena versi ADT terbaru 23.0.2 tampaknya memiliki masalah seperti pembuatan folder layout. Detail tentang masalah ini dapat ditemukan di bawah tautan berikut:
http://code.google.com/p/android/issues/detail?id=72591
Langkah-langkah dalam panduan ini akan diberikan untuk mesin pengembangan Windows 8.1, 64-bit tetapi mereka dapat dengan mudah diadaptasi ke platform lain. Sistem build baru Gradle
akan digunakan untuk proses build / clean dan prosedur instalasinya juga akan disediakan. Juga, keduanya JDK 8
dan JDK 7
harus hidup berdampingan pada mesin pengembangan. Langkah-langkah yang diberikan di bawah ini harus diikuti untuk menginstalnya:
- Pergi ke halaman pratinjau akses awal JDK 8 http://jdk8.java.net
- Unduh JDK 8u20 dan instal. Instalasi JRE 8 tidak perlu dan dapat dilewati
- Pergi ke JDK 7 halaman rilis stabil terbaru http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
- Unduh JDK 7u65 dan instal. Instalasi JRE 7 sekali lagi tidak perlu dan dapat dilewati
- Tambahkan folder rumah JDK 8 dan folder JDK 8
bin
ke %PATH%
variabel Anda
- Buat variabel lingkungan baru
JAVA_HOME
dengan nilai path folder home JDK 8
- Buat variabel lingkungan baru
JAVA8_HOME
lagi dengan nilai path folder home JDK 8
- Buat variabel lingkungan baru
JAVA7_HOME
dengan nilai path folder home JDK 7
- Buka jendela terminal dan jalankan
java -version
perintah dan verifikasi bahwa Java 8 sudah aktif
- Jalankan
javac -version
perintah di jendela yang sama dan verifikasi bahwa JDK 8 Java compiler juga aktif dan berjalan
Sekarang, ADT-22.6.2 harus diunduh dari tautan berikut:
http://dl.google.com/android/adt/22.6.2/adt-bundle-windows-x86_64-20140321.zip
- Unduh ADT dan unzip isinya ke folder, misalnya
D:\adt
- Tentukan variabel lingkungan baru yang disebut
ANDROID_HOME
dengan nilai lintasan folder instalasi ADT Anda, misalnyaD:\adt\sdk
- Tambah
Andoid SDK Platform Tools
dan Andoid SDK Tools
folder, misalnya D:\adt\sdk\tools
dan D:\adt\sdk\platform-tools
, untuk Anda %PATH%
variabel
- Buat pintasan ke Eclipse IDE jika Anda suka. Ini terletak di bawah folder instalasi ADT Anda, mis
D:\adt\eclipse
- Jalankan Eclipse IDE dan buat ruang kerja, mis
D:\adt\workspace
- Klik pada
Android SDK Manager
tombol yang terletak di bilah alat
- Pilih
Android SDK Build tools Rev. 19.1
dan Android Support Library
hanya. Hapus pilihan semua yang lain dan instal kedua paket ini.
Jika semuanya berjalan dengan baik, ADT akan aktif dan berjalan.
Instalasi alat-alat berikut ini juga sangat dianjurkan:
Dukungan Eclipse Kepler Java 8: Itu membuat Eclipse mengenali ekstensi sintaksis Java 8 yang baru dan membuat Anda menghilangkan gangguan red dots
pada editor kode Java Anda. Mungkin diinstal melalui Help -> Install New Software
di Eclipse. Masukkan http://download.eclipse.org/eclipse/updates/4.3-P-builds/ ke dalam Work with
bidang dan lanjutkan untuk menginstalnya.
Nodeclipse / Enide Gradle: Ini terutama digunakan untuk menyoroti kata kunci bahasa Groovy. Groovy digunakan sebagai skrip pembuatan DSL untuk Gradle. Plugin ini dapat diinstal melalui Eclipse Marketplace
. Namun, Eclipse dalam ADT-22.6.2 tidak datang bersama Eclipse Marketplace Client
. Oleh karena itu, Anda harus menginstal terlebih dahulu Eclipse Marketplace Client
dengan Install New Software
alat di Eclipse. Masukkan http //: download.eclipse.org/mpc/kepler/ ke dalam Work with
isian dan lanjutkan untuk menginstalnya. Setelah menginstal Eclipse Marketplace Client
, Anda dapat mencari Nodeclipse/Enide Gradle
di Eclipse Marketplace Client
dan menginstalnya.
Genymotion Virtual Device: Ini adalah pengganti besar dari default Android Virtual Device
yang datang bersama dengan ADT. AVD menjengkelkan dan terus menabrak tanpa alasan. Genymotion membuat Anda mempersiapkan CyanogenMod
gambar menggunakan Android VD yang dijalankan oleh Oracle VirtualBox . Lisensi pengguna tunggal adalah gratis dan dapat diunduh dari http://www.genymotion.com . Hanya login yang diperlukan dan itu juga dapat diintegrasikan ke dalam Eclipse. Detail dapat ditemukan di bawah:
https://cloud.genymotion.com/page/doc/#collapse8
Di bawah ini adalah tangkapan layar perangkat virtual CyanogenMod berbasis Android 4.3,
Ini mungkin dianggap sebagai perangkat Android yang sepenuhnya berjalan di komputer pribadi berbasis x86 atau x64. Untuk menggunakan layanan Google seperti Google PlayStore
pada perangkat virtual ini, gapps
gambar untuk versi Android yang digunakan harus di-flash ke perangkat. gapps
Gambar yang tepat untuk perangkat dapat diunduh dari situs web CyanogenMod:
http://wiki.cyanogenmod.org/w/Google_Apps
Instalasi Gradle bersifat opsional karena juga disediakan oleh Android SDK sendiri tetapi instalasi terpisahnya sangat disarankan. Pemasangannya mungkin dilakukan dengan mengikuti langkah-langkah ini:
Aplikasi Demo
Aplikasi sederhana akan dibuat untuk menunjukkan penggunaan alat yang dijelaskan di bagian sebelumnya. Anda cukup mengikuti langkah-langkah yang diberikan di bawah ini untuk mendapatkan wawasan tentang penggunaan ekspresi lambda di Alat Pengembang Android:
- Jalankan Eclipse IDE dan buat Aplikasi Android baru dengan memilih
File -> New -> Other -> Android -> Android Application Project
- Isi formulir yang muncul seperti yang ditunjukkan di bawah ini:
gradle_build.cmd:
gradle_post_build.cmd:
gradle_clean.cmd:
- Batalkan
Project -> Build Automatically
pilihan menu
- Klik kanan pada proyek dan pilih
Properties -> Builders
dan batalkan-pilih semua pembangun default yang disediakan oleh ADT
- Klik
New
tombol di jendela yang sama dan pilih Program
dan klikOK
- Jendela konfigurasi pembangun baru akan muncul. Isi tab-nya sebagai berikut:
Main
Tab Konfigurasi Pembuat yang baru
Refresh
Tab Konfigurasi Pembuat yang baru
Environment
Tab Konfigurasi Pembuat yang baru
Build Options
Tab Konfigurasi Pembuat yang baru
- Buat pembangun kedua disebut
Gradle_Post_Build
yang menggunakan gradle_post_build.cmd
sebagai programnya. Semua pengaturan lain dari pembuat ini harus persis sama dengan pembuat yang dibuat sebelumnya. Builder ini akan bertanggung jawab untuk menyalin artefak yang dibuat oleh proses build ke bin
folder.
- Buat pembangun ketiga yang disebut
Gradle_Cleaner
yang menggunakan gradle_clean.cmd
sebagai programnya. Hanya Run the builder
pengaturan di tab terakhir yang harus ditetapkan sebagai During a Clean
. Semua pengaturan lain dari pembuat ini harus persis sama dengan pembuat pertama. Pembangun ini akan bertanggung jawab untuk membersihkan artefak yang dibuat oleh proses pembuatan seperti namanya.
Pembangun Baru HelloLambda
Proyek
- Klik kanan pada proyek dan pilih
Export
- Pilih
Android -> Generate Gradle Build Files
dan klikNext
- Pilih proyek di jendela berikutnya dan klik
Finish
- Buka folder root proyek Anda dan hapus file
gradlew
dan gradlew.bat
. Hapus juga gradle
folder
- Beralih kembali ke Eclipse dan pilih
Project -> Clean
opsi menu. Isi formulir yang muncul sebagai berikut:
Clean Project
Jendela
- Klik
OK
dan tunggu sampai proses pembersihan selesai
- Tambahkan snipet kode Java yang diberikan di bawah ini tepat setelah panggilan
setContentView
berfungsi di MainActivity
kelas Anda :
- Ubah awal
build.gradle
file hingga sourceCompatibility
bagian sebagai berikut:
- Klik kanan pada proyek dan pilih
Properties -> Java Compiler
opsi dan atur semua level kepatuhan ke Java 8. Ini akan membuat Eclipse mengenali konstruksi Java 8 baru seperti ekspresi lambda.
- Klik
No
di jendela notifikasi
- Klik kanan pada proyek dan pilih
Build project
. Eclipse akan mulai membangun proyek.
Proses Pembuatan
Eclipse sekarang akan dapat mengenali R.java
dan buildConfig.java
file dan itu tidak akan menampilkan red dots
kesalahan yang menunjukkan terkait dengan file sumber daya proyek.
- Buat yang baru
Run Configuration
untuk platform target Android Anda dengan mengklik kanan pada proyek dan kemudian memilih Run As -> Run Configurations
. Misalnya, aplikasi demo ini terlihat seperti yang ditunjukkan di bawah ini di Genymotion VD:
Aplikasi HelloLambda
Anda dapat mengamati di LogCat
jendela bahwa potongan kode dengan ekspresi lambda sederhana berfungsi dengan baik
Sumber: Menggunakan Java 8 Lambda Expressions di Alat Pengembang Android