एंड्रॉइड के लिए मास्टरिंग ग्रेडल: ग्रेड कार्यों और कोटलिन

लेखक: Lewis Jackson
निर्माण की तारीख: 11 मई 2021
डेट अपडेट करें: 1 जुलाई 2024
Anonim
New Schlage NDE Electronic Access Control Lock | Mr. Locksmith Video
वीडियो: New Schlage NDE Electronic Access Control Lock | Mr. Locksmith Video

विषय


जावा, एक्सएमएल या कोटलिन के बजाय, ये ग्रैड बिल्ड फाइलें ग्रूवी-आधारित डोमेन-विशिष्ट भाषा (डीएसएल) का उपयोग करती हैं। यदि आप ग्रूवी से परिचित नहीं हैं, तो हम इन ग्रैड बिल्ड फ़ाइलों में से प्रत्येक पर एक लाइन-बाय-लाइन नज़र रखेंगे, इसलिए इस लेख के अंत तक आप सरल ग्रूवी कोड को पढ़ने और लिखने के साथ सहज होंगे।

ग्रेडल का लक्ष्य आपके जीवन को आसान बनाना है, डिफ़ॉल्ट सेटिंग्स का एक सेट प्रदान करके जिसे आप अक्सर न्यूनतम मैनुअल कॉन्फ़िगरेशन के साथ उपयोग कर सकते हैं - जब आप अपनी परियोजना बनाने के लिए तैयार होते हैं, तो बस एंड्रॉइड स्टूडियो के "रन" बटन को दबाएं और ग्रेडल बिल्ड प्रक्रिया शुरू कर देगा। तुम्हारे लिए।

ग्रैगल के "कॉन्फ़िगरेशन पर कन्वेंशन" दृष्टिकोण के बावजूद, यदि इसकी डिफ़ॉल्ट सेटिंग्स आपकी आवश्यकताओं को पूरा नहीं करती हैं, तो आप निर्माण प्रक्रिया को अनुकूलित, कॉन्फ़िगर और विस्तारित कर सकते हैं और यहां तक ​​कि बहुत विशिष्ट कार्यों को करने के लिए ग्रैडल सेटिंग्स को भी मोड़ सकते हैं।


चूँकि ग्रैडल स्क्रिप्ट्स अपनी फ़ाइलों में समाहित हैं, आप अपने आवेदन के स्रोत कोड को छूने के बिना, किसी भी समय अपने आवेदन की निर्माण प्रक्रिया को संशोधित कर सकते हैं। इस ट्यूटोरियल में, हम बिना फ्लेवर, बिल्ड वेरिएंट और एक कस्टम ग्रैडल कार्य - सभी के बिना बिल्ड प्रक्रिया को संशोधित कर रहे हैं कभी हमारे आवेदन कोड को छूना।

ग्रैडल निर्माण फ़ाइलों की खोज

हर बार जब आप एक प्रोजेक्ट बनाते हैं, तो एंड्रॉइड स्टूडियो ग्रैड बिल्ड फ़ाइलों का एक ही संग्रह उत्पन्न करेगा। यहां तक ​​कि अगर आप एक मौजूदा प्रोजेक्ट को एंड्रॉइड स्टूडियो में आयात करते हैं, तो भी यह नहीं होगा फिर भी इन सटीक समान ग्रेड फ़ाइलों को बनाएँ, और उन्हें अपनी परियोजना में जोड़ें।

ग्रैडल और ग्रूवी सिंटैक्स की बेहतर समझ पाने के लिए, आइए एंड्रॉइड के ग्रैड बिल्ड फ़ाइलों में से प्रत्येक पर एक लाइन-बाय-लाइन नज़र डालें।

1. settings.gradle

सेटिंग.ग्रेड फ़ाइल वह है जिसमें आप "शामिल" कीवर्ड का उपयोग करके अपने सभी एप्लिकेशन के मॉड्यूल को नाम से परिभाषित करेंगे। उदाहरण के लिए, यदि आपके पास एक "ऐप" और "सेकंडमॉडल" से मिलकर एक प्रोजेक्ट था, तो आपकी सेटिंग्स .ग्रेड फ़ाइल कुछ इस तरह दिखाई देगी:


शामिल करें: ऐप,: सेकंडमॉडल rootProject.name = MyProject

आपके प्रोजेक्ट के आकार के आधार पर, यह फ़ाइल काफी लंबी हो सकती है।

