आप वास्तव में उपयोग कर सकते हैं gradle-retrolamba एंड्रॉइड डेवलपमेंट के लिए जावा 8 का उपयोग करने के ग्रेडल बिल्ड निर्भरता का उपयोग ।
नीचे पूरा गाइड है जिसे मैंने हाल ही में एंड्रॉइड डेवलपमेंट के लिए लैम्ब्डा एक्सप्रेशन चलाने के लिए फॉलो किया है। इस गाइड के मूल स्रोत का उल्लेख अंत में किया गया है।
इस गाइड में, एंड्रॉइड डेवलपमेंट टूल्स में कुछ जावा 8 सुविधाओं को लाने के लिए एक विधि का प्रदर्शन किया जाएगा, विशेष रूप से ग्रहण आईडीई पर लक्षित
। हालाँकि, इस गाइड में जिन चरणों का वर्णन किया जाएगा, वे Google के नए बढ़ते विकास परिवेश, Android Studio के अनुकूल भी हो सकते हैं। यह JetBrains द्वारा लोकप्रिय IntelliJ Idea IDE के सामुदायिक संस्करण पर आधारित है और इसे हाल ही में जुलाई 2014 की शुरुआत में Google द्वारा इसके 'बीटा' संस्करण में अपग्रेड किया गया था, जो इस गाइड के लिखे जाने से थोड़ा पहले था। ग्रहण कम से कम थोड़ी देर के लिए प्रमुख विकास वातावरण के रूप में रहेगा, और इस तथ्य पर विचार करते हुए कि ज्यादातर एंड्रॉइड प्रोजेक्ट्स को ग्रहण का उपयोग करके विकसित किया गया है, एडीटी में लैम्ब्डा एक्सप्रेशंस जैसे नए जावा 8 फीचर लाने की एक विधि डेवलपर्स के लिए काफी उपयोगी लगती है।
Android विकास एपाचे हार्मनी प्रोजेक्ट नामक एक कस्टम जावा कार्यान्वयन पर आधारित है जिसे 2011 में वापस समाप्त कर दिया गया था। Android विकास में सबसे अधिक इस्तेमाल किया जाने वाला जावा सिंटैक्स जावा 6 (v1.6) और जावा 7 (v1.7) भी आंशिक रूप से समर्थित है किटकैट संस्करण (Android 4.4। +)। इसलिए, लैम्ब्डा एक्सप्रेशंस जैसे जावा 8 के फीचर्स को एंड्रॉइड ऐप डेवलपमेंट में सीधे इस्तेमाल नहीं किया जा सकता है, बिना विकास टूल में कुछ ट्वीक्स लगाए। सौभाग्य से, ये निर्माण मूल रूप से कुछ actic सिंटैक्टिक शुगर ’संवर्द्धन हैं जो डेवलपर्स को they अनाम वर्गों’ जैसी चीजों की कमियां देते हैं और उन्हें जावा 6 या जावा 7 कक्षाओं में अनुवादित किया जा सकता है।
जावा 8 स्रोत कोड को निचले जावा संस्करणों में अनुवाद करने के लिए एक हालिया दृष्टिकोण को रेट्रोबलाडा कहा जाता है । यह लाइब्रेरी डेवलपर्स को जावा 7 या उससे भी कम पर लैम्ब्डा एक्सप्रेशन के साथ जावा 8 कोड चलाती है। दुर्भाग्य से, Java 8 में लैम्बडा एक्सप्रेशंस के अलावा अन्य फीचर्स अभी के लिए RetroLambda द्वारा समर्थित नहीं हैं, लेकिन लैम्ब्डा एक्सप्रेशन की अवधारणा Java 8 प्लेटफॉर्म पर सबसे बड़ी छलांग है और यह वैसे भी Android डेवलपर्स के लिए एक बढ़िया टूल है।
इस पुस्तकालय के बारे में विवरण इसके गीथहब पृष्ठ पर पाया जा सकता है:
https://github.com/orfjackal/retrolambda#getting-started
इसके अलावा, किसी अन्य डेवलपर द्वारा बनाया गया रेट्रो-लैम्बडा के लिए एक ग्रैडल प्लगइन ग्रैडल-आधारित बिल्ड को जावा या एंड्रॉइड प्रोजेक्ट्स में कार्यान्वित करने की अनुमति देता है। हालांकि, डेवलपर केवल इस प्लगइन को एंड्रॉइड स्टूडियो वातावरण में एकीकृत करने के बारे में उल्लेख करता है। विवरण इसके GitHub पृष्ठ पर पाया जा सकता है:
https://github.com/evant/gradle-retrolambda
ग्रहण-आधारित विकास के वातावरण में इन अवसंरचनाओं का उपयोग करके सीधे संपर्क नहीं किया जा सकता है, लेकिन यह उल्लेखनीय है और इस पूरे गाइड में प्रदर्शित किया जाएगा।
तैयारी
यह मार्गदर्शिका मानती है कि पाठक को Android विकास की बुनियादी समझ है और यह ADT संस्करण 22.6.2 पर आधारित है क्योंकि हाल ही में ADT संस्करण 23.0.2 में लेआउट फ़ोल्डर निर्माण जैसी समस्याएं हैं। इस मुद्दे के बारे में विवरण निम्न लिंक के तहत पाया जा सकता है:
http://code.google.com/p/android/issues/detail?id=72591
इस गाइड में कदम एक विंडोज 8.1, 64-बिट विकास मशीन के लिए दिए जाएंगे लेकिन उन्हें आसानी से अन्य प्लेटफार्मों के लिए अनुकूलित किया जा सकता है। नई बिल्ड सिस्टम Gradleका उपयोग बिल्ड / क्लीन प्रक्रियाओं के लिए किया जाएगा और इसकी स्थापना प्रक्रिया भी प्रदान की जाएगी। इसके अलावा, दोनों JDK 8और JDK 7विकास मशीन पर सह-अस्तित्व होना चाहिए। उन्हें स्थापित करने के लिए नीचे दिए गए चरणों का पालन करना चाहिए:
- JDK 8 प्रारंभिक पहुंच पूर्वावलोकन पृष्ठ http://jdk8.java.net पर जाएं
- JDK 8u20 डाउनलोड करें और इसे स्थापित करें। JRE 8 इंस्टॉलेशन आवश्यक नहीं है और इसे छोड़ दिया जा सकता है
- JDK 7 के नवीनतम स्थिर रिलीज़ पृष्ठ http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html पर जाएं
- JDK 7u65 डाउनलोड करें और इसे स्थापित करें। JRE 7 इंस्टॉलेशन फिर से आवश्यक नहीं है और इसे छोड़ दिया जा सकता है
- JDK 8 होम फोल्डर और JDK 8
binफोल्डर को अपने %PATH%वैरिएबल में जोड़ें
JAVA_HOMEJDK 8 होम फ़ोल्डर के पथ के मूल्य के साथ एक नया वातावरण चर बनाएं
JAVA8_HOMEJDK 8 होम फ़ोल्डर के पथ के मान के साथ फिर से एक नया वातावरण चर बनाएं
JAVA7_HOMEJDK 7 होम फ़ोल्डर के पथ के मूल्य के साथ एक नया वातावरण चर बनाएं
- एक टर्मिनल विंडो खोलें और
java -versionकमांड चलाएं और सत्यापित करें कि जावा 8 ऊपर और चल रहा है
javac -versionउसी विंडो में कमांड चलाएँ और सत्यापित करें कि JDK 8 जावा कंपाइलर भी ऊपर और चल रहा है
अब, ADT-22.6.2 को निम्न लिंक से डाउनलोड किया जाना चाहिए:
http://dl.google.com/android/adt/22.6.2/adt-bundle-windows-x86_64-20140321.zip
- ADT डाउनलोड करें और एक फ़ोल्डर में इसकी सामग्री को अनज़िप करें, जैसे
D:\adt
ANDROID_HOMEअपने ADT इंस्टॉलेशन फ़ोल्डर के पथ के मूल्य के साथ बुलाया गया नया वातावरण चर परिभाषित करें , उदाD:\adt\sdk
- अपने
Andoid SDK Platform Toolsऔर Andoid SDK Toolsफ़ोल्डर्स, जैसे D:\adt\sdk\toolsऔर D:\adt\sdk\platform-tools, अपने %PATH%चर में जोड़ें
- यदि आपको पसंद है तो ग्रहण आईडीई का शॉर्टकट बनाएं। यह आपके ADT इंस्टॉलेशन फोल्डर के अंतर्गत स्थित है, जैसे
D:\adt\eclipse
- ग्रहण आईडीई चलाएं और कार्यक्षेत्र बनाएं, जैसे
D:\adt\workspace
- उस
Android SDK Managerबटन पर क्लिक करें जो टूलबार पर स्थित है
- का चयन करें
Android SDK Build tools Rev. 19.1और Android Support Libraryकेवल। बाकी सबका चयन करें और इन दो पैकेजों को स्थापित करें।
यदि सब कुछ ठीक रहा, तो ADT ऊपर और चल रहा होगा।
निम्न उपकरणों की स्थापना भी अत्यधिक अनुशंसित है:
एक्लिप्स केपलर जावा 8 सपोर्ट: यह एक्लिप्स को नए जावा 8 सिंटेक्स एक्सटेंशन को मान्यता देता है और आपको red dotsअपने जावा कोड एडिटर में परेशान करने से छुटकारा दिलाता है। इसे Help -> Install New Softwareग्रहण के माध्यम से स्थापित किया जा सकता है । Http://download.eclipse.org/eclipse/updates/4.3-P-builds/Work with फ़ील्ड में दर्ज करें और इसे इंस्टॉल करना जारी रखें।
Nodeclipse / Enide Gradle: इसका उपयोग मुख्य रूप से ग्रूवी भाषा के खोजशब्दों को उजागर करने के लिए किया जाता है। ग्रूवी को ग्रैड बिल्ड स्क्रिप्ट्स के लिए DSL के रूप में उपयोग किया जाता है। इस प्लगइन के माध्यम से स्थापित किया जा सकता है Eclipse Marketplace। हालाँकि, ADT-22.6.2 के भीतर ग्रहण साथ नहीं आता है Eclipse Marketplace Client। इसलिए, आपको पहले ग्रहण में उपकरण के Eclipse Marketplace Clientमाध्यम से इंस्टॉल करना होगा Install New Software। Http //: enter.eclipse.org/mpc/kepler/ Work withफ़ील्ड में दर्ज करें और इसे स्थापित करना जारी रखें। स्थापित करने के बाद Eclipse Marketplace Client, आप के लिए खोज कर सकते Nodeclipse/Enide Gradleमें Eclipse Marketplace Clientहै और इसे स्थापित करें।
Genymotion Virtual Device: यह डिफ़ॉल्ट का एक बेहतरीन प्रतिस्थापन है Android Virtual Deviceजो ADT के साथ आता है। एवीडी कष्टप्रद बोझिल है और यह बिना किसी कारण के दुर्घटनाग्रस्त होता रहता है। Genymotion आपको Android VD की उन CyanogenModछवियों का उपयोग करने के लिए तैयार करता है जो कि Oracle VirtualBox द्वारा निष्पादित की जाती हैं । इसका एकल उपयोगकर्ता लाइसेंस मुफ्त में है और इसे http://www.genymotion.com से डाउनलोड किया जा सकता है । केवल एक लॉगिन की आवश्यकता है और इसे ग्रहण में भी एकीकृत किया जा सकता है। विवरण के तहत पाया जा सकता है:
https://cloud.genymotion.com/page/doc/#collapse8
नीचे Android 4.3 आधारित CyanogenMod वर्चुअल डिवाइस का स्क्रीनशॉट है,

इसे x86 या x64 आधारित व्यक्तिगत कंप्यूटर पर चलने वाला एक पूरी तरह से Android डिवाइस माना जा सकता है। जैसे Google सेवाओं का उपयोग करने के लिएGoogle PlayStoreइस वर्चुअल डिवाइस कीgapps लिए, एंड्रॉइड संस्करण के लिए एक छवि जो इसका उपयोग करता है उसे डिवाइस पर फ्लैश किया जाना चाहिए। gappsडिवाइस के लिए एक उचित छवि CyanogenMod वेबसाइट से डाउनलोड की जा सकती है:
http://wiki.cyanogenmod.org/w/Google_Apps
ग्रेड की स्थापना वैकल्पिक है क्योंकि यह एंड्रॉइड एसडीके द्वारा भी प्रदान किया गया है, लेकिन इसकी अलग स्थापना अत्यधिक अनुशंसित है। इन चरणों का पालन करके इसकी स्थापना की जा सकती है:
डेमो ऐप
पिछले अनुभाग में वर्णित उपकरणों के उपयोग को प्रदर्शित करने के लिए एक सरल ऐप बनाया जाएगा। आप Android डेवलपर टूल में लंबो एक्सप्रेशन का उपयोग करने के बारे में जानकारी प्राप्त करने के लिए बस नीचे दिए गए चरणों का पालन कर सकते हैं:
- ग्रहण आईडीई चलाएं और चयन करके एक नया एंड्रॉइड ऐप बनाएं
File -> New -> Other -> Android -> Android Application Project
- उस फॉर्म को भरें जो नीचे दिखाया गया है:

gradle_build.cmd:

gradle_post_build.cmd:

gradle_clean.cmd:

- अन-चयन
Project -> Build Automaticallyमेनू विकल्प
- प्रोजेक्ट पर राइट-क्लिक करें और चुनें
Properties -> Builders और ADT द्वारा प्रदान किए गए सभी डिफ़ॉल्ट बिल्डरों का चयन और करें
Newएक ही विंडो में बटन पर क्लिक करें और चुनें Programऔर क्लिक करेंOK
- नया बिल्डर कॉन्फ़िगरेशन विंडो दिखाई देगा। इसके टैब इस प्रकार भरें:
Main नए बिल्डर कॉन्फ़िगरेशन का टैब

Refresh नए बिल्डर कॉन्फ़िगरेशन का टैब

Environment नए बिल्डर कॉन्फ़िगरेशन का टैब

Build Options नए बिल्डर कॉन्फ़िगरेशन का टैब

- दूसरा बिल्डर बनाएं जिसे इसके प्रोग्राम के रूप में
Gradle_Post_Buildउपयोग gradle_post_build.cmdकिया जाता है । इस बिल्डर की अन्य सभी सेटिंग्स पहले से निर्मित बिल्डर के साथ ठीक वैसी ही होनी चाहिए। यह बिल्डर बिल्ड प्रोसेस द्वारा बनाई गई कलाकृतियों को कॉपी करने के लिए जिम्मेदार होगाbin फ़ोल्डर ।
- तीसरा बिल्डर बनाएं जिसे इसके प्रोग्राम के रूप में
Gradle_Cleanerउपयोग gradle_clean.cmdकिया जाता है । केवल Run the builderअंतिम टैब में सेटिंग के रूप में सेट किया जाना चाहिए During a Clean। इस बिल्डर की अन्य सभी सेटिंग्स पहले बिल्डर के साथ ठीक वैसी ही होनी चाहिए। यह बिल्डर बिल्ड प्रक्रिया द्वारा बनाई गई कलाकृतियों की सफाई के लिए जिम्मेदार होगा जैसा कि नाम से पता चलता है।
HelloLambdaपरियोजना के नए बिल्डर्स

- प्रोजेक्ट पर राइट-क्लिक करें और चुनें
Export
- का चयन करें
Android -> Generate Gradle Build Filesऔर क्लिक करेंNext
- अगली विंडो में प्रोजेक्ट चुनें और क्लिक करें
Finish
- अपनी परियोजना के रूट फ़ोल्डर में जाओ और फ़ाइलों को हटाने
gradlewऔर gradlew.bat। gradleफोल्डर को भी डिलीट करें
- ग्रहण पर वापस जाएँ और
Project -> Cleanमेनू विकल्प चुनें। फॉर्म इस प्रकार भरें कि निम्नानुसार दिखाई दे:
Clean Project खिड़की

OKसफाई प्रक्रिया पूरी होने तक क्लिक करें और प्रतीक्षा करें
setContentViewअपनी MainActivityकक्षा में कार्य करने के लिए कॉल के ठीक बाद नीचे दिया गया जावा कोड स्निपेट जोड़ें :

- निम्नानुसार अनुभाग
build.gradleतक फ़ाइल की शुरुआत बदलें sourceCompatibility:

- प्रोजेक्ट पर राइट-क्लिक करें और
Properties -> Java Compilerविकल्प का चयन करें और सभी अनुपालन स्तर जावा 8 पर सेट करें । इससे ग्रहण नए जावा 8 कंस्ट्रक्शन जैसे लैम्ब्डा एक्सप्रेशन को पहचान सकेगा।
Noअधिसूचना विंडो में क्लिक करें
- प्रोजेक्ट पर राइट-क्लिक करें और चुनें
Build project। ग्रहण परियोजना का निर्माण शुरू कर देगा।
निर्माण प्रक्रिया


ग्रहण अब पहचानने R.javaऔर buildConfig.javaफ़ाइलों को करने में सक्षम होगा और यह कोई भी प्रदर्शित नहीं करेगा red dotsजो परियोजना की संसाधन फ़ाइलों से संबंधित त्रुटियों को दर्शाता है।
Run Configurationप्रोजेक्ट पर राइट-क्लिक करके और फिर चयन करके अपने Android लक्ष्य प्लेटफ़ॉर्म के लिए एक नया बनाएँ Run As -> Run Configurations। उदाहरण के लिए, यह डेमो एप्लिकेशन जीनोमेडी वीडी पर नीचे दिखाया गया है:
HelloLambda अनुप्रयोग

आप LogCatविंडो में देख सकते हैं कि साधारण लैम्ब्डा अभिव्यक्ति वाला कोड स्निपेट ठीक से काम करता है

स्रोत: Android डेवलपर टूल में जावा 8 लैम्बडा एक्सप्रेशंस का उपयोग करना