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

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 संग्रह (AAR) फ़ाइल है, जिसे आप यह आपके Android ऐप्लिकेशन मॉड्यूल के लिए निर्भर करता है.
  • Android नेटिव लाइब्रेरी: इसमें काम करने वाले सभी फ़ाइल टाइप शामिल हैं किसी Android प्रोजेक्ट में, Android लाइब्रेरी की तरह ही होता है. हालांकि, Android की नेटिव लाइब्रेरी में नेटिव C++ सोर्स कोड शामिल हो सकता है. बिल्ड नतीजा एक Android संग्रह (एएआर) फ़ाइल है, जिसे आप को अपने Android ऐप्लिकेशन मॉड्यूल के लिए डिपेंडेंसी के तौर पर जोड़ें.
  • Java या Kotlin लाइब्रेरी: इसमें सिर्फ़ Kotlin या Java सोर्स फ़ाइलें होती हैं. बिल्ड नतीजा एक Java संग्रह (JAR) फ़ाइल है जिसे आप आपके Android ऐप्लिकेशन मॉड्यूल या अन्यKotlin या Java प्रोजेक्ट के लिए डिपेंडेंसी.

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

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

ग्रूवी

dependencies {
    implementation project(':my-library-module')
}

Kotlin

dependencies {
    implementation(project(":my-library-module"))
}

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

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

Android व्यू और Android व्यू में ये शामिल हैं:

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

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

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

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

असल प्रोजेक्ट की फ़ाइल संरचना, जिसमें 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/
इसमें आपके होस्ट जेवीएम पर चलने वाले लोकल टेस्ट का कोड शामिल होता है.
build.gradle या build.gradle.kts (मॉड्यूल)
यह मॉड्यूल के हिसाब से बिल्ड कॉन्फ़िगरेशन के बारे में बताता है. build.gradle अगर आप अपनी बिल्ड स्क्रिप्ट भाषा के रूप में Groovy का इस्तेमाल कर रहे हैं, और यह सही फ़ाइल नाम है अगर Kotlin स्क्रिप्ट का इस्तेमाल किया जा रहा है, तो build.gradle.kts.
build.gradle या build.gradle.kts (प्रोजेक्ट)
यह आपके बिल्ड कॉन्फ़िगरेशन के बारे में बताता है, जो सभी मॉड्यूल पर लागू होता है. build.gradle है अगर आप अपनी बिल्ड स्क्रिप्ट भाषा के रूप में Groovy का इस्तेमाल कर रहे हैं और यह सही फ़ाइल नाम है अगर Kotlin स्क्रिप्ट का इस्तेमाल किया जा रहा है, तो build.gradle.kts. यह फ़ाइल इस प्रोजेक्ट का ज़रूरी हिस्सा है, इसलिए इसे बनाए रखें के साथ संशोधन नियंत्रण में है.

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

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

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

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

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

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

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

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