निर्माण प्रक्रिया के दौरान, ग्रैडल आपकी परियोजना की सेटिंग की सामग्री की जाँच करेगा। फ़ाइल को बनाएँ और उन सभी मॉड्यूल की पहचान करें जिन्हें उसे निर्माण प्रक्रिया में शामिल करने की आवश्यकता है।

2. build.gradle (परियोजना स्तर)

प्रोजेक्ट-स्तर build.gradle फ़ाइल आपकी प्रोजेक्ट की रूट डायरेक्टरी में स्थित है और इसमें ऐसी सेटिंग हैं जिन्हें लागू किया जाएगा सब आपके मॉड्यूल (ग्रैडल द्वारा "प्रोजेक्ट्स" भी कहा जाता है)।

आपको इस फ़ाइल का उपयोग किसी भी प्लगइन्स, रिपॉजिटरी, निर्भरता और कॉन्फ़िगरेशन विकल्पों को परिभाषित करने के लिए करना चाहिए जो आपके एंड्रॉइड प्रोजेक्ट में हर मॉड्यूल पर लागू होते हैं। ध्यान दें कि यदि आप प्रोजेक्ट-लेवल बिल्ड.ग्रेड फ़ाइल के भीतर किसी भी ग्रेडल कार्यों को परिभाषित करते हैं, तो उनके अनुरूप संपादन करके, व्यक्तिगत मॉड्यूल के लिए इन कार्यों को ओवरराइड या विस्तारित करना अभी भी संभव है। मॉड्यूल-स्तर build.gradle फ़ाइल।

एक सामान्य प्रोजेक्ट-स्तर build.gradle फ़ाइल कुछ इस तरह दिखाई देगी:

builddscript {रिपॉजिटरी {google () jcenter ()} निर्भरताएं {classpath com.android.tools.build:gradle:3.5.0-alpha06 // नोट: अपने आवेदन की निर्भरता यहां न रखें; वे व्यक्तिगत मॉड्यूल build.gradle फ़ाइलों में // // होते हैं}} allprojects {repositories {google () jcenter ()}} कार्य क्लीन (टाइप करें: हटाएं) {हटाएँ rootProject.buildDir}

यह प्रोजेक्ट-लेवल बिल्ड.ग्रेड फ़ाइल को निम्न ब्लॉक्स में विभाजित किया गया है:

  • Buildscript। इसमें ऐसी सेटिंग्स हैं जो बिल्ड को निष्पादित करने के लिए आवश्यक हैं।
  • डेटा संग्रह स्थान। ग्रेड आपकी परियोजना की निर्भरता का पता लगाने और उन्हें आपके निर्माण में उपलब्ध कराने के लिए जिम्मेदार है। हालाँकि, सभी निर्भरताएँ एक ही रिपॉजिटरी से नहीं आती हैं, इसलिए आपको अपनी परियोजना की निर्भरता को पुनः प्राप्त करने के लिए ग्रैडल को उन सभी रिपॉजिटरी को परिभाषित करने की आवश्यकता होगी, जिन्हें खोजना चाहिए।
  • निर्भरता। इस अनुभाग में आपकी प्लगइन निर्भरताएँ हैं, जो आपके स्थानीय कैश में डाउनलोड और संग्रहीत हैं। तुम्हे करना चाहिए नहीं इस ब्लॉक के भीतर किसी भी मॉड्यूल निर्भरता को परिभाषित करें।
  • Allprojects। यह वह जगह है जहां आप उन रिपॉजिटरी को परिभाषित करेंगे जो उपलब्ध होनी चाहिए सब आपके प्रोजेक्ट के मॉड्यूल के लिए

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

यह मॉड्यूल-लेवल बिल्ड.ग्रेड फ़ाइल है, जो आपके पूरे प्रोजेक्ट में प्रत्येक मॉड्यूल में मौजूद है। यदि आपके एंड्रॉइड प्रोजेक्ट में कई मॉड्यूल हैं, तो इसमें कई मॉड्यूल-लेवल बिल्ड.ग्रेड फ़ाइलें भी शामिल होंगी।

प्रत्येक मॉड्यूल-स्तर build.gradle फ़ाइल में आपके प्रोजेक्ट का पैकेज का नाम, संस्करण का नाम और संस्करण कोड, साथ ही इस विशेष मॉड्यूल के लिए न्यूनतम और लक्ष्य SDK है।

एक मॉड्यूल-स्तर build.gradle फ़ाइल का निर्माण निर्देशों और निर्भरताओं का अपना अनूठा सेट भी हो सकता है। उदाहरण के लिए, यदि आप वेयर ओएस घटक के साथ एक एप्लिकेशन बना रहे हैं, तो आपकी एंड्रॉइड स्टूडियो परियोजना में एक अलग स्मार्टफोन / टैबलेट मॉड्यूल और एक वेयर मॉड्यूल शामिल होगा - चूंकि वे पूरी तरह से अलग-अलग उपकरणों को लक्षित कर रहे हैं, इन मॉड्यूलों में काफी भिन्नता है निर्भरता!

एक बुनियादी मॉड्यूल-स्तर build.gradle फ़ाइल आमतौर पर कुछ इस तरह दिखाई देगी:

प्लगइन लागू करें: com.android.application android {compileSdkVersion 28 defaultConfig {applicationId "com.jessicathornsby.speechtotext" minSdkVersion 23 targetSkVersion 28 वर्जनकोड 1 वर्जननाम "1.0" testInstrumentationRunner.nic.in/.test.test.net.test.gov.in पर जाएं। getDefaultProguardFile (proguard-android-optim.txt), proguard-rules.pro}}} निर्भरताएँ {कार्यान्वयन फ़ाइलट्री (dir: libs, शामिल हैं:) कार्यान्वयन androidx.appcompat: appcompat: 1.0.2 कार्यान्वयन androidx.constraintlayout: constraintlayout: 1.1। 3 परीक्षण कार्यान्वयन कनिष्ठ: कनिष्ठ: 4.12 AndroidTestImplementation androidx.test.ext: junit: 1.1.0 AndroidTestImplementation androidx.test.espresso: एस्प्रेसो-कोर: 3.1.1}

आइए इनमें से प्रत्येक अनुभाग पर एक करीब से नज़र डालें:

  • प्लगइन लागू करें। यह इस मॉड्यूल को बनाने के लिए आवश्यक प्लगइन्स की एक सूची है। एंड्रॉइड-विशिष्ट बिल्ड प्रक्रिया को सेटअप करने के लिए com.android.application प्लगइन आवश्यक है, इसलिए यह स्वचालित रूप से जोड़ा जाता है।
  • एंड्रॉयड। यह वह जगह है जहाँ आपको मॉड्यूल के सभी प्लेटफ़ॉर्म-विशिष्ट विकल्पों को रखना चाहिए।
  • compileSdkVersion। यह एपीआई स्तर है जिसे इस मॉड्यूल के साथ संकलित किया गया है। आप इस मान से अधिक API से सुविधाओं का उपयोग नहीं कर सकते।
  • buildToolsVersion। यह संकलक के संस्करण को इंगित करता है। ग्रैडल 3.0.0 और उच्चतर में, buildToolsVersion वैकल्पिक है; यदि आप buildToolsVersion मान निर्दिष्ट नहीं करते हैं, तो Android स्टूडियो बिल्ड टूल्स के सबसे हाल के संस्करण के लिए डिफ़ॉल्ट होगा।
  • defaultConfig। इसमें ऐसे विकल्प शामिल हैं जो आपके ऐप के सभी बिल्ड संस्करणों पर लागू होंगे, जैसे कि आपका डीबग और रिलीज़ बिल्ड।
  • आवेदन पहचान पत्र। यह आपके एप्लिकेशन का विशिष्ट पहचानकर्ता है
  • minSdkVersion। यह पैरामीटर न्यूनतम एपीआई स्तर को परिभाषित करता है जो इस मॉड्यूल का समर्थन करता है।
  • targetSdkVersion। यह अधिकतम एपीआई स्तर है जिसके खिलाफ आपके आवेदन का परीक्षण किया गया है। आदर्श रूप से, आपको नवीनतम एपीआई का उपयोग करके अपने आवेदन का परीक्षण करना चाहिए, जिसका अर्थ है कि लक्ष्यस्डवर्सन मान हमेशा संकलित वर्धमान मान के बराबर होगा।
  • versionCode। यह आपके एप्लिकेशन संस्करण के लिए एक संख्यात्मक मान है।
  • versionName। यह एक उपयोगकर्ता के अनुकूल स्ट्रिंग है, जो आपके एप्लिकेशन संस्करण का प्रतिनिधित्व करता है।
  • buildTypes। डिफ़ॉल्ट रूप से, एंड्रॉइड दो बिल्ड प्रकारों का समर्थन करता है: डिबग और रिलीज़। आप अपने एप्लिकेशन की टाइप-विशिष्ट सेटिंग्स को निर्दिष्ट करने के लिए "डीबग" और "रिलीज़" ब्लॉक का उपयोग कर सकते हैं।
  • निर्भरता। यह वह जगह है जहां आप किसी भी लाइब्रेरी को परिभाषित करते हैं, जो इस मॉड्यूल पर निर्भर करता है।

अपनी परियोजना की निर्भरता की घोषणा: स्थानीय पुस्तकालय

आप एक या अधिक प्रोजेक्ट निर्भरता जोड़कर, अपने Android प्रोजेक्ट्स के लिए अतिरिक्त कार्यक्षमता उपलब्ध कर सकते हैं। ये निर्भरताएं स्थानीय हो सकती हैं, या उन्हें एक दूरस्थ भंडार में संग्रहीत किया जा सकता है।

स्थानीय JAR फ़ाइल पर निर्भरता की घोषणा करने के लिए, आपको उस JAR को अपनी परियोजना की "libs" निर्देशिका में जोड़ना होगा।

फिर आप इस फ़ाइल पर निर्भरता घोषित करने के लिए मॉड्यूल-स्तर build.gradle फ़ाइल को संशोधित कर सकते हैं। उदाहरण के लिए, यहां हम "mylibrary" JAR पर निर्भरता की घोषणा कर रहे हैं।

कार्यान्वयन फ़ाइलें (libs / mylibrary.jar)

वैकल्पिक रूप से, यदि आपके "libs" फ़ोल्डर में कई JAR होते हैं, तो यह केवल यह बताना आसान हो सकता है कि आपकी परियोजना "libs" फ़ोल्डर में स्थित सभी फाइलों पर निर्भर करती है, उदाहरण के लिए:

कार्यान्वयन फ़ाइलट्री (dir: libs, शामिल हैं:)

एक बिल्ड निर्भरता जोड़ना: रिमोट रिपॉजिटरी

यदि लाइब्रेरी दूरस्थ रिपॉजिटरी में स्थित है, तो आपको निम्नलिखित चरणों को पूरा करने की आवश्यकता होगी:

  • जहां यह निर्भरता है, वहां भंडार को परिभाषित करें।
  • व्यक्तिगत निर्भरता की घोषणा करें।

दूरस्थ रिपॉजिटरी से कनेक्ट करना

पहला कदम, ग्रेड को बता रहा है कि आपके सभी प्रोजेक्ट की निर्भरता को पुनः प्राप्त करने के लिए उसे किस रिपॉजिटरी (या रिपॉजिटरी) की जाँच करनी है। उदाहरण के लिए:

रिपॉजिटरी {google () jcenter ()}}

