अँड्रॉइडसाठी मास्टरिंग ग्रेडलः ग्रॅडल कार्ये आणि कोटलिन

लेखक: Lewis Jackson
निर्मितीची तारीख: 11 मे 2021
अद्यतन तारीख: 1 जुलै 2024
Anonim
Android स्टुडिओ | ग्रेडल बिल्ड टूल | विहंगावलोकन, एकाधिक build.gradle फाइल्स का आहेत?
व्हिडिओ: Android स्टुडिओ | ग्रेडल बिल्ड टूल | विहंगावलोकन, एकाधिक build.gradle फाइल्स का आहेत?

सामग्री


जावा, एक्सएमएल किंवा कोटलिनऐवजी या ग्रॅडल बिल्ड फायली ग्रोव्हि-आधारित डोमेन-विशिष्ट भाषा (डीएसएल) वापरतात. आपण ग्रूव्हीशी परिचित नसल्यास, नंतर आम्ही या प्रत्येक ग्रेडल बिल्ड फायलींकडे लाइन-लाइन एक नजर घेणार आहोत, तर या लेखाच्या शेवटी आपण साध्या ग्रूव्हो कोड वाचण्यात आणि लिहिण्यास आरामदायक असाल.

आपण बर्‍याचदा किमान मॅन्युअल कॉन्फिगरेशनसह वापरू शकता अशा डीफॉल्ट सेटिंग्जचा सेट देऊन, आपले जीवन सुलभ करणे हे ग्रेडलचे उद्दीष्ट आहे - जेव्हा आपण आपला प्रकल्प तयार करण्यास तयार असाल, तेव्हा फक्त Android स्टुडिओचे "रन" बटण दाबा आणि ग्रॅडल बिल्ड प्रक्रिया सुरू करेल आपल्यासाठी.

ग्रॅडलच्या “कॉन्फिगरेशन ओव्हर कॉन्फिगरेशन” च्या पध्दती असूनही, डीफॉल्ट सेटिंग्ज आपल्या गरजा पूर्ण करीत नसल्यास, आपण सानुकूलित, कॉन्फिगरेशन आणि बिल्ड प्रक्रिया वाढवू शकता आणि अगदी विशिष्ट कार्ये करण्यासाठी ग्रेडल सेटिंग्ज चिमटा देखील घेऊ शकता.

ग्रेडल स्क्रिप्ट त्यांच्या स्वत: च्या फायलींमध्ये असल्यामुळे आपण आपल्या अनुप्रयोगाच्या स्त्रोत कोडला स्पर्श न करता कधीही आपल्या अनुप्रयोगाची तयार प्रक्रिया सुधारित करू शकता. या ट्यूटोरियल मध्ये, आम्ही फ्लेवर्स वापरुन बिल्ड प्रक्रिया सुधारित करू, रूपे तयार करू आणि सानुकूल ग्रेडल कार्य - सर्व याशिवाय कधीही आमच्या अनुप्रयोग कोडला स्पर्श करत आहे.


ग्रॅडल बिल्ड फायली एक्सप्लोर करीत आहे

प्रत्येक वेळी आपण एखादा प्रकल्प तयार करता तेव्हा, Android स्टुडिओ ग्रॅडल बिल्ड फायलींचा समान संग्रह व्युत्पन्न करेल. आपण विद्यमान प्रकल्प अँड्रॉइड स्टुडिओमध्ये आयात केला तरीही, ते होईल अजूनही या अचूक समान ग्रॅडल फायली तयार करा आणि त्या आपल्या प्रकल्पात जोडा.

ग्रॅडल आणि ग्रुव्हि सिंटॅक्सचे अधिक चांगले ज्ञान मिळविण्यासाठी, Android च्या प्रत्येक ग्रीड बिल्ड फायलींवर एक-एक ओळ पाहू.

1. सेटिंग्ज.gradle

सेटिंग्स अ‍ॅड्राडल फाईल असे आहे जेथे आपण “समावेश” कीवर्ड वापरून आपल्या अनुप्रयोगाचे सर्व मॉड्यूल्स नावानुसार परिभाषित कराल. उदाहरणार्थ, आपल्याकडे एखादा प्रकल्प "अॅप" आणि "सेकंडमोड्यूल" असेल तर आपली सेटिंग्ज उदा. फाइल यासारखे दिसतीलः

समाविष्ट करा: अॅप,: सेकंडमोड्यूल रूटप्रोजेक्ट.नाव = मायप्रोजेक्ट

आपल्या प्रोजेक्टच्या आकारानुसार ही फाईल बर्‍याच लांब असू शकते.

