आप वास्तव में उपयोग कर सकते हैं 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_HOME
JDK 8 होम फ़ोल्डर के पथ के मूल्य के साथ एक नया वातावरण चर बनाएं
JAVA8_HOME
JDK 8 होम फ़ोल्डर के पथ के मान के साथ फिर से एक नया वातावरण चर बनाएं
JAVA7_HOME
JDK 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 लैम्बडा एक्सप्रेशंस का उपयोग करना