यहाँ, "jcenter ()" लाइन यह सुनिश्चित करती है कि ग्रैडल JCenter रिपॉजिटरी की जाँच करेगा, जो कि एक स्वतंत्र, सार्वजनिक रिपॉजिटरी है जिसे बिंट्रे में होस्ट किया गया है।

वैकल्पिक रूप से, यदि आप या आपका संगठन एक व्यक्तिगत रिपॉजिटरी बनाए रखते हैं, तो आपको इस रिपॉजिटरी के URL को अपनी निर्भरता घोषणा में जोड़ना चाहिए। यदि रिपॉजिटरी पासवर्ड से सुरक्षित है, तो आपको अपनी लॉगिन जानकारी भी प्रदान करनी होगी, उदाहरण के लिए:

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

यदि एक निर्भरता कई रिपॉजिटरी के भीतर मौजूद है, तो ग्रैडल इस निर्भरता के "सर्वश्रेष्ठ" संस्करण का चयन करेगा, जो प्रत्येक रिपॉजिटरी की उम्र और स्थिर संस्करण जैसे कारकों के आधार पर होगा।

दूरस्थ निर्भरता की घोषणा

अगला चरण आपके मॉड्यूल-स्तर build.gradle फ़ाइल में निर्भरता की घोषणा कर रहा है। आप निम्न में से किसी का उपयोग करके इस जानकारी को "निर्भरता" ब्लॉक में जोड़ते हैं:

  • क्रियान्वयन। यह एक सामान्य निर्भरता है जब भी आपको अपनी परियोजना का निर्माण करने की आवश्यकता होती है। एक "कार्यान्वयन" निर्भरता भर में मौजूद होगी सब आपका निर्माण
  • Testimplementation। यह एक निर्भरता है जो आपके आवेदन के परीक्षण स्रोत को संकलित करने और जेवीएम-आधारित परीक्षणों को चलाने के लिए आवश्यक है। जब आप एक निर्भरता को "गवाही" के रूप में चिह्नित करते हैं, तो ग्रैडल को पता चलेगा कि उसे सामान्य बिल्ड के दौरान इस निर्भरता के लिए कार्य नहीं चलाना है, जिससे बिल्ड समय कम करने में मदद मिल सकती है।
  • Androidtestimplementation। यह एक निर्भरता है जो किसी उपकरण पर परीक्षण चलाते समय आवश्यक है, उदाहरण के लिए एस्प्रेसो फ्रेमवर्क एक सामान्य "Androidtimimificationation" है।