बिल्ड प्रक्रियेदरम्यान, ग्रॅडल आपल्या प्रकल्पाच्या सेटिंग्ज उदा. फाईल फाइलमधील सामग्रीची तपासणी करेल आणि त्यास बिल्ड प्रक्रियेत समाविष्ट करणे आवश्यक असलेल्या सर्व मॉड्यूल्सची ओळख पटवेल.


२. बिल्ड.gradle (प्रकल्प पातळी)

प्रोजेक्ट-स्तर बिल्ड.gradle फाईल आपल्या प्रोजेक्टच्या मूळ निर्देशिकेत आहे आणि त्यावर लागू असलेल्या सेटिंग्ज आहेत सर्व आपले मॉड्यूल (ग्रॅडलद्वारे "प्रकल्प" म्हणून देखील संदर्भित).

आपण या फाईलचा वापर आपल्या Android प्रकल्पात प्रत्येक मॉड्यूलवर लागू असलेल्या कोणत्याही प्लगइन, रेपॉजिटरी, अवलंबन आणि कॉन्फिगरेशन पर्याय परिभाषित करण्यासाठी केला पाहिजे. लक्षात घ्या की आपण प्रकल्प-स्तराच्या बिल्ड उदा. फाइल अंतर्गत कोणतीही ग्रेडल कार्ये परिभाषित केली असल्यास, वैयक्तिक मॉड्यूलसाठी संबंधित कार्ये संपादित करुन या कार्ये अधिलिखित करणे किंवा वाढविणे अद्याप शक्य आहे. विभाग-स्तर build.gradle फाईल.

एक प्रोजेक्ट-स्तरीय बिल्ड.gradle फाइल यासारखी दिसेल:

बिल्डस्क्रिप्ट {रिपॉझिटरीज {गूगल () जेंस्टर ()} अवलंबित्व {क्लासपाथ com.android.tools.build:gradle:3.5.0-alpha06 // टीप: आपल्या अनुप्रयोगाची अवलंबन येथे ठेवू नका; ते // संबंधित मॉड्यूल मध्ये बिल्ट्राड्राडल फायली}} ऑलप्रोजेक्ट्स {रिपॉझिटरीज oogle गूगल () जेंस्टर ()}} टास्क क्लीन (प्रकार: हटवा) root रूटप्रोजेक्ट.बिल्डडिर हटवा in

ही प्रकल्प-स्तरीय बिल्ड.gradle फाईल खालील ब्लॉक्समध्ये विभागली गेली आहे:

  • बिल्डस्क्रिप्ट. यामध्ये बिल्ड करण्यासाठी आवश्यक असलेल्या सेटिंग्ज आहेत.
  • रिपॉझिटरीज. आपल्या प्रकल्पातील अवलंबित्व शोधण्यात आणि त्या आपल्या बिल्डमध्ये उपलब्ध करुन देण्यासाठी ग्रेडल जबाबदार आहे. तथापि, सर्व अवलंबन एकाच रेपॉजिटरीमधून येत नाहीत, म्हणून आपल्या प्रकल्पातील अवलंबन पुनर्प्राप्त करण्यासाठी आपल्याला ग्रीडलने शोधत असलेल्या सर्व भांडारांची व्याख्या करणे आवश्यक आहे.
  • अवलंबित्व. या विभागात आपली प्लगइन अवलंबन आहेत जी आपल्या स्थानिक कॅशेमध्ये डाउनलोड आणि संग्रहित आहेत. आपण पाहिजे नाही या ब्लॉकमधील कोणत्याही मॉड्यूल अवलंबित्व परिभाषित करा.
  • सर्व प्रकल्प येथूनच आपण उपलब्ध असलेल्या भांडारांची व्याख्या कराल सर्व आपल्या प्रोजेक्टच्या मॉड्यूलचे.

3. बिल्ड.gradle (मॉड्यूल स्तर)

ही मॉड्यूल-स्तरीय बिल्ड.gradle फाईल आहे, जी आपल्या प्रकल्पातील प्रत्येक विभागात उपस्थित आहे. आपल्या Android प्रोजेक्टमध्ये एकाधिक मॉड्यूल आहेत, तर त्यात एकाधिक मॉड्यूल-स्तरीय बिल्ड.gradle फायली देखील असतील.

प्रत्येक मॉड्यूल-स्तरीय बिल्ड.gradle फाइलमध्ये आपल्या प्रोजेक्टचे पॅकेजचे नाव, आवृत्तीचे नाव आणि आवृत्ती कोड तसेच या विशिष्ट मॉड्यूलसाठी किमान आणि लक्ष्य एसडीके असतात.

मॉड्यूल-स्तरीय बिल्ड.gradle फाइलमध्ये बिल्ड निर्देश आणि अवलंबित्वाचा स्वतःचा एक अनोखा सेट देखील असू शकतो. उदाहरणार्थ, आपण वेअर ओएस घटकासह एखादा अनुप्रयोग तयार करीत असल्यास आपल्या Android स्टुडिओ प्रोजेक्टमध्ये एक वेगळा स्मार्टफोन / टॅब्लेट मॉड्यूल आणि वेअर मॉड्यूल असेल - कारण ते पूर्णपणे भिन्न डिव्हाइस लक्ष्य करीत आहेत, यासह या मॉड्यूल्समध्ये जोरदार भिन्नता आहे अवलंबित्व!

मूलभूत मॉड्यूल-स्तरीय बिल्ड.gradle फाईल सामान्यत: यासारखी दिसते:

प्लगइन लागू करा. getDefaultProguardFile (proguard-android-optize.txt), proguard-rules.pro {} depend dependants {अंमलबजावणी fileTree (dir: libs, समाविष्ट:) अंमलबजावणी androidx.appcompat: appcompat: 1.0.2 अंमलबजावणी androidx.constraintlayout: 1.1. 3 चाचणी अंमलबजावणी जुनिट: जुनिट: 4..१२ अँड्रॉइडटेस्टइंप्लिमेन्टेशन एंड्रॉइडएक्स.वेस्ट.एक्सट: जुनिट: १.१.० एंड्रॉइडटेस्टइंप्लिकेशन एंड्रॉइडएक्स.टेस्ट.एस्प्रेसो: एस्प्रेसो-कोर: 1.१.१}

चला या विभागांकडे बारकाईने नजर टाकूयाः

  • प्लगइन लागू करा. हे मॉड्यूल तयार करण्यासाठी आवश्यक असलेल्या प्लगइनची सूची आहे. अँड्रॉइड-विशिष्ट बिल्ड प्रक्रिया सेट करण्यासाठी com.android.application प्लगइन आवश्यक आहे, म्हणून हे आपोआप जोडले जाईल.
  • Android. येथेच आपण मॉड्यूलचे सर्व प्लॅटफॉर्म-विशिष्ट पर्याय ठेवले पाहिजेत.
  • compileSdkVersion. हे मॉड्यूल संकलित केलेले हे API स्तर आहे. आपण या मूल्यापेक्षा उच्च असलेल्या API ची वैशिष्ट्ये वापरू शकत नाही.
  • buildToolsVersion. हे कंपाईलरची आवृत्ती सूचित करते. ग्रेडल .0.०.० आणि उच्च मध्ये, बिल्डटूलवर्जन पर्यायी आहे; आपण बिल्डटूल वर्जन मूल्य निर्दिष्ट न केल्यास Android स्टुडिओ बिल्ड साधनांच्या सर्वात अलीकडील आवृत्तीमध्ये डीफॉल्ट होईल.
  • defaultConfig. यात असे पर्याय आहेत जे आपल्या अॅपच्या सर्व बिल्ड आवृत्त्यांना लागू केले जातील, जसे की आपले डीबग आणि रीलीझ बिल्ड.
  • अनुप्रयोगआयडी. आपल्या अनुप्रयोगाचा हा अनोखा अभिज्ञापक आहे.
  • minSdkVersion. हे मापदंड हे मॉड्यूल समर्थन देणारी निम्नतम API पातळी परिभाषित करते.
  • लक्ष्यSdkVersion. आपल्या अनुप्रयोगाविरुद्ध चाचणी केली गेलेली ही कमाल API पातळी आहे. तद्वतच, आपण आपल्या नवीनतम अनुप्रयोगाचा वापर करून आपल्या अनुप्रयोगाची चाचणी घ्यावी, ज्याचा अर्थ असा आहे की लक्ष्यशिक्षक मूल्य नेहमीच कंपाईलएसडीकेव्हर्शन मूल्याच्या समान असेल.
  • आवृत्तीकोड. आपल्या अनुप्रयोग आवृत्तीसाठी हे एक संख्यात्मक मूल्य आहे.
  • versionName ही एक वापरकर्ता-अनुकूल स्ट्रिंग आहे जी आपल्या अनुप्रयोग आवृत्तीचे प्रतिनिधित्व करते.
  • बिल्डटाइप्स. डीफॉल्टनुसार, Android दोन बिल्ड प्रकारांना समर्थन देते: डीबग आणि रीलीझ. आपल्या अनुप्रयोगाच्या प्रकार-विशिष्ट सेटिंग्ज निर्दिष्ट करण्यासाठी आपण “डीबग” आणि “रीलिझ” अवरोध वापरू शकता.
  • अवलंबित्व येथेच आपण या मॉड्यूलवर अवलंबून असलेल्या कोणत्याही लायब्ररीची व्याख्या कराल.

आपल्या प्रकल्पाचे अवलंबन घोषित करीत आहे: स्थानिक लायब्ररी

एक किंवा अधिक प्रकल्प अवलंबन जोडून आपण आपल्या Android प्रकल्पांसाठी अतिरिक्त कार्यक्षमता उपलब्ध करू शकता. ही अवलंबित्व स्थानिक असू शकते किंवा ती दूरस्थ रेपॉजिटरीमध्ये संग्रहित केली जाऊ शकते.

स्थानिक JAR फाईलवर अवलंबित्व घोषित करण्यासाठी आपल्याला ते JAR आपल्या प्रोजेक्टच्या “libs” निर्देशिकेत जोडण्याची आवश्यकता आहे.

त्यानंतर आपण या फाईलवर अवलंबन घोषित करण्यासाठी मॉड्यूल-लेव्हल बिल्ड.gradle फाईल सुधारित करू शकता. उदाहरणार्थ, आम्ही येथे “मायलिब्रेरी” जारवर अवलंबन घोषित करीत आहोत.

अंमलबजावणी फायली (libs / mylibrary.jar)

वैकल्पिकरित्या, जर आपल्या “लिब्स” फोल्डरमध्ये बर्‍याच जार आहेत, तर मग हे स्पष्ट करणे सोपे आहे की आपला प्रकल्प “लिब” फोल्डरमध्ये असलेल्या सर्व फाईल्सवर अवलंबून आहे, उदाहरणार्थः

अंमलबजावणी फाइल वृक्ष (dir: libs, समाविष्ट करा:)

बिल्ड अवलंबित्व समाविष्ट करत आहे: रिमोट रिपॉझिटरीज

जर एखादी लायब्ररी रिमोट रिपॉझिटरीमध्ये असेल तर आपल्याला पुढील चरण पूर्ण करण्याची आवश्यकता आहे:

  • हे अवलंबन कोठे आहे हे रेपॉजिटरी परिभाषित करा.
  • वैयक्तिक अवलंबन घोषित करा.

रिमोट रेपॉजिटरीशी कनेक्ट करत आहे

पहिली पायरी, आपल्या प्रकल्पातील सर्व अवलंबन पुनर्प्राप्त करण्यासाठी कोणत्या रेपॉजिटरी (किंवा रेपॉजिटरी) ची तपासणी करणे आवश्यक आहे हे ग्रीडलला सांगत आहे. उदाहरणार्थ:

रिपॉझिटरीज oogle गूगल () जेंस्टर ()}}

