gradle-retrolambaAndroid Geliştirme için Java 8'i kullanmak için kademeli derleme bağımlılığını kullanabilirsiniz.
Aşağıda, Android geliştirme için lambda ifadelerini çalıştırmak için takip ettiğim eksiksiz bir kılavuz var. Bu kılavuzun orijinal kaynağının sonunda belirtilmiştir.
Bu kılavuzda, bazı Java 8 özelliklerini Android Geliştirme Araçları'na getirmek için bir yöntem gösterilecek, özellikle Eclipse IDE'yi hedefleyecek
. Bununla birlikte, bu kılavuzda anlatılacak adımlar Google'ın yeni ayaklanma geliştirme ortamı Android Studio'ya da uyarlanabilir. JetBrains'in popüler IntelliJ Idea IDE'nin topluluk sürümüne dayanmaktadır ve yakın zamanda bu kılavuz yazılmadan biraz önce, 2014 yılının Temmuz ayında Google tarafından 'beta' sürümüne yükseltilmiştir. Eclipse en azından bir süre önde gelen geliştirme ortamı olarak kalacak ve çoğu Android projesinin Eclipse kullanılarak geliştirildiği göz önüne alındığında, lambda ifadeleri gibi yeni Java 8 özelliklerini ADT'ye getirmek için bir yöntem geliştiriciler için oldukça yararlı görünüyor.
Android Geliştirme, 2011 yılında sonlandırılan Apache Harmony Project adlı özel bir Java uygulamasına dayanmaktadır. Android Geliştirme'de en sık kullanılan Java sözdizimi Java 6 (v1.6) ve Java 7 (v1.7) de kısmen desteklenmektedir. KitKat sürümü (Android 4.4. +). Bu nedenle, lambda ifadeleri gibi Java 8 özellikleri, geliştirme araçlarına bazı değişiklikler uygulamadan doğrudan Android Uygulama Geliştirme'de kullanılamaz. Neyse ki, bu yapılar temel olarak geliştiricilere 'anonim sınıflar' gibi şeylerin eksikliklerini veren bazı 'sözdizimsel şeker' geliştirmeleridir ve Java 6 veya Java 7 sınıflarına çevrilebilirler.
Java 8 kaynak kodunu daha düşük Java sürümlerine çevirmek için yakın tarihli bir yaklaşıma RetroLambda denir . Bu kütüphane, geliştiricilerin Java 7 kodunu lambda ifadeleriyle Java 7 veya daha düşük bir sürümde çalıştırmasını sağlar. Ne yazık ki, lambda ifadeleri dışındaki Java 8 özellikleri şu anda RetroLambda tarafından desteklenmemektedir, ancak lambda ifadeleri kavramı Java 8 platformunda en büyük sıçramadır ve yine de Android geliştiricileri için harika bir araçtır.
Bu kütüphane hakkında ayrıntılar GitHub sayfasında bulunabilir:
https://github.com/orfjackal/retrolambda#getting-started
Ayrıca, başka bir geliştirici tarafından oluşturulan RetroLambda için bir Gradle eklentisi, Gradle tabanlı yapıların Java veya Android Projelerinde uygulanmasına izin verir. Ancak, geliştirici yalnızca bu eklentiyi Android Studio ortamına entegre etmekten bahsediyor. Ayrıntılar GitHub sayfasında bulunabilir:
https://github.com/evant/gradle-retrolambda
Bu altyapıların Eclipse tabanlı bir geliştirme ortamında kullanılması doğrudan ele alınamaz, ancak yapılabilir ve bu kılavuzda gösterilecektir.
Hazırlık
Bu kılavuz, okuyucunun Android Geliştirme hakkında temel bir anlayışa sahip olduğunu ve ADT sürüm 22.6.2'yi temel aldığını varsayar, çünkü yeni ADT sürüm 23.0.2'de düzen klasörü oluşturma gibi sorunlar var gibi görünüyor. Bu sorunla ilgili ayrıntılar aşağıdaki bağlantıda bulunabilir:
http://code.google.com/p/android/issues/detail?id=72591
Bu kılavuzdaki adımlar Windows 8.1, 64 bit geliştirme makinesi için verilecektir , ancak diğer platformlara kolayca uyarlanabilirler. Yeni derleme sistemi Gradlederleme / temizleme işlemleri için kullanılacak ve kurulum prosedürü de sağlanacaktır. Ayrıca, hem JDK 8ve JDK 7geliştirme makinede birlikte gerekir. Bunları kurmak için aşağıdaki adımlar izlenmelidir:
- JDK 8 erken erişim önizleme sayfasına gidin http://jdk8.java.net
- JDK 8u20'yi indirin ve yükleyin. JRE 8 kurulumu gerekli değildir ve atlanabilir
- JDK 7'nin son kararlı sürüm sayfasına gidin http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
- JDK 7u65'i indirin ve yükleyin. JRE 7 kurulumu tekrar gerekli değildir ve atlanabilir
- JDK 8 ana klasörünü ve JDK 8
binklasörünü%PATH% değişkeninize
JAVA_HOMEJDK 8 giriş klasörü yolunun değeriyle yeni bir ortam değişkeni oluşturma
JAVA8_HOMEJDK 8 giriş klasörü yolunun değeriyle yeniden yeni bir ortam değişkeni oluşturun
JAVA7_HOMEJDK 7 giriş klasörü yolunun değeriyle yeni bir ortam değişkeni oluşturma
- Bir terminal penceresi açın ve
java -versionkomutu çalıştırın ve Java 8'in çalışır durumda olduğunu doğrulayın
javac -versionKomutu aynı pencerede çalıştırın ve JDK 8 Java derleyicisinin de çalışır durumda olduğunu doğrulayın
Şimdi, ADT-22.6.2 aşağıdaki bağlantıdan indirilmelidir:
http://dl.google.com/android/adt/22.6.2/adt-bundle-windows-x86_64-20140321.zip
- ADT'yi indirin ve içeriğini bir klasöre açın, ör.
D:\adt
ANDROID_HOMEADT yükleme klasörünüzün yolunun değeri ile çağrılan yeni bir ortam değişkeni tanımlayın , örn.D:\adt\sdk
- Senin ekleyin
Andoid SDK Platform Toolsve Andoid SDK Toolsklasörler, örneğin D:\adt\sdk\toolsve D:\adt\sdk\platform-toolssizin için, %PATH%değişken
- İsterseniz Eclipse IDE için bir kısayol oluşturun. ADT kurulum klasörünüzün altında bulunur, örn.
D:\adt\eclipse
- Eclipse IDE'yi çalıştırın ve bir çalışma alanı oluşturun, örn.
D:\adt\workspace
Android SDK ManagerAraç çubuğunda bulunan düğmeyi tıklayın
- Seçin
Android SDK Build tools Rev. 19.1ve Android Support Librarysadece. Diğer her şeyin seçimini kaldırın ve bu iki paketi yükleyin.
Her şey yolunda giderse, ADT çalışır durumda olacaktır.
Aşağıdaki araçların montajı da şiddetle tavsiye edilir:
Eclipse Kepler Java 8 Desteği: Eclipse'in yeni Java 8 sözdizimi uzantılarını tanımasını sağlar ve red dotsJava kod düzenleyicinizde can sıkıcılardan kurtulmanızı sağlar . Help -> Install New SoftwareEclipse içine kurulabilir . Enter http://download.eclipse.org/eclipse/updates/4.3-P-builds/ içine Work withalan ve onu takmaya devam edin.
Nodeclipse / Enide Gradle: Çoğunlukla Groovy dil anahtar kelimelerini vurgulamak için kullanılır. Groovy, Gradle derlemesi için DSL komut dosyaları olarak kullanılır. Bu eklenti üzerinden kurulabilir Eclipse Marketplace. Bununla birlikte, ADT-22.6.2 içindeki Eclipse ile birlikte gelmez Eclipse Marketplace Client. Bu nedenle, öncelikle yüklemeniz gerekir Eclipse Marketplace Clientvasıtasıyla Install New SoftwareEclipse aracı. Work withAlana http //: download.eclipse.org/mpc/kepler/ girin ve yüklemeye devam edin. Yükledikten sonra Eclipse Marketplace Client, Nodeclipse/Enide Gradleiçinde arayabilir Eclipse Marketplace Clientve yükleyebilirsiniz.
Genymotion Sanal Cihaz: Android Virtual DeviceADT ile birlikte gelen varsayılanın yerini almıştır . AVD rahatsız edici derecede hantal ve sebepsiz yere çökmeye devam ediyor. Genymotion, Oracle VirtualBoxCyanogenMod tarafından yürütülen görüntüleri kullanarak Android VD'leri hazırlamanızı sağlar . Tek kullanıcı lisansı ücretsizdir ve http://www.genymotion.com adresinden indirilebilir . Sadece bir giriş gereklidir ve Eclipse'e entegre edilebilir. Detaylar şurada bulunabilir:
https://cloud.genymotion.com/page/doc/#collapse8
Aşağıda Android 4.3 tabanlı CyanogenMod sanal cihazının ekran görüntüsü,