हम उदाहरण के लिए, उपरोक्त कीवर्ड्स में से एक का उपयोग करते हुए एक दूरस्थ निर्भरता को परिभाषित करते हैं, इसके बाद निर्भरता के समूह, नाम और संस्करण की विशेषताएं:

निर्भरताएँ {क्रियान्वयन फ़ाइल AndroidTestImplementation androidx.test.espresso: एस्प्रेसो-कोर: 3.1.1}

कई APK उत्पन्न करना: बिल्ड वेरिएंट कैसे बनाएं

कभी-कभी, आपको अपने एप्लिकेशन के कई संस्करण बनाने की आवश्यकता हो सकती है। उदाहरण के लिए, आप एक मुफ्त संस्करण और एक सशुल्क संस्करण जारी करना चाह सकते हैं, जिसमें कुछ अतिरिक्त सुविधाएँ शामिल हैं।

यह एक निर्माण कार्य है जिसे ग्रैडल आपकी मदद कर सकता है, इसलिए आइए देखें कि आप किसी एकल प्रोजेक्ट से कई एपीके बनाने के लिए बिल्ड प्रक्रिया को कैसे संशोधित करते हैं:

  • अपनी स्ट्रिंग खोलें। xml फ़ाइल और अपने मूल एप्लिकेशन नाम स्ट्रिंग को हटा दें।
  • अगला, प्रत्येक उत्पाद स्वाद के नाम को परिभाषित करें जिसे आप बनाना चाहते हैं; इस उदाहरण में, मैं उपयोग कर रहा हूं:

मेरा फ्री ऐप मेरा पेड ऐप

  • अपनी AndroidManifest.xml फ़ाइल खोलें और Android को बदलें: लेबल = "@ string / app_name" इसके साथ:

एंड्रॉयड: लेबल = "$ {appName}"

  • अपने मॉड्यूल-स्तर build.gradle फ़ाइल को खोलें और निम्नलिखित को "android" ब्लॉक में जोड़ें:

फ्लेवर डिमांड्स "मोड" प्रोडक्टफ्लोरर्स {फ्री {डायमेंशन "मोड" एप्लीकेशनआईडसफिक्स ".फ्री" मैनिफेस्टलहोल्डर्स =} भुगतान किया गया {डायमेंशन "मोड" एप्लीकेशनआईडफ्लिक्स "।

चलो यहाँ क्या हो रहा है:

  • flavorDimensions। एंड्रॉइड प्लगइन विभिन्न आयामों से फ्लेवर को मिलाकर बिल्ड वेरिएंट बनाता है। यहाँ, हम अपने ऐप के "फ्री" और "पेड" संस्करणों से मिलकर एक फ्लेवर आयाम बना रहे हैं। ऊपर दिए गए कोड के आधार पर, ग्रेडल चार बिल्ड वेरिएंट उत्पन्न करेगा: पेडडबग, पेडरेलज, फ्रीडबग और फ्रीरेलज।
  • productFlavors। यह स्वादों और उनकी सेटिंग्स की एक सूची निर्दिष्ट करता है, जो उपरोक्त कोड में "भुगतान किया गया" और "मुफ्त" हैं।
  • नि: शुल्क / भुगतान किया गया। ये हमारे दो उत्पाद फ्लेवर के नाम हैं।
  • आयाम। हमें "आयाम" पैरामीटर मान निर्दिष्ट करने की आवश्यकता है; इस उदाहरण में, मैं "मोड" का उपयोग कर रहा हूं।
  • applicationIdSuffix। चूंकि हम अपने ऐप के कई संस्करण बनाना चाहते हैं, इसलिए हमें प्रत्येक एपीके को एक विशिष्ट ऐप आइडेंटिफ़ायर देना होगा।
  • manifestPlaceholders। प्रत्येक प्रोजेक्ट में एक एकल मेनिफेस्ट फ़ाइल होती है जिसमें आपके प्रोजेक्ट के कॉन्फ़िगरेशन के बारे में महत्वपूर्ण जानकारी होती है। कई बिल्ड वेरिएंट बनाते समय, आप आमतौर पर बिल्ड टाइम में इनमें से कुछ मेनिफेस्ट गुणों को संशोधित करना चाहते हैं। आप प्रत्येक बिल्ड वैरिएंट के लिए विशिष्ट मैनिफ़ेस्ट प्रविष्टियों को निर्दिष्ट करने के लिए ग्रेड बिल्ड फ़ाइलों का उपयोग कर सकते हैं, जो तब बिल्ड समय में आपके मैनिफ़ेस्ट में सम्मिलित किए जाएंगे। उपरोक्त कोड में, हम "AppName" मान को संशोधित कर रहे हैं, जो इस बात पर निर्भर करता है कि ग्रेडल हमारे ऐप के मुफ्त या भुगतान किए गए संस्करण का निर्माण कर रहा है या नहीं।

कस्टम ग्रेड कार्य बनाना

कभी-कभी आपको ग्रैडल का उपयोग करके निर्माण प्रक्रिया को अनुकूलित करने की आवश्यकता हो सकती है कार्य.

एक कार्य एक संग्रह का नाम है जो ग्रैडल निष्पादित करेगा क्योंकि यह एक निर्माण करता है, उदाहरण के लिए एक Javadoc उत्पन्न करता है। ग्रैड डिफ़ॉल्ट रूप से बहुत सारे कार्यों का समर्थन करता है, लेकिन आप कस्टम कार्य भी बना सकते हैं, जो आपके दिमाग में बिल्ड निर्देशों का एक बहुत विशिष्ट सेट होने पर काम में आ सकता है।

इस खंड में, हम एक कस्टम ग्रेडल कार्य बना रहे हैं जो हमारे सभी प्रोजेक्ट बिल्ड वेरिएंट्स (payDebug, paidRelease, freeDebug और freeRelease) के माध्यम से पुनरावृत्ति करेगा, एक तिथि और समय टिकट बनाएँ, और फिर इस जानकारी को प्रत्येक उत्पन्न एपीके में जोड़ें।

अपनी मॉड्यूल-स्तरीय बिल्ड.ग्रेड फ़ाइल खोलें और निम्नलिखित जोड़ें:

कार्य addDateAndTime () {// सभी आउटपुट बिल्ड वैरिएंट्स के माध्यम से Iterate // android.applicationVariants.all {वैरिएंट -> // सभी एपीके फाइल्स के माध्यम से Iterate करें // variant.outputs.all {आउटपुट>> // एक उदाहरण बनाएं वर्तमान दिनांक और समय, निर्दिष्ट प्रारूप में // def dateAndTime = नई तिथि ()। प्रारूप ("yyyy-MM-dd: HH-mm") // इस जानकारी को एपीके के फ़ाइल नाम // डीआईएफ फ़ाइल नाम = संस्करण में जोड़ें। name + "_" + dateAndTime + ".apk" output.outputFileName = fileName}}

आगे, हमें ग्रैडल बताने की आवश्यकता है कब इस कार्य को अंजाम देना चाहिए। एक निर्माण के दौरान, ग्रैडल उसे डाउनलोड करने के लिए आवश्यक सभी कार्यों की पहचान करता है और उसे निष्पादित किए जाने वाले सभी कार्यों को निर्देशित चक्रीय ग्राफ (डीएजी) में व्यवस्थित करता है। उसके DAG में परिभाषित आदेश के अनुसार ग्रैडल इन सभी कार्यों को अंजाम देगा।

मेरे एप्लिकेशन के लिए, मैं "जब रेतीली" विधि का उपयोग करने जा रहा हूं, जो यह सुनिश्चित करता है कि हमारा कार्य डीएजी के आबादी वाले होने पर कॉल किया जाएगा, और ग्रैडल अपने कार्यों को निष्पादित करना शुरू करने के लिए तैयार है।

अपने मॉड्यूल-स्तर build.gradle फ़ाइल में निम्न जोड़ें:

// इस कार्य को निष्पादित करें // gradle.taskGraph.whenReady {addDateAndTime}

आइए हम अपना कस्टम कार्य करें तथा हमारे परीक्षण संस्करण का निर्माण एक ग्रेड कमांड का उपयोग करके इस परियोजना का निर्माण करके किया गया है।

ग्रेडल रैपर के साथ अपनी परियोजना का निर्माण

आप ग्रेडल रैपर ("ग्रेडेलव") का उपयोग करके ग्रेड कमांड जारी करते हैं। यह स्क्रिप्ट ग्रैड बिल्ड शुरू करने का पसंदीदा तरीका है, क्योंकि यह ग्रैड के आपके संस्करण से बिल्ड के निष्पादन को स्वतंत्र बनाता है। यदि आप अन्य लोगों के साथ सहयोग कर रहे हैं जो जरूरी नहीं कि ग्रेडेल का वही संस्करण स्थापित हो तो यह अलगाव उपयोगी हो सकता है।

अपने ग्रेडल रैपर कमांड जारी करते समय, आप यूनिक्स जैसे ऑपरेटिंग सिस्टम के लिए "gradlew" का उपयोग करेंगे, जिसमें macOS और विंडोज के लिए "gradlew.bat" शामिल हैं। मेरे पास एक Mac है, इसलिए मैं "gradlew" कमांड का उपयोग करूंगा।

आप एंड्रॉइड स्टूडियो के अंदर से ग्रैडल कमांड जारी कर सकते हैं:

  • एंड्रॉइड स्टूडियो टूलबार में, "व्यू> टूल्स विंडोज> टर्मिनल" चुनें। यह आईडीई विंडो के नीचे एक टर्मिनल पैनल खोलता है।
  • टर्मिनल में निम्नलिखित कमांड दर्ज करें:

./gradlew बिल्ड

Android Studio को कुछ इस तरह दिखना चाहिए:

  • अपने कीबोर्ड पर "एंटर" कुंजी दबाएं। ग्रैडल अब आपके प्रोजेक्ट का निर्माण करेगा।

ग्रेड आपके प्रोजेक्ट के एप्लिकेशन / बिल्ड / आउटपुट / एपीके निर्देशिका में सभी उत्पन्न APK को संग्रहीत करता है, इसलिए इस निर्देशिका में नेविगेट करें। "एपीके" फ़ोल्डर में कई फ़ोल्डर और सबफ़ोल्डर शामिल होने चाहिए; सुनिश्चित करें कि ग्रैडल ने आपके प्रत्येक बिल्ड वेरिएंट के लिए एपीके जनरेट किया है, और प्रत्येक फ़ाइल में सही तिथि और समय की जानकारी जोड़ी गई है।

अन्य ग्रेडल कार्य क्या उपलब्ध हैं?

आपके द्वारा बनाए जा सकने वाले किसी भी कस्टम कार्य के अलावा, ग्रैड पूर्व-निर्धारित कार्यों की एक सूची का समर्थन करता है। यदि आप यह देखने के लिए उत्सुक हैं कि क्या कार्य उपलब्ध हैं, तो:

  • Android स्टूडियो की टर्मिनल विंडो खोलें, अगर यह पहले से ही खुला नहीं है (Android स्टूडियो टूल टूल से "व्यू> टूल्स विंडोज> टर्मिनल" का चयन करके)।
  • टर्मिनल में निम्नलिखित टाइप करें:

./gradlew -q कार्य

  • अपने कीबोर्ड पर "एंटर" कुंजी दबाएं।

यह "कार्य" कार्य अब चलेगा, और कुछ ही क्षणों के बाद टर्मिनल इस परियोजना के लिए उपलब्ध सभी कार्यों की एक सूची प्रदर्शित करेगा, प्रत्येक कार्य का एक छोटा विवरण के साथ पूरा होगा।

ग्रेडेल से अधिक बाहर निकलना: प्लगइन्स जोड़ना

पहले से इंस्टॉल किए गए कई प्लगइन्स के साथ ग्रेड करें, लेकिन आप नए प्लगइन्स को जोड़कर ग्रैडल को आगे बढ़ा सकते हैं। ये प्लगइन्स आपके एंड्रॉइड प्रोजेक्ट्स के लिए नए कार्य उपलब्ध कराते हैं, उदाहरण के लिए जावा प्लगइन में ऐसे कार्य शामिल हैं जो आपको जावा सोर्स कोड को संकलित करने, यूनिट टेस्ट चलाने और "कॉम्पाइलजवा", "कंपाइलटेक्स्ट", "जार" जैसे JAR फ़ाइल बनाने की अनुमति देते हैं। "Javadoc," और "साफ।"

एक प्लगइन लागू करने के लिए, अपने मॉड्यूल-स्तर build.gradle फ़ाइल में "प्लगइन लागू करें" घोषणा जोड़ें, उसके बाद प्लगइन का नाम। उदाहरण के लिए, यहां हम जावा प्लगइन लागू कर रहे हैं:

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

यदि आप यह देखने के लिए उत्सुक हैं कि कौन से प्लगइन्स उपलब्ध हैं, तो ग्रैडल प्लगिन खोज देखें, जो ग्रैडल प्लगइन्स की एक व्यापक रजिस्ट्री प्रदान करता है।

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

डिफ़ॉल्ट रूप से, आप Groovy DSL का उपयोग करके अपनी ग्रैड बिल्ड स्क्रिप्ट नहीं लिखेंगे, लेकिन यदि आप उन कई डेवलपर्स में से एक हैं, जिन्होंने एंड्रॉइड विकास के लिए कोटलिन को अपनाया है, तो आप इसके बजाय कोटलिन में अपनी बिल्ड स्क्रिप्ट लिखना पसंद कर सकते हैं।

ग्रूवी के विपरीत, कोटलिन एक सांख्यिकीय रूप से टाइप की जाने वाली प्रोग्रामिंग भाषा है, इसलिए यदि आप स्विच बनाते हैं तो आपकी बिल्ड फाइलें एंड्रॉइड स्टूडियो के ऑटोकोम्प्लीमेंट और स्रोत कोड नेविगेशन सुविधाओं के साथ संगत होंगी। इसके अलावा, ग्रूवी से कोटलिन की ओर बढ़ने का मतलब है कि आप अपनी परियोजना में उसी प्रोग्रामिंग भाषा का उपयोग कर रहे हैं, जो विकास को और अधिक सरल बना सकती है - खासकर यदि आप ग्रोवी से अधिक परिचित नहीं हैं!

यदि आप कोटलिन में अपना बिल्ड लॉजिक लिखना शुरू करना चाहते हैं, तो आपको ग्रैडल कोटलिन डीएसएल को सेटअप करने की जरूरत है और माइग्रेशन गाइड के निर्देशों का पालन करना होगा।

समेट रहा हु

इस लेख में, हमने Android Studio के निर्माण स्वचालन और निर्भरता प्रबंधन उपकरण की खोज की। हमने जांच की कि ग्रेडल बिल्ड-आउट-ऑफ-द-बॉक्स को कैसे स्वचालित करता है, और आप अपनी प्रोजेक्ट के ग्रेडल बिल्ड फ़ाइलों को संपादित करके बिल्ड प्रक्रिया को कैसे संशोधित कर सकते हैं, जिसमें कस्टम ग्रैडल कार्यों को बनाना, और एक प्रोजेक्ट से कई बिल्ड वेरिएंट का निर्माण करना शामिल है।

क्या आपने एंड्रॉइड निर्माण प्रक्रिया के अन्य हिस्सों को स्वचालित करने के लिए ग्रैडल बढ़ाया है? नीचे टिप्पणी करके हमें बताएं!

यदि सांता आपको एक नया जोड़ा नहीं लाएगा हेडफोन यह क्रिसमस, यह आपके हाथों में मामलों को लेने का समय है। आखिरकार, आपको कुछ की आवश्यकता होगी क्रिस्टल स्पष्ट ध्वनि जिसका सामना सोमवार को करना है।...

अगर वहाँ एक श्रेणी है कि HBO पर कमी नहीं है, यह कॉमेडी है प्रीमियम फिल्म सेवा न केवल हिट ब्लॉकबस्टर स्ट्रीम करती है, बल्कि यह अपने स्वयं के प्रफुल्लित करने वाले कॉमेडी शो और फिल्में भी बनाती है।...

हमारी सिफारिश