येथे, “जेन्स्टर ()” लाइन हे सुनिश्चित करते की ग्रिडल जेकेंटर रेपॉजिटरी तपासेल, जी बिंट्रे येथे होस्ट केलेले एक विनामूल्य, सार्वजनिक भांडार आहे.

वैकल्पिकरित्या, आपण किंवा आपली संस्था वैयक्तिक रेपॉजिटरीची देखभाल करत असल्यास आपण या भांडारांची URL आपल्या अवलंबन घोषणेत जोडावी. भांडार संकेतशब्द-संरक्षित असल्यास, नंतर आपणास आपली लॉगिन माहिती देखील प्रदान करण्याची आवश्यकता असेल, उदाहरणार्थः

रिपॉझिटरीज {mavenCentral () maven {// लक्ष्य URL कॉन्फिगर करा // url "http://repo.mycompany.com/myprivaterepo" ven maven {क्रेडेंशियल्स {वापरकर्तानाव माझा वापरकर्तानाव संकेतशब्द myPassword} url "http://repo.mycompany.com / myprivaterepo "

एकाधिक रेपॉझिटरीमध्ये जर अवलंबन अस्तित्वात असेल तर प्रत्येक रेपॉजिटरीचे वय आणि स्थिर आवृत्ती या घटकांवर आधारित या ग्रँडल या अवलंबित्वाची “सर्वोत्कृष्ट” आवृत्ती निवडेल.

दूरस्थ अवलंबित्व घोषित करीत आहे

पुढील चरण आपल्या मॉड्यूल-स्तरीय बिल्ड.gradle फाईलमधील अवलंबित्व घोषित करीत आहे. आपण यापैकी कोणतीही माहिती “अवलंबन” ब्लॉकमध्ये जोडा:

  • अंमलबजावणी. जेव्हा आपण आपला प्रकल्प तयार कराल तेव्हा आपणास हे एक सामान्य अवलंबून असेल. “अंमलबजावणी” अवलंबित्व संपूर्ण अस्तित्त्वात असेल सर्व आपल्या बांधणी
  • प्रशंसापत्र हे एक अवलंबन आहे जे आपल्या अनुप्रयोगाचे चाचणी स्रोत संकलित करणे आणि जेव्हीएम-आधारित चाचण्या चालविणे आवश्यक आहे. जेव्हा आपण “प्रमाणपत्र” म्हणून अवलंबिता म्हणून चिन्हांकित करता तेव्हा सामान्य बांधकाम दरम्यान या अवलंबित्वसाठी कार्ये चालवावी लागणार नाहीत हे ग्रीडलला कळेल, जे बिल्ड टाइम कमी करण्यात मदत करू शकेल.
  • Androidtestimplementation. डिव्हाइसवर चाचण्या चालवताना ही एक अवलंबित्वाची आवश्यकता असते, उदाहरणार्थ एस्प्रेसो फ्रेमवर्क ही एक सामान्य “Androidtestimplementation” आहे.

आम्ही उपरोक्त कीवर्डपैकी एक वापरून दूरस्थ अवलंबित्व परिभाषित करतो, त्यानंतर अवलंबिताचा गट, नाव आणि आवृत्ती गुणधर्म, उदाहरणार्थः

अवलंबित्व {अंमलबजावणी फाइलट्री (डीआर: लिब्स, समाविष्ट:) अंमलबजावणी androidx.appcompat: appcompat: 1.0.2 अंमलबजावणी androidx.constraintlayout: प्रतिबंध androidTestImplementation androidx.test.espresso: एस्प्रेसो-कोर: 1.१.१}

एकाधिक एपीके व्युत्पन्न करीत आहे: बिल्ड व्हेरिएंट कसे तयार करावे

कधीकधी आपल्याला आपल्या अनुप्रयोगाची अनेक आवृत्त्या तयार करण्याची आवश्यकता असू शकते. उदाहरणार्थ, आपण कदाचित विनामूल्य आवृत्ती आणि सशुल्क आवृत्ती रिलीझ करू शकता, ज्यात काही अतिरिक्त वैशिष्ट्ये समाविष्ट आहेत.

हे एक बिल्ड कार्य आहे जे ग्रॅडल आपल्याला मदत करू शकते, म्हणून एकाच प्रकल्पामधून एकाधिक APK तयार करण्यासाठी आपण बिल्ड प्रक्रिया कशी सुधारित करायची ते पाहूयाः

  • आपली तार.एक्सएमएल फाइल उघडा आणि आपली मूळ अनुप्रयोग नावाची तार हटवा.
  • पुढे, आपण तयार करू इच्छित असलेल्या प्रत्येक उत्पादनाच्या चवची नावे परिभाषित करा; या प्रसंगी, मी वापरत आहे:

माझे विनामूल्य अॅप माझे सशुल्क अ‍ॅप

  • आपली AndroidManLive.xML फाईल उघडा आणि Android पुनर्स्थित करा: लेबल = "@ स्ट्रिंग / अ‍ॅप_नाव" यासह:

android: label = "$ N appName}"

  • आपली मॉड्यूल-स्तरीय बिल्ड.gradle फाईल उघडा आणि खालील “Android” ब्लॉकमध्ये जोडा:

फ्लेवरडिमेन्शन्स "मोड" प्रोडक्टफ्लाव्हर्स {फ्री-डाइमेंशन "मोड" Iप्लिकेशनआइडसफिक्स ".फ्री" मॅनिफेस्टप्लेसहोल्डर्स =} पेड {डाइमेंशन "मोड" Iप्लिकेशनआइडस्फीक्स ".पेड" मॅनिफेस्टप्लेसधारक =}}}

येथे काय घडत आहे ते खाली टाकूयाः

  • चव परिमाण. Android प्लगइन भिन्न परिमाणांमधील स्वाद एकत्र करून बिल्ड रूपे तयार करते. येथे आम्ही आमच्या अॅपच्या “विनामूल्य” आणि “सशुल्क” आवृत्त्यांचा समावेश असलेला चव परिमाण तयार करीत आहोत. वरील कोडच्या आधारे, ग्रॅडल चार बिल्ड प्रकार तयार करेलः पेडडबग, पेडरेलीझ, फ्रीडिबग आणि फ्रीरेलीज.
  • productFlavors. हे स्वाद आणि त्यांच्या सेटिंग्जची सूची निर्दिष्ट करते, जे वरील कोडमध्ये “देय” आणि “विनामूल्य” आहेत.
  • विनामूल्य / सशुल्क आमच्या दोन उत्पादनांच्या स्वादांची नावे ही आहेत.
  • परिमाण. आम्हाला "आयाम" मापदंड मूल्य निर्दिष्ट करणे आवश्यक आहे; या प्रसंगी मी “मोड” वापरत आहे.
  • Iप्लिकेशनआयडीसफिक्स. आम्हाला आमच्या अ‍ॅपची अनेक आवृत्त्या तयार करायची असल्याने आम्हाला प्रत्येक एपीकेला एक अद्वितीय अ‍ॅप अभिज्ञापक देणे आवश्यक आहे.
  • मॅनिफेस्ट प्लेसहोल्डर्स. प्रत्येक प्रकल्पात आपल्या प्रकल्पाच्या कॉन्फिगरेशनबद्दल महत्वाची माहिती असलेली एकच मॅनिफेस्ट फाइल असते. एकाधिक बिल्ड व्हेरिएंट तयार करताना, आपण सामान्यत: बिल्ड वेळी यापैकी काही मॅनिफेस्ट गुणधर्म सुधारित करू इच्छिता. आपण प्रत्येक बिल्ड प्रकारासाठी अद्वितीय मॅनिफेस्ट प्रविष्ट्या निर्दिष्ट करण्यासाठी ग्रॅडल बिल्ड फायली वापरू शकता, जे नंतर आपल्या मॅनिफेस्टमध्ये बिल्ड वेळेत समाविष्ट केल्या जातील. वरील कोडमध्ये, ग्रॅडल आमच्या अ‍ॅपची विनामूल्य किंवा सशुल्क आवृत्ती तयार करीत आहे की नाही यावर अवलंबून आम्ही “अ‍ॅपनाव” मूल्य सुधारित करीत आहोत.

सानुकूल ग्रेडल कार्य तयार करत आहे

कधीकधी आपल्याला ग्रीडल वापरुन बिल्ड प्रक्रिया सानुकूलित करण्याची आवश्यकता असू शकते कार्ये.

कार्य म्हणजे क्रॅडल्स कार्यान्वित केल्या जाणार्‍या क्रियांचा संग्रहित नावाचा संग्रह आहे, उदाहरणार्थ जावॅडोक निर्माण करणे. ग्रॅडल डीफॉल्टनुसार बर्‍याच कार्यांचे समर्थन करते, परंतु आपण सानुकूल कार्ये देखील तयार करू शकता, जर आपल्याकडे बिल्ड निर्देशांचा एक विशिष्ट संच मनात असेल तर आपण त्यास सुपूर्त करू शकता.

या विभागात, आम्ही एक सानुकूल ग्रेडल कार्य तयार करीत आहोत जे आमच्या प्रकल्पातील सर्व बिल्ड प्रकारांमध्ये (पेडडबग, पेडरेलीज, फ्रीडबग आणि फ्री रिलिज) पुनरावृत्ती करेल, एक तारीख आणि वेळ मुद्रांक तयार करेल आणि नंतर प्रत्येक व्युत्पन्न एपीकेवर ही माहिती जोडेल.

आपली मॉड्यूल-स्तरीय बिल्ड.gradle फाईल उघडा आणि खालील जोडा:

टास्क Dडएंडटाइम () {// सर्व आऊटपुट बिल्ड व्हेरिएंट्सद्वारे आयडेरेट करा // android.applicationVariants.all {प्रकार -> // सर्व एपीके फायलींमध्ये फरक मिळवा // variant.outputs.all {आउटपुट -> // उदाहरण तयार करा वर्तमान तारीख आणि वेळ निर्दिष्ट केलेल्या // डीफ डेटएंडटाइम = नवीन तारीख (). स्वरूपात ("यॉय-एमएम-डीडी: एचएच-मिमी") // ही माहिती एपीकेच्या फाइलनाव // डीफ फाइलनाम = रूपात जोडा. नाव + "_" + तारीखआॅन्डटाइम + ".apk" आउटपुट.आउटपुटफाइलनाव = फाइलनाव}}}

पुढे, आम्हाला ग्रीडल सांगण्याची आवश्यकता आहे कधी हे कार्य कार्यान्वित केले पाहिजे. बांधकाम दरम्यान, ग्रीडल डाउनलोड करण्यासाठी आवश्यक असलेल्या सर्व गोष्टी आणि त्या अंमलात आणण्यासाठी आवश्यक असलेल्या सर्व कार्ये ओळखतात आणि त्या निर्देशित अ‍ॅसायक्लिक ग्राफ (डीएजी) मध्ये व्यवस्थित करतात. त्यानंतर ग्रॅडल त्याच्या डीएजीमध्ये परिभाषित आदेशानुसार ही सर्व कार्ये कार्यान्वित करेल.

माझ्या अ‍ॅपसाठी, मी “जेव्हा रेडी” पद्धत वापरणार आहे, जी डीएजीची लोकसंख्या तयार झाल्यावर आमचे कार्य कॉल करेल याची खात्री देते आणि ग्रॅडल आपली कार्ये करण्यास प्रारंभ करण्यास तयार आहे.

आपल्या मॉड्यूल-स्तरीय बिल्ड उदा. फाइलमध्ये खालील जोडा:

// या कार्याची अंमलबजावणी करा // ग्रेडल.टॅस्कग्राफ.व्हीनरेडी {addDateAndTime}

चला आमच्या सानुकूल कार्य करू आणि ग्रॅडल कमांडद्वारे हा प्रकल्प बनवून आमचा चाचणी चा प्रकार बनवा.

ग्रेडल रॅपरसह आपला प्रकल्प तयार करीत आहे

आपण ग्रॅडल रॅपर (“ग्रेडल्यू”) वापरुन ग्रेडल कमांड जारी करता. ग्रिडल बिल्ड सुरू करण्याचा हा स्क्रिप्ट हा एक पसंतीचा मार्ग आहे, कारण यामुळे आपल्या इमारतीच्या आवृत्तीतून बिल्डची अंमलबजावणी स्वतंत्र होईल. आपण ग्रॅडलची समान आवृत्ती स्थापित केलेली नसलेल्या इतरांसह सहकार्य करत असल्यास हे वेगळेपण उपयुक्त ठरू शकते.

आपल्या ग्रॅडल रॅपर कमांड जारी करताना, आपण युनिक्स-सारख्या ऑपरेटिंग सिस्टमसाठी, “मॅटॉस” आणि विंडोजसाठी “ग्रेडलव.बॅट” वापर “ग्रेडल्यू” वापराल. माझ्याकडे मॅक आहे, म्हणून मी “ग्रेडल्यू” कमांड वापरत आहे.

आपण Android स्टुडिओच्या आतून ग्रेडल आदेश जारी करू शकता:

  • Android स्टुडिओ टूलबारमध्ये, “पहा> साधने विंडोज> टर्मिनल.” निवडा. यामुळे IDE विंडोच्या खालच्या बाजूला टर्मिनल पॅनेल उघडेल.
  • टर्मिनलमध्ये पुढील आज्ञा प्रविष्ट करा:

./gradlew build

Android स्टुडिओने यासारखे काहीतरी दिसावे:

  • आपल्या कीबोर्डवरील “एंटर” की दाबा. ग्रॅडल आता आपला प्रकल्प तयार करेल.

आपल्या प्रकल्पातील अ‍ॅप / बिल्ड / आउटपुट / एपीके निर्देशिकेत ग्रेडल व्युत्पन्न केलेली सर्व APKs संग्रहित करते, म्हणून या निर्देशिकेत नॅव्हिगेट करा. “एपीके” फोल्डरमध्ये अनेक फोल्डर्स आणि सबफोल्डर्स असावेत; आपल्या प्रत्येक बिल्ड प्रकारांसाठी ग्रेडलने एक APK व्युत्पन्न केला आहे हे सुनिश्चित करा आणि प्रत्येक फाईलमध्ये योग्य तारीख आणि वेळ माहिती जोडली गेली आहे हे सुनिश्चित करा.

इतर कोणती ग्रॅडल कार्ये उपलब्ध आहेत?

आपण तयार करू शकणार्‍या कोणत्याही सानुकूल कार्यांव्यतिरिक्त, ग्रीडल बॉक्सच्या बाहेर नसलेल्या पूर्वनिर्धारित कामांच्या यादीस समर्थन देते. आपण कोणती कार्ये उपलब्ध आहेत हे पाहण्यास उत्सुक असल्यास, तरः

  • Android स्टुडिओची टर्मिनल विंडो आधीपासूनच उघडलेली नसल्यास (Android स्टुडिओ टूलबार वरून "पहा> साधने विंडोज> टर्मिनल" निवडून) उघडा.
  • टर्मिनलमध्ये खालील टाइप करा:

./gradlew -q कार्ये

  • आपल्या कीबोर्डवरील “एंटर” की दाबा.

हे “टास्क” टास्क आता कार्यान्वित होईल आणि काही क्षणानंतर टर्मिनल या प्रकल्पासाठी उपलब्ध असलेल्या सर्व कामांची यादी दर्शवेल, प्रत्येक टास्कच्या छोट्या वर्णनाने पूर्ण होईल.

ग्रेडलमधून अधिक मिळवित आहे: प्लगइन जोडणे

पूर्व-स्थापित बर्‍याच प्लगइन्ससह ग्रेडल शिप्स परंतु आपण नवीन प्लगइन जोडून ग्रेडल पुढे वाढवू शकता. हे प्लगइन्स आपल्या Android प्रोजेक्टसाठी नवीन कार्ये उपलब्ध करतात, उदाहरणार्थ जावा प्लगइनमध्ये अशी कामे समाविष्ट आहेत जी आपल्याला जावा स्त्रोत कोड संकलित करण्यास, युनिट चाचण्या चालविण्यास आणि एक JAR फाईल तयार करण्यास परवानगी देतात, जसे की “कंपाईलजावा,” “कंपाईल टेक्स्ट,” “जार,” “जावाडॉक,” आणि “क्लीन”.

एक प्लगइन लागू करण्यासाठी, आपल्या मॉड्यूल-स्तरीय बिल्ड.gradle फाइलमध्ये "प्लगइन लागू करा" घोषणा जोडा आणि त्यानंतर प्लगइनचे नाव. उदाहरणार्थ, आम्ही येथे जावा प्लगइन वापरत आहोत:

प्लगइन लागू करा: जावा

कोणती प्लगइन उपलब्ध आहेत हे पाहण्याची आपल्याला उत्सुकता असल्यास, नंतर ग्रॅडल प्लगइनची विस्तृत नोंदणी प्रदान करणारे ग्रॅडल प्लगइन शोध तपासा.

ग्रॅडल कोटलिन डीएसएल

डीफॉल्टनुसार, आपण ग्रोव्हिए डीएसएलचा वापर करून आपल्या ग्रॅडल बिल्ड स्क्रिप्ट लिहाल परंतु आपण एंड्रॉइड विकासासाठी कोटलिन स्वीकारलेल्या बर्‍याच विकसकांपैकी असाल तर त्याऐवजी आपण आपल्या बिल्ड स्क्रिप्ट्स कोटलिनमध्ये लिहिण्यास प्राधान्य देऊ शकता.

ग्रोव्हीच्या विपरीत, कोटलिन ही एक स्टॅटिकली टाइप केलेल्या प्रोग्रामिंग भाषा आहे, म्हणून आपण स्विच केल्यास आपल्या तयार केलेल्या फायली Android स्टुडिओच्या स्वयंपूर्णता आणि स्त्रोत कोड नेव्हिगेशन वैशिष्ट्यांसह सुसंगत असतील. तसेच, ग्रोव्हिहून कोटलिनकडे जाण्याचा अर्थ असा आहे की आपण आपल्या प्रोजेक्टमध्ये समान प्रोग्रामिंग भाषा वापरत आहात, जी विकास अधिक सुलभ बनवू शकते - विशेषत: जर आपण ग्रूव्हीशी जास्त प्रमाणात परिचित नस असाल तर!

आपण कोटलिनमध्ये आपले बिल्ड लॉजिक लिहिण्यास प्रारंभ करू इच्छित असाल तर आपल्याला ग्रॅडल कोटलिन डीएसएल सेट अप करण्याची आणि स्थलांतर मार्गदर्शकातील सूचनांचे अनुसरण करणे आवश्यक आहे.

लपेटणे

या लेखामध्ये आम्ही Android स्टुडिओचे बिल्ड ऑटोमेशन आणि अवलंबन व्यवस्थापन साधन एक्सप्लोर केले. ग्रेडल आउट-ऑफ-द बॉक्स तयार प्रक्रिया कशी स्वयंचलित करते आणि सानुकूल ग्रेडल कार्ये तयार करून आणि एकाच प्रकल्पातून एकाधिक बिल्ड रूपे व्युत्पन्न करून आपल्या प्रकल्पाच्या ग्रेडल बिल्ड फायली संपादित करून आपण बिल्ड प्रक्रिया कशी सुधारित करू शकता हे आम्ही तपासले.

आपण Android बिल्ड प्रक्रियेचे इतर भाग स्वयंचलित करण्यासाठी ग्रेडल वाढविले आहे? आम्हाला खाली टिप्पण्या कळू द्या!

अद्यतन, 26 एप्रिल, 2019 (4:11 पंतप्रधान ET): असे दिसते आहे की सोनीचा मोबाइल विभाग आमच्या विचारांपेक्षा वाईट प्रदर्शन करीत आहे, Q4 2018 साठी सोनीच्या वित्तीय नुसार....

सॅमसंगला पाहिजे तितके गॅलेक्सी एस 9 विकत नसावेत, परंतु सोनीच्या परिस्थितीत जितकी गंभीर परिस्थिती आहे तितकी ती तितकी गंभीर नाही. सोनीच्या अलीकडेच प्रकाशित कमाईचा अहवाल जेव्हा कंपनीला स्मार्टफोन बाजारात...

नवीन प्रकाशने