X86 veya x64 tabanlı bir kişisel bilgisayarda çalışan tam kapsamlı bir Android cihaz olarak düşünülebilir. Google PlayStoreBu sanal cihazdaki gibi Google hizmetlerini kullanmak gappsiçin, kullandığı Android sürümü için bir görüntünün cihaza yanıp sönmesi gerekir. gappsCyanogenMod web sitesinden cihaz için uygun bir resim indirilebilir:
http://wiki.cyanogenmod.org/w/Google_Apps
Gradle kurulumu isteğe bağlıdır, çünkü Android SDK tarafından da sağlanır, ancak ayrı kurulumu şiddetle tavsiye edilir. Kurulumu aşağıdaki adımlar izlenerek gerçekleştirilebilir:
Demo Uygulaması
Önceki bölümde açıklanan araçların kullanımını göstermek için basit bir uygulama oluşturulacaktır. Android Geliştirici Araçları'nda lambda ifadelerini kullanma hakkında bilgi edinmek için aşağıdaki adımları uygulamanız yeterlidir:
- Eclipse IDE'yi çalıştırın ve seçerek yeni bir Android Uygulaması oluşturun
File -> New -> Other -> Android -> Android Application Project
- Aşağıda gösterilen formu doldurun:

gradle_build.cmd:

gradle_post_build.cmd:

gradle_clean.cmd:

- Un-select
Project -> Build Automaticallymenü seçeneği
- Projeye sağ tıklayın ve
Properties -> BuildersADT tarafından sağlanan tüm varsayılan oluşturucuları seçip seçimini kaldırın
NewAynı pencerede düğmesine tıklayın ProgramveOK
- Yeni oluşturucu yapılandırma penceresi görünecektir. Sekmelerini aşağıdaki gibi doldurun:
Main Yeni Oluşturucu Yapılandırmasının Sekmesi

Refresh Yeni Oluşturucu Yapılandırmasının Sekmesi

Environment Yeni Oluşturucu Yapılandırmasının Sekmesi

Build Options Yeni Oluşturucu Yapılandırmasının Sekmesi

- Programı olarak
Gradle_Post_Buildkullanılan ikinci oluşturucuyu oluşturun gradle_post_build.cmd. Bu oluşturucunun diğer tüm ayarları, önceden oluşturulmuş oluşturucuyla tamamen aynı olmalıdır. Bu oluşturucu, oluşturma işlemi tarafından oluşturulan yapay nesnelerin binklasöre kopyalanmasından sorumlu olacaktır .
- Programı olarak
Gradle_Cleanerkullanan üçüncü oluşturucuyu oluşturun gradle_clean.cmd. Yalnızca Run the builderson sekmedeki ayarlar olarak ayarlanmalıdır During a Clean. Bu oluşturucunun diğer tüm ayarları, ilk oluşturucu ile tamamen aynı olmalıdır. Bu oluşturucu, adından da anlaşılacağı gibi, oluşturma işlemi tarafından oluşturulan yapay nesnelerin temizlenmesinden sorumlu olacaktır.
HelloLambdaProjenin Yeni Üreticileri

- Projeye sağ tıklayın ve
Export
- Seçin
Android -> Generate Gradle Build Filesve tıklayınNext
- Bir sonraki pencerede projeyi seçin ve tıklayın
Finish
- Projenizin kök klasörüne gidin ve dosyaları silmek
gradlewve gradlew.bat. Ayrıca gradleklasörü sil
- Tutulmaya geri dönün ve
Project -> Cleanmenü seçeneğini seçin . Aşağıdaki gibi görünen formu doldurun:
Clean Project pencere

- Tıklayın
OKve temizleme işlemi tamamlanana kadar bekleyin
- Sınıfınızdaki
setContentViewişlev çağrısından hemen sonra aşağıda verilen Java kod snippet'ini ekleyin MainActivity:

build.gradleDosyanın başlangıcını sourceCompatibilityaşağıdaki bölüme kadar değiştirin :

- Projeye sağ tıklayın ve
Properties -> Java Compilerseçeneği belirleyin ve tüm uyumluluk düzeylerini Java 8 olarak ayarlayın. Bu, Eclipse'in lambda ifadeleri gibi yeni Java 8 yapılarını tanımasını sağlar.
NoBildirim penceresini tıklayın
- Projeye sağ tıklayın ve seçin
Build project. Eclipse projeyi inşa etmeye başlayacak.
Derleme Süreci


Eclipse artık tanıyabilecek R.javave dosyalayabilecek ve projenin kaynak dosyalarıyla ilgili hataları gösteren buildConfig.javaherhangi bir görüntüyü red dotsgöstermeyecektir.
Run ConfigurationProjeye sağ tıklayıp ardından öğesini seçerek Android hedef platformunuz için yeni bir tane oluşturun Run As -> Run Configurations. Örneğin, bu demo uygulaması Genymotion VD'de aşağıda gösterildiği gibidir:
HelloLambda Uygulaması

LogCatPencerede, basit bir lambda ifadesine sahip kod pasajının düzgün çalıştığını gözlemleyebilirsiniz.

Kaynak: Android Geliştirici Araçları'nda Java 8 Lambda İfadelerini Kullanma