प्रोजेक्ट की खास जानकारी

Android Studio में मौजूद प्रोजेक्ट में, ऐप्लिकेशन के लिए आपके वर्कस्पेस से जुड़ी सभी चीज़ें होती हैं. जैसे, सोर्स कोड और एसेट से लेकर टेस्ट कोड और बिल्ड कॉन्फ़िगरेशन तक.

नया प्रोजेक्ट शुरू करने पर, Android Studio आपकी सभी फ़ाइलों के लिए ज़रूरी स्ट्रक्चर बनाता है. साथ ही, उन्हें Android Studio में प्रोजेक्ट विंडो में दिखाता है. विंडो खोलने के लिए, View > टूल की विंडो > प्रोजेक्ट.

यह पेज आपके प्रोजेक्ट के मुख्य कॉम्पोनेंट की खास जानकारी देता है.

मॉड्यूल

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

अतिरिक्त मॉड्यूल, अपने प्रोजेक्ट में कोड लाइब्रेरी बनाते समय या फ़ोन और पहने जा सकने वाले डिवाइसों जैसे अलग-अलग तरह के डिवाइसों के लिए, कोड और संसाधनों के अलग-अलग सेट बनाते समय काम के होते हैं. हालांकि, सभी फ़ाइलों को एक ही प्रोजेक्ट में रखें और कुछ कोड शेयर करें.

अपने प्रोजेक्ट में नया मॉड्यूल जोड़ने के लिए, फ़ाइल > नया > नया मॉड्यूल पर क्लिक करें.

Android Studio में कुछ अलग तरह के मॉड्यूल उपलब्ध होते हैं:

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

Android Studio के ऑफ़र इस तरह के ऐप्लिकेशन मॉड्यूल उपलब्ध हैं:

  • फ़ोन और टैबलेट
  • Automotive
  • Wear OS
  • टेलीविज़न
  • बेसलाइन प्रोफ़ाइल जनरेटर
  • मानदंड

हर मॉड्यूल में ज़रूरी फ़ाइलें और कुछ कोड टेंप्लेट होते हैं. ये टेंप्लेट, उस ऐप्लिकेशन या डिवाइस टाइप के लिए सही होते हैं जिनके लिए मॉड्यूल बनाए गए हैं.

मॉड्यूल जोड़ने के बारे में ज़्यादा जानकारी के लिए, पढ़ें नए डिवाइस के लिए मॉड्यूल जोड़ें.

सुविधा वाला मॉड्यूल
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इसमें आपके ऐप्लिकेशन का मॉड्यूलर फ़ीचर मौजूद है, जो Play की सुविधा का फ़ायदा ले सकता है फ़ीचर डिलीवरी. उदाहरण के लिए, सुविधा वाले मॉड्यूल की मदद से, अपने उपयोगकर्ताओं को ऐप्लिकेशन की कुछ सुविधाएं मांगने पर या Google Play Instant की मदद से, इंस्टैंट इस्तेमाल की सुविधा के तौर पर दी जा सकती हैं.

Android Studio में, सुविधा वाले ये मॉड्यूल उपलब्ध हैं:

  • डाइनैमिक फ़ीचर मॉड्यूल
  • इंस्टैंट डाइनैमिक फ़ीचर लाइब्रेरी मॉड्यूल

ज़्यादा जानने के लिए, Play Feature Delivery के बारे में पढ़ें.

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

