Android प्रोजेक्ट में बिल्ड से जुड़ी कई फ़ाइलें और डायरेक्ट्री स्ट्रक्चर होते हैं, अपने ऐप्लिकेशन के सोर्स और संसाधनों को व्यवस्थित करें. गोता लगाने से पहले कॉन्फ़िगरेशन विवरण, हम समस्त संरचना और बुनियादी पर नज़र डालें का एक हिस्सा है.
इस टेबल में, किसी Android प्रोजेक्ट की सामान्य फ़ाइलें दी गई हैं. हर एक का ब्यौरा फ़ाइल या डायरेक्ट्री में इस बारे में नोट शामिल होंगे कि उसमें किस तरह का कॉन्टेंट है. सबसे सही समय के साथ प्रैक्टिस में बदलाव होते रहते हैं. इसलिए, हो सकता है कि ये ब्यौरे किसी प्रोजेक्ट से मेल न खाएं जिन्हें आपने इंटरनेट से इनहेरिट या डाउनलोड किया है.
बिल्ड फ़ाइलें लिखते समय, डिक्लेरेटिव टोन का इस्तेमाल करें; लॉजिक और टास्क बनाना परिभाषाएं केवल प्लग इन में दिखाई जानी चाहिए. बिल्ड लॉजिक को प्लगिन तक सीमित करके, बिल्ड फ़ाइलें, डेटा का एलान बन जाती हैं. इन्हें आसानी से समझा जा सकता है और एडिटिंग भी मिलती है. आने वाले वर्शन में अन्य जानकारी शामिल हो सकती है, जैसे कि डिक्लेरेटिव Gradle, जो फ़ाइलें शामिल हैं.
फ़ोल्डर/फ़ाइल |
इस्तेमाल करें |
---|---|
.gradle/ |
Gredle प्रोजेक्ट की कैश डायरेक्ट्री इसे Gradle मैनेज करता है. इसमें, डाउनलोड किया गया Gradle डिस्ट्रिब्यूशन, प्रोजेक्ट की कैश मेमोरी, और कॉन्फ़िगरेशन फ़ाइलें शामिल हैं. इस डायरेक्ट्री में मौजूद फ़ाइलें न बदलें! |
.idea/ |
Android Studio प्रोजेक्ट का मेटाडेटा इस डायरेक्ट्री में मौजूद फ़ाइलें न बदलें! |
बिल्ड.gradle(.kts) |
इसमें सिर्फ़ प्लगिन के बारे में जानकारी शामिल होनी चाहिए, ताकि सभी सबप्रोजेक्ट में एक जैसा प्लगिन क्लास पाथ सेट अप किया जा सके. अन्य कोड, सेटिंग या नेस्ट किए गए प्रोजेक्ट-लेवल की बिल्ड फ़ाइलों में मौजूद होने चाहिए. |
gradle.property |
Gradle को लागू करने का कॉन्फ़िगरेशन इसमें Gradle प्रॉपर्टी शामिल है, जो Gradle बिल्ड एनवायरमेंट के पहलुओं को कंट्रोल करती है. जैसे, हीप का साइज़, कैश मेमोरी, और पैरलल एक्ज़ीक्यूशन. यहां कुछ समय के लिए Android की कुछ प्रॉपर्टी के बारे में बताया गया है, ताकि AGP DSL में होने वाले बदलावों को कम किया जा सके और बाद में हटा दिया जाए. |
Gradlew (Linux, Mac) gradlew.bat (Windows) |
Gradle रैपर फ़ाइल Gradle डिस्ट्रिब्यूशन डाउनलोड करके और फिर उसमें कमांड फ़ॉरवर्ड करके, अपने बिल्ड को बूटस्ट्रैप करता है. इससे आपको Gradle को पहले से इंस्टॉल किए बिना बिल्ड चलाने की सुविधा मिलती है. |
local.property |
लोकल मशीन कॉन्फ़िगरेशन इसमें लोकल मशीन से जुड़ी प्रॉपर्टी शामिल होती हैं, जैसे कि Android SDK की लोकेशन. इस फ़ाइल को सोर्स कंट्रोल से बाहर रखें! |
settings.gradle(.kts) |
इसमें Gradle शुरू करने और प्रोजेक्ट कॉन्फ़िगरेशन के लिए, ग्लोबल बिल्ड की जानकारी शामिल है, जैसे
|
Gradle/ |
|
↳ libs.versions.toml |
आपके बिल्ड में इस्तेमाल की जाने वाली डिपेंडेंसी और प्लगिन के लिए वैरिएबल तय करता है. यह तय करें कि आपको यहां किन वर्शन का इस्तेमाल करना है. इससे यह पक्का किया जा सकेगा कि आपके प्रोजेक्ट के सभी सब-प्रोजेक्ट एक जैसे हों. |
↳ रैपर/ |
|
↳ gradle‐wrapper.jar |
Gredle बूटस्ट्रैपिंग एक्ज़िक्यूट किया जा सकता है बताए गए Gradle डिस्ट्रिब्यूशन को डाउनलोड करता है (अगर यह मौजूद नहीं है) और इसे किसी भी आर्ग्युमेंट के साथ पास करते हुए, इसे चलाता है |
↳ gradle‐wrapper.property |
Gradle रैपर का कॉन्फ़िगरेशन यह तय करता है कि Gradle डिस्ट्रिब्यूशन को कहां से डाउनलोड करना है (इसमें यह भी शामिल है कि किस वर्शन का इस्तेमाल करना है). |
ऐप्लिकेशन/ |
सब-प्रोजेक्ट (Android Studio में "मॉड्यूल" कहा जाता है) पर, ऐप्लिकेशन या लाइब्रेरी बनाई जा सकती हैं. ये दूसरे सब-प्रोजेक्ट या बाहरी डिपेंडेंसी पर निर्भर हो सकती हैं.
|
↳build.gradle(.kts) |
सब-प्रोजेक्ट-लेवल की बिल्ड फ़ाइल इस सबप्रोजेक्ट को बनाने का तरीका बताता है. हर सब-प्रोजेक्ट के लिए एक अलग बिल्ड फ़ाइल की ज़रूरत होती है और यह फ़ाइल उसमें होनी चाहिए
आपको बिल्ड फ़ाइलों में बिल्ड लॉजिक (जैसे कि Kotlin फ़ंक्शन की परिभाषाएं या शर्तें) या टास्क की जानकारी शामिल नहीं करनी चाहिए. बिल्ड लॉजिक और टास्क सिर्फ़ प्लगिन में होने चाहिए. |
↳src/ |
सब-प्रोजेक्ट की सोर्स फ़ाइलें सोर्स फ़ाइलों (ऐप्लिकेशन कोड और संसाधन) को सोर्स सेट में ग्रुप करता है. |
↳ मुख्य/ |
मुख्य सोर्स सेट सोर्स कोड और ऐसे संसाधन जो सभी बिल्ड वैरिएंट में एक जैसे होते हैं. यह सोर्स सभी बिल्ड के लिए बेस के तौर पर काम करता है. साथ ही, अन्य खास सोर्स सेट इस सोर्स में जोड़ते हैं या इसे ओवरराइड करते हैं. |
↳ JavaScript/ ↳ कोटलिन/ |
Kotlin और Java का सोर्स कोड
|
↳ रिज़ॉल्यूशन/ |
इसमें ऐप्लिकेशन के संसाधन शामिल होते हैं, जैसे कि एक्सएमएल फ़ाइलें और इमेज. सभी ऐप्लिकेशन कुछ बुनियादी संसाधनों का इस्तेमाल करते हैं, जैसे कि लॉन्चर आइकॉन. हालांकि, इनमें से कई संसाधन, जैसे कि लेआउट और मेन्यू, सिर्फ़ देखने पर आधारित ऐप्लिकेशन में इस्तेमाल किए जाते हैं. ऐप्लिकेशन कंपोज़ करने में इस डायरेक्ट्री में बताए गए स्ट्रिंग संसाधनों का इस्तेमाल किया जाता है. |
↳ AndroidManifest.xml |
सिस्टम को इसकी जानकारी देने के लिए, Android पैकेज मैनेजर को पढ़ें
|
↳ androidTest/ |
डिवाइस टेस्ट सोर्स सेट इसमें उन टेस्ट के सोर्स शामिल हैं जो Android के साथ काम करने वाले डिवाइस या एम्युलेटर पर किए जाएंगे. इन टेस्ट में Android डिवाइस का असल ऐक्सेस होता है, लेकिन ये होस्ट टेस्ट के मुकाबले ज़्यादा धीमे परफ़ॉर्म करते हैं. |
↳ जांच/ |
होस्ट टेस्ट सोर्स सेट इसमें, किसी डिवाइस पर चलने वाले टेस्ट के बजाय, किसी JVM में स्थानीय तौर पर चलने वाले टेस्ट का सोर्स शामिल होता है. डिवाइस टेस्ट के मुकाबले, इन टेस्ट को ज़्यादा तेज़ी से चलाया जा सकता है. हालांकि, किसी भी सिस्टम कॉल (इसमें आपके ऐप्लिकेशन को चलाने वाली लाइफ़साइकल भी शामिल है) का मज़ाक़ बनाया जाना चाहिए. साथ ही, उसे नकली, हैक या किसी अन्य तरीके से सिम्युलेट किया जाना चाहिए.
|
↳ प्रोगार्ड-नियम.प्रो |
ऐप्लिकेशन का आकार कम करने, ऑप्टिमाइज़ करने, और अस्पष्ट बनाने के नियम तय करता है. R8, ग़ैर-ज़रूरी कोड और रिसॉर्स को हटा देता है, रनटाइम की परफ़ॉर्मेंस को ऑप्टिमाइज़ करता है, और आइडेंटिफ़ायर का नाम बदलकर, आपके कोड को छोटा करता है. |