नया मॉड्यूल बनाएं विंडो में, Android Studio ये लाइब्रेरी मॉड्यूल उपलब्ध कराता है:

  • Android लाइब्रेरी: इसमें काम करने वाले सभी फ़ाइल टाइप शामिल हैं नेटिव C++ कोड को छोड़कर किसी Android प्रोजेक्ट में, Java और Kotlin सोर्स कोड को छोड़कर, और मेनिफ़ेस्ट फ़ाइलों को डाउनलोड करने की सुविधा मिलती है. बिल्ड का नतीजा एक Android संग्रह (एएआर) फ़ाइल होती है. इसे अपने Android ऐप्लिकेशन मॉड्यूल के लिए, डिपेंडेंसी के तौर पर जोड़ा जा सकता है.
  • Android नेटिव लाइब्रेरी: इसमें Android लाइब्रेरी की तरह, Android प्रोजेक्ट में काम करने वाले सभी फ़ाइल टाइप शामिल होते हैं. हालांकि, Android की नेटिव लाइब्रेरी में नेटिव C++ सोर्स कोड शामिल हो सकता है. बिल्ड का नतीजा एक Android संग्रह (एएआर) फ़ाइल होती है. इसे अपने Android ऐप्लिकेशन मॉड्यूल के लिए डिपेंडेंसी के तौर पर जोड़ा जा सकता है.
  • Java या Kotlin लाइब्रेरी: इसमें सिर्फ़ Kotlin या Java सोर्स फ़ाइलें होती हैं. बिल्ड नतीजा एक Java संग्रह (JAR) फ़ाइल है जिसे आप आपके Android ऐप्लिकेशन मॉड्यूल या अन्यKotlin या Java प्रोजेक्ट के लिए डिपेंडेंसी.

मॉड्यूल को कभी-कभी सब-प्रोजेक्ट भी कहा जाता है, क्योंकि Gradle भी मॉड्यूल को प्रोजेक्ट के तौर पर दिखाता है.

जब कोई लाइब्रेरी मॉड्यूल बनाया जाता है और उसे अपनी डिपेंडेंसी के तौर पर जोड़ना होता है Android ऐप्लिकेशन मॉड्यूल के लिए उपलब्ध है, तो आपको इसकी जानकारी इस तरह देनी होगी:

ग्रूवीKotlin
dependencies {
    implementation project(':my-library-module')
}
dependencies {
    implementation(project(":my-library-module"))
}

प्रोजेक्ट फ़ाइलें

डिफ़ॉल्ट रूप से, Android Studio आपकी प्रोजेक्ट फ़ाइलों को Android व्यू में दिखाता है. इस व्यू में बदलाव नहीं आता डिस्क पर वास्तविक फ़ाइल पदानुक्रम. इसके बजाय, यह इस तरह से व्यवस्थित होता है: मॉड्यूल और फ़ाइल टाइप की मदद से, अपने प्रोजेक्ट की मुख्य सोर्स फ़ाइलों के बीच नेविगेशन को आसान बनाया जा सकता है. आम तौर पर इस्तेमाल नहीं की जाने वाली कुछ फ़ाइलें या डायरेक्ट्री.

डिस्क पर मौजूद Android व्यू और Android व्यू के बीच के स्ट्रक्चर में कुछ अंतर हैं. जैसे, Android व्यू:

  • प्रोजेक्ट की बिल्ड से जुड़ी कॉन्फ़िगरेशन फ़ाइलों को टॉप लेवल में दिखाता है Gradle Script ग्रुप.
  • मॉड्यूल-लेवल के ग्रुप में हर मॉड्यूल के लिए सभी मेनिफ़ेस्ट फ़ाइलें तब दिखती हैं, जब अलग-अलग फ़्लेवर और बिल्ड टाइप के लिए अलग-अलग मेनिफ़ेस्ट फ़ाइलें हों.
  • हर रिसॉर्स क्वालिफ़ायर के लिए अलग-अलग फ़ोल्डर के बजाय, सभी वैकल्पिक रिसॉर्स फ़ाइलों को एक ग्रुप में दिखाता है. उदाहरण के लिए, सभी सघनता आपके लॉन्चर आइकॉन के वर्शन साथ-साथ दिखते हैं.

हर Android ऐप्लिकेशन मॉड्यूल में, फ़ाइलें इन ग्रुप में दिखती हैं:

मेनिफ़ेस्ट
में AndroidManifest.xml फ़ाइल शामिल है.
java
इसमें Kotlin और Java सोर्स कोड फ़ाइलें होती हैं, जिन्हें पैकेज के नाम से अलग किया जाता है. इनमें JUnit टेस्ट कोड भी शामिल होता है.
रिज़ॉल्यूशन
इसमें बिना कोड वाले सभी रिसॉर्स शामिल होते हैं, जैसे कि यूज़र इंटरफ़ेस (यूआई) स्ट्रिंग और बिट मैप इमेज, जिन्हें संबंधित सबडायरेक्ट्री में बांटा जाता है. संसाधन के संभावित टाइप के बारे में ज़्यादा जानने के लिए, ऐप्लिकेशन के संसाधनों की खास जानकारी देखें.

प्रोजेक्ट व्यू

असल प्रोजेक्ट की फ़ाइल संरचना, जिसमें Android व्यू, मेन्यू से प्रोजेक्ट चुनें प्रोजेक्ट विंडो में सबसे ऊपर मौजूद होगा.

प्रोजेक्ट व्यू चुनने पर, आपको ज़्यादा फ़ाइलें और डायरेक्ट्री दिख सकती हैं. इनमें ये शामिल हैं:

module-name/
build/
इसमें बिल्ड आउटपुट शामिल हैं.
libs/
इसमें निजी लाइब्रेरी शामिल हैं.
src/
मॉड्यूल के लिए सभी कोड और संसाधन फ़ाइलें इसमें शामिल हैं सबडायरेक्ट्री:
androidTest/
इसमें Android डिवाइस पर चलने वाले इंस्ट्रुमेंटेशन टेस्ट का कोड शामिल होता है. ज़्यादा जानकारी के लिए, यह देखें Android Studio में जाकर आज़माएं.
cpp/
इसमें Java नेटिव इंटरफ़ेस (जेएनआई) का इस्तेमाल करने वाला नेटिव C या C++ कोड शामिल होता है. ज़्यादा जानकारी के लिए, यह देखें Android एनडीके (NDK) का दस्तावेज़.
main/
"मुख्य" शामिल है सोर्स सेट की फ़ाइलें: Android कोड और रिसॉर्स बिल्ड के सभी वैरिएंट के साथ शेयर किए जाने चाहिए (अन्य बिल्ड वैरिएंट वाली फ़ाइलें) सिबलिंग डायरेक्ट्री में होना चाहिए, जैसे कि src/debug/ डीबग बिल्ड टाइप):
AndroidManifest.xml
इससे ऐप्लिकेशन और उसके हर कॉम्पोनेंट के बारे में जानकारी मिलती है. ज़्यादा जानकारी के लिए, देखें ऐप्लिकेशन मेनिफ़ेस्ट समीक्षा करें.
java/
अगर आपके ऐप्लिकेशन में Kotlin और Java, दोनों हैं, तो इसमें Kotlin या Java कोड सोर्स या दोनों शामिल हैं सोर्स कोड.
kotlin/
इसमें सिर्फ़ Kotlin कोड सोर्स शामिल होते हैं.
res/
इसमें ऐप्लिकेशन के संसाधन होते हैं, जैसे कि ड्रॉबल फ़ाइलें और यूज़र इंटरफ़ेस (यूआई) स्ट्रिंग फ़ाइलें. ज़्यादा के लिए जानकारी के लिए, ऐप्लिकेशन संसाधन की खास जानकारी देखें.
assets/
इसमें ऐसी फ़ाइलें होती हैं जिन्हें APK फ़ाइल में बिना किसी बदलाव के कॉम्पाइल किया जाता है. उदाहरण के लिए, यह टेक्सचर और गेम डेटा के लिए एक अच्छी जगह है. इस डायरेक्ट्री में, यूआरआई का इस्तेमाल करके, किसी सामान्य फ़ाइल सिस्टम की तरह नेविगेट किया जा सकता है. साथ ही, AssetManager का इस्तेमाल करके, फ़ाइलों को बाइट की स्ट्रीम के तौर पर पढ़ा जा सकता है.
test/
इसमें लोकल टेस्ट के लिए कोड होता है, जो आपके होस्ट JVM पर चलता है.
build.gradle या build.gradle.kts (मॉड्यूल)
इससे मॉड्यूल के हिसाब से बिल्ड कॉन्फ़िगरेशन तय होते हैं. अगर बिल्ड स्क्रिप्ट की भाषा के तौर पर Groovy का इस्तेमाल किया जा रहा है, तो फ़ाइल का सही नाम build.gradle है. वहीं, Kotlin स्क्रिप्ट का इस्तेमाल करने पर, फ़ाइल का सही नाम build.gradle.kts है.
build.gradle या build.gradle.kts (प्रोजेक्ट)
यह आपके बिल्ड कॉन्फ़िगरेशन के बारे में बताता है, जो सभी मॉड्यूल पर लागू होता है. build.gradle है अगर आप अपनी बिल्ड स्क्रिप्ट भाषा के रूप में Groovy का इस्तेमाल कर रहे हैं और यह सही फ़ाइल नाम है अगर Kotlin स्क्रिप्ट का इस्तेमाल किया जा रहा है, तो build.gradle.kts. यह फ़ाइल इस प्रोजेक्ट का ज़रूरी हिस्सा है, इसलिए इसे बनाए रखें के साथ संशोधन नियंत्रण में है.

अन्य बिल्ड फ़ाइलों के बारे में जानकारी के लिए, देखें अपने बिल्ड को कॉन्फ़िगर करें.

प्रोजेक्ट के स्ट्रक्चर की सेटिंग

अपने Android Studio प्रोजेक्ट की अलग-अलग सेटिंग बदलने के लिए, प्रोजेक्ट स्ट्रक्चर डायलॉग बॉक्स पर क्लिक करें फ़ाइल > प्रोजेक्ट का स्ट्रक्चर. इसमें सेक्शन देखें:

  • प्रोजेक्ट: यह Gradle और 'Android Gradle प्लग इन और रिपॉज़िटरी की जगह का नाम.
  • SDK टूल की जगह: यह आपके प्रोजेक्ट में इस्तेमाल किए जाने वाले JDK, Android SDK टूल, और Android NDK की जगह सेट करता है.
  • वैरिएबल: इसकी मदद से, उन वैरिएबल में बदलाव किया जा सकता है जिनका इस्तेमाल आपकी बिल्ड स्क्रिप्ट में किया जाता है.
  • मॉड्यूल: आपको मॉड्यूल के खास बिल्ड में बदलाव करने देता है कॉन्फ़िगरेशन, जिनमें टारगेट और कम से कम SDK टूल, ऐप्लिकेशन सिग्नेचर, और लाइब्रेरी डिपेंडेंसी का इस्तेमाल किया जाता है. हर मॉड्यूल के सेटिंग पेज को इन टैब में बांटा गया है:
    • प्रॉपर्टी: मॉड्यूल को कंपाइल करने के लिए, SDK टूल और बिल्ड टूल के वर्शन के बारे में बताता है.
    • साइनिंग: वह सर्टिफ़िकेट बताता है जिसका इस्तेमाल इन कामों के लिए करना है अपने हस्ताक्षर करें ऐप का इस्तेमाल करें.
  • डिपेंडेंसी: इसमें लाइब्रेरी, फ़ाइल, और मॉड्यूल की जानकारी होती है इस मॉड्यूल के लिए डिपेंडेंसी. डिपेंडेंसी जोड़ना, उनमें बदलाव करना, और उन्हें मिटाना इस पैनल से. मॉड्यूल की डिपेंडेंसी के बारे में ज़्यादा जानकारी के लिए, बिल्ड वैरिएंट कॉन्फ़िगर करना देखें.

  • वैरिएंट बनाना: इससे आपको अलग-अलग फ़्लेवर और बिल्ड टाइप को कॉन्फ़िगर करने की सुविधा मिलती है आपके प्रोजेक्ट के लिए.

    • फ़्लेवर: इसकी मदद से, एक से ज़्यादा बिल्ड फ़्लेवर बनाए जा सकते हैं. इसमें हर फ़्लेवर, कॉन्फ़िगरेशन सेटिंग का एक सेट तय करता है. जैसे, मॉड्यूल का कम से कम और टारगेट SDK टूल वर्शन और वर्शन कोड और वर्शन का नाम.

      उदाहरण के लिए, एक ऐसा फ़्लेवर तय किया जा सकता है जिसमें SDK टूल का वर्शन कम से कम 21 और उसका टारगेट SDK टूल 29 हो. साथ ही, एक ऐसा वर्शन जिसमें ऐप्लिकेशन का वर्शन कम से कम 24 और टारगेट SDK 33 हो.

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