Android लाइब्रेरी, Android ऐप्लिकेशन मॉड्यूल की तरह ही होती है. इसमें सोर्स कोड, और एक Android मेनिफ़ेस्ट फ़ाइल भी हो सकती है.
हालांकि, किसी डिवाइस पर चलने वाले APK में कंपाइल करने के बजाय, एक Android लाइब्रेरी, एक Android संग्रह (AAR) फ़ाइल में इकट्ठा हो जाती है जिसे को Android ऐप्लिकेशन मॉड्यूल के लिए डिपेंडेंसी के तौर पर इस्तेमाल करें. JAR फ़ाइलों के उलट, AAR फ़ाइलों में ये सुविधाएं मिलती हैं: Android ऐप्लिकेशन के लिए:
- एएआर फ़ाइलों में Android के संसाधन और एक मेनिफ़ेस्ट फ़ाइल हो सकती है, जिससे आपको इन संसाधनों को इकट्ठा करने के साथ-साथ, लेआउट और ड्रॉएबल जैसे संसाधन भी मिलेंगे Kotlin या Java क्लास और मेथड के लिए.
- एएआर फ़ाइलों में C/C++ हो सकता है लाइब्रेरी ऐप्लिकेशन मॉड्यूल के C/C++ कोड के ज़रिए इस्तेमाल किया जा सकता है.
लाइब्रेरी मॉड्यूल इन स्थितियों में काम आता है:
- कई ऐप्लिकेशन बनाते समय, जिनमें से कुछ एक जैसे कॉम्पोनेंट, जैसे कि गतिविधियां, सेवाएं या यूज़र इंटरफ़ेस (यूआई) लेआउट
- ऐसा ऐप्लिकेशन बनाते समय जो APK के कई वैरिएशन में मौजूद है, जैसे यह वर्शन, बिना किसी शुल्क के और पैसे चुकाकर लिया जाने वाला वर्शन है, जो मुख्य कॉम्पोनेंट के साथ काम करता है
दोनों ही मामलों में, जिन फ़ाइलों को फिर से इस्तेमाल करना है उन्हें लाइब्रेरी मॉड्यूल में ले जाएं और इसके बाद, लाइब्रेरी को हर ऐप्लिकेशन मॉड्यूल के लिए डिपेंडेंसी के तौर पर जोड़ें.
इस पेज पर, Android लाइब्रेरी बनाने और उसे इस्तेमाल करने का तरीका बताया गया है मॉड्यूल का इस्तेमाल नहीं किया जाएगा. लाइब्रेरी पब्लिश करने का तरीका जानने के लिए, यह पढ़ें अपनी लाइब्रेरी पब्लिश करना
लाइब्रेरी मॉड्यूल बनाना
अपने प्रोजेक्ट में एक नया लाइब्रेरी मॉड्यूल बनाने के लिए, इस तरह से आगे बढ़ें:
- फ़ाइल > नया > नया मॉड्यूल.
- इसके बाद, आपको नया मॉड्यूल बनाएं डायलॉग बॉक्स दिखेगा,
Android लाइब्रेरी पर क्लिक करके, आगे बढ़ें पर क्लिक करें.
आपके पास Kotlin या Java लाइब्रेरी बनाने का विकल्प भी है, यह एक परंपरागत JAR फ़ाइल बनाता है. वहीं JAR फ़ाइल कई लोगों के लिए काम की होती है प्रोजेक्ट—खास तौर पर तब, जब आपको अन्य प्रोजेक्ट के साथ कोड शेयर करना हो यह आपको Android के संसाधनों या मेनिफ़ेस्ट को शामिल करने की अनुमति नहीं देता है फ़ाइलें शामिल हैं, जो Android प्रोजेक्ट में कोड का दोबारा इस्तेमाल करने के लिए बहुत काम की है. यह गाइड Android लाइब्रेरी बनाने पर फ़ोकस करता है.
- अपनी लाइब्रेरी को कोई नाम दें और कोड के लिए, SDK टूल का कम से कम वर्शन चुनें लाइब्रेरी में जाकर, पूरा करें पर क्लिक करें.
Gradle प्रोजेक्ट सिंक होने के बाद, लाइब्रेरी मॉड्यूल प्रोजेक्ट पैनल में. अगर आपको नया मॉड्यूल नहीं दिखता है, तो फ़ोल्डर में, पक्का करें कि पैनल में Android व्यू दिख रहा हो.
किसी ऐप्लिकेशन मॉड्यूल को लाइब्रेरी मॉड्यूल में बदलना
अगर आपके पास कोई ऐसा मौजूदा ऐप्लिकेशन मॉड्यूल है जिसके कोड को आपको फिर से इस्तेमाल करना है, तो तो इसे लाइब्रेरी मॉड्यूल में इस तरह बदला जा सकता है:
- अगर इस्तेमाल किया जा रहा है, तो मॉड्यूल-लेवल
build.gradle
फ़ाइल को खोलें अगर Kotlin का इस्तेमाल किया जा रहा है, तो ग्रूवी याbuild.gradle.kts
फ़ाइल स्क्रिप्ट. applicationId
के लिए लाइन मिटाएं. सिर्फ़ Android ऐप्लिकेशन मॉड्यूल इसे तय कर सकता है.- फ़ाइल में सबसे ऊपर ऐसे `प्लग इन` ब्लॉक ढूंढें जो इस तरह दिखते हैं:
ग्रूवी
plugins { id 'com.android.application' }
Kotlin
plugins { id("com.android.application") }
इसे निम्न में बदलें:
ग्रूवी
plugins { id 'com.android.library' }
Kotlin
plugins { id("com.android.library") }
- फ़ाइल सेव करें और फ़ाइल > प्रोजेक्ट को Gradle फ़ाइलों के साथ सिंक करें.
मॉड्यूल की बनावट पहले जैसी ही है, लेकिन अब यह हो गया है Android लाइब्रेरी के तौर पर काम करता है. बिल्ड एक AAR फ़ाइल बनाता है की जगह पर है.
एएआर फ़ाइल बनाने के लिए, इसमें लाइब्रेरी मॉड्यूल चुनें प्रोजेक्ट विंडो और क्लिक करें बिल्ड > बिल्ड APK.
प्रोजेक्ट स्ट्रक्चर डायलॉग के साथ डिपेंडेंसी जोड़ें
प्रोजेक्ट स्ट्रक्चर डायलॉग का इस्तेमाल करके, अपने प्रोजेक्ट. इन सेक्शन में, डायलॉग बॉक्स जोड़ने के लिए इसका इस्तेमाल करने का तरीका बताया गया है निर्भरता.
उसी प्रोजेक्ट में अपनी लाइब्रेरी का इस्तेमाल करना
किसी दूसरे ऐप्लिकेशन या लाइब्रेरी मॉड्यूल में नई Android लाइब्रेरी के कोड का इस्तेमाल करने के लिए उसी प्रोजेक्ट में, प्रोजेक्ट-लेवल की डिपेंडेंसी जोड़ें:
- फ़ाइल > प्रोजेक्ट पर जाएं स्ट्रक्चर > डिपेंडेंसी.
- वह मॉड्यूल चुनें जिसमें आपको लाइब्रेरी जोड़नी है.
- एलान की गई डिपेंडेंसी टैब में, क्लिक करें
और चुनें मेन्यू से मॉड्यूल डिपेंडेंसी.
मॉड्यूल डिपेंडेंसी जोड़ें डायलॉग में, अपना लाइब्रेरी मॉड्यूल चुनें.
वह कॉन्फ़िगरेशन चुनें जिसके लिए इस डिपेंडेंसी की ज़रूरत है या चुनें लागू करें, अगर यह सभी कॉन्फ़िगरेशन पर लागू होता है, तो ठीक है पर क्लिक करें.
Android Studio आपके मॉड्यूल की build.gradle
या build.gradle.kts
फ़ाइल में बदलाव करता है
नीचे दिए गए फ़ॉर्म में डिपेंडेंसी जोड़ें:
ग्रूवी
implementation project(path: ":example-library")
Kotlin
implementation(project(":example-library"))
अपनी लाइब्रेरी को दूसरे प्रोजेक्ट में इस्तेमाल करना
डिपेंडेंसी (जेएआर और एएआर) शेयर करने का सुझाया गया तरीका, Maven का इस्तेमाल करना है डेटा संग्रह स्थान, जिसे किसी सेवा पर होस्ट किया जाता है, जैसे Maven Central या को व्यवस्थित करें. इसका इस्तेमाल करने के बारे में ज़्यादा जानकारी पाने के लिए, Maven रिपॉज़िटरी, रिमोट देखें डेटा स्टोर करने की जगहें.
जब किसी Android लाइब्रेरी को Maven रिपॉज़िटरी में पब्लिश किया जाता है, तो मेटाडेटा शामिल किए जाने चाहिए, ताकि लाइब्रेरी की डिपेंडेंसी ज़्यादा इस्तेमाल करने की ज़रूरत नहीं होती. ऐसा करने पर, अगर लाइब्रेरी की डुप्लीकेट कॉपी अपने-आप हट जाएगी, तो तो इसका इस्तेमाल कई जगहों पर किया गया हो.
किसी दूसरे प्रोजेक्ट में, किसी दूसरे ऐप्लिकेशन मॉड्यूल में अपनी Android लाइब्रेरी के कोड का इस्तेमाल करने के लिए, इस तरह आगे बढ़ें:
- इस पर नेविगेट करें फ़ाइल > प्रोजेक्ट का स्ट्रक्चर > डिपेंडेंसी.
- एलान की गई डिपेंडेंसी टैब में, क्लिक करें
और चुनें मेन्यू में लाइब्रेरी डिपेंडेंसी.
लाइब्रेरी डिपेंडेंसी जोड़ें डायलॉग में, खोज बॉक्स का इस्तेमाल करके लाइब्रेरी को जोड़ना है. यह फ़ॉर्म,
dependencyResolutionManagement { repositories {...}}
ब्लॉक मेंsettings.gradle
याsettings.gradle.kts
फ़ाइल.वह कॉन्फ़िगरेशन चुनें जिसके लिए इस डिपेंडेंसी की ज़रूरत है या चुनें लागू करें, अगर यह सभी कॉन्फ़िगरेशन पर लागू होता है, तो ठीक है पर क्लिक करें.
यह पुष्टि करने के लिए अपने ऐप्लिकेशन की build.gradle
या build.gradle.kts
फ़ाइल देखें कि
बिल्ड कॉन्फ़िगरेशन के हिसाब से, नीचे दिया गया एलान दिखेगा
जिन्हें आपने चुना है):
ग्रूवी
implementation 'com.example:examplelibrary:1.0.0'
Kotlin
implementation("com.example:examplelibrary:1.0.0")
डिपेंडेंसी के तौर पर एएआर या जेएआर जोड़ना
किसी दूसरे ऐप्लिकेशन मॉड्यूल में अपनी Android लाइब्रेरी के कोड का इस्तेमाल करने के लिए, नीचे दिया गया तरीका अपनाएं:
- फ़ाइल > पर जाएं प्रोजेक्ट का स्ट्रक्चर > डिपेंडेंसी.
- एलान की गई डिपेंडेंसी टैब में, क्लिक करें
और Jar चुनें निर्भर है या नहीं.
जार/आर डिपेंडेंसी जोड़ें डायलॉग में, अपने एएआर का पाथ डालें या JAR फ़ाइल का इस्तेमाल करके, वह कॉन्फ़िगरेशन चुनें जिस पर निर्भरता लागू होती है. अगर लाइब्रेरी सभी कॉन्फ़िगरेशन के लिए उपलब्ध होनी चाहिए, तो लागू करने के लिए कॉन्फ़िगरेशन.
यह पुष्टि करने के लिए अपने ऐप्लिकेशन की
build.gradle
याbuild.gradle.kts
फ़ाइल देखें कि बिल्ड कॉन्फ़िगरेशन के हिसाब से, नीचे दिया गया एलान दिखेगा जिन्हें आपने चुना है):ग्रूवी
implementation files('my_path/my_lib.aar')
Kotlin
implementation(files("my_path/my_lib.aar"))
Android Studio के बाहर चल रहे Gradle बिल्ड पर डिपेंडेंसी इंपोर्ट करने के लिए,
में डिपेंडेंसी के लिए पाथ जोड़ें
आपके ऐप्लिकेशन की build.gradle
या build.gradle.kts
फ़ाइल. उदाहरण के लिए:
ग्रूवी
dependencies { implementation fileTree(dir: "libs", include: ["*.jar", "*.aar"]) }
Kotlin
dependencies { implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar", "*.aar")))) }
Gradle डिपेंडेंसी जोड़ने के बारे में ज़्यादा जानने के लिए, देखें बिल्ड डिपेंडेंसी जोड़ें.
सार्वजनिक संसाधन का एलान करना
संसाधनों में आपके प्रोजेक्ट की res/
डायरेक्ट्री की सभी फ़ाइलें शामिल होती हैं,
जैसे कि इमेज. लाइब्रेरी में मौजूद सभी संसाधन डिफ़ॉल्ट रूप से सार्वजनिक पर सेट होते हैं. सभी को
संसाधन अस्पष्ट रूप से निजी होते हैं, आपको कम से कम एक विशिष्ट विशेषता परिभाषित करनी होगी
सार्वजनिक तौर पर शेयर करें.
सार्वजनिक संसाधन के बारे में बताने के लिए, <public>
एलान जोड़ें
आपकी लाइब्रेरी की public.xml
फ़ाइल में. अगर आपने 'सार्वजनिक' के तौर पर नहीं जोड़ा है
संसाधनों को शामिल नहीं करना है, तो आपको इसमें public.xml
फ़ाइल बनानी होगी
आपकी लाइब्रेरी की res/values/
डायरेक्ट्री.
नीचे दिया गया उदाहरण कोड
mylib_app_name
और mylib_public_string
नाम:
<resources> <public name="mylib_app_name" type="string"/> <public name="mylib_public_string" type="string"/> </resources>
उपयोगकर्ताओं को आपकी लाइब्रेरी में मौजूद संसाधनों को ऐक्सेस करने से रोकने के लिए
केवल आंतरिक उपयोग के लिए, इस स्वचालित निजी पद का उपयोग करें
एक या एक से ज़्यादा सार्वजनिक संसाधनों के बारे में जानकारी दी जा सकती है. वैकल्पिक रूप से, आप
खाली <public />
टैग जोड़कर, सभी संसाधनों को निजी बनाया जा सकता है. यह
किसी को भी सार्वजनिक के तौर पर मार्क नहीं करता और सभी संसाधनों को निजी के तौर पर सेट करता है.
ऐसे संसाधन जिन्हें आपको दिखाना है आपकी लाइब्रेरी का इस्तेमाल करने वाले डेवलपर को सार्वजनिक किया जाना चाहिए.
सीधे तौर पर एट्रिब्यूट को निजी बनाने से, आपकी लाइब्रेरी का इस्तेमाल नहीं कर सकते आंतरिक लाइब्रेरी संसाधनों से कोड पूरा करने के सुझाव पाने से साथ ही, उपयोगकर्ताओं को निजी संसाधनों का नाम बदलने या उन्हें हटाने की सुविधा देता है. क्लाइंट के साथ काम करता है. निजी संसाधनों को कोड पूरा होने से फ़िल्टर करके बाहर निकाल दिया जाता है, साथ ही, कोशिश करने पर लिंट टूल आपको चेतावनी देता है का इस्तेमाल करें.
लाइब्रेरी बनाते समय, 'Android Gradle प्लग इन', सार्वजनिक संसाधन इस्तेमाल करता है
परिभाषाएं और उन्हें public.txt
फ़ाइल में एक्सट्रैक्ट करता है, जो
तो उसे AAR फ़ाइल में पैकेज किया जाता है.
लाइब्रेरी मॉड्यूल के डेवलपमेंट से जुड़ी ज़रूरी बातें
अपने लाइब्रेरी मॉड्यूल और डिपेंडेंट ऐप्लिकेशन डेवलप करते समय, इन बातों का ध्यान रखें: गतिविधियों और सीमाओं का पालन करते हैं.
लाइब्रेरी को प्राथमिकता के क्रम में मर्ज किया जाता है.
अपने Android ऐप्लिकेशन मॉड्यूल में लाइब्रेरी मॉड्यूल के रेफ़रंस जोड़ने के बाद, तो उनकी प्राथमिकता को सेट किया जा सकता है. बिल्ड के समय, लाइब्रेरी को एक-एक करके ऐप्लिकेशन के साथ मर्ज किया जाता है. सबसे कम वैल्यू से शुरू होती है प्राथमिकता से जोड़ दिया जाता है.
रिसॉर्स को मर्ज करने वाले विवादों से बचें.
बिल्ड टूल, लाइब्रेरी मॉड्यूल से संसाधनों को मर्ज करने के लिए संसाधनों को डिपेंडेंट ऐप्लिकेशन मॉड्यूल. अगर किसी संसाधन आईडी को दोनों मॉड्यूल में दिखाया गया है, तो ऐप्लिकेशन के संसाधन का इस्तेमाल होता है.
अगर एक से ज़्यादा एएआर लाइब्रेरी के बीच टकराव होता है, तो एक यह डिपेंडेंसी सूची में सबसे पहले मौजूद लाइब्रेरी (आपके ब्राउज़र के सबसे नज़दीक)
dependencies
ब्लॉक) का इस्तेमाल किया गया है.संसाधनों के टकराव से बचने के लिए, इसका इस्तेमाल करें ऐसी
R
क्लास जिनमें बदलाव नहीं किया जा सकता. अगर ऐसा करना मुमकिन नहीं है, तो प्रीफ़िक्स या अन्य एक जैसी नाम वाली स्कीम होनी चाहिए, जो मॉड्यूल के लिए खास है (या है यह यूनीक होता है).मल्टी-मॉड्यूल बिल्ड में JAR डिपेंडेंसी को इस तरह से समझा जाता है ट्रांज़िटिव डिपेंडेंसी.
जब AAR आउटपुट करने वाले किसी लाइब्रेरी प्रोजेक्ट में JAR डिपेंडेंसी जोड़ी जाती है, JAR को लाइब्रेरी मॉड्यूल की मदद से प्रोसेस किया जाता है और उन्हें इसके AAR के साथ पैकेज किया जाता है.
हालांकि, अगर आपके प्रोजेक्ट में ऐसा लाइब्रेरी मॉड्यूल है जिसे कोई ऐप्लिकेशन इस्तेमाल करता है मॉड्यूल का इस्तेमाल करता है, तो ऐप्लिकेशन मॉड्यूल लाइब्रेरी की लोकल JAR डिपेंडेंसी को ट्रांज़िटिव डिपेंडेंसी. इस मामले में, ऐप्लिकेशन लोकल JAR प्रोसेस करता है मॉड्यूल जो उसका इस्तेमाल करता है, न कि लाइब्रेरी मॉड्यूल के ज़रिए. इससे वीडियो की रफ़्तार बढ़ोतरी के साथ बिल्ड शामिल हो सकता है. ये बिल्ड लाइब्रेरी के कोड में बदलाव करने की वजह से होते हैं.
लोकल JAR डिपेंडेंसी की वजह से Java संसाधन से जुड़े सभी विवादों को हल करना ज़रूरी है लाइब्रेरी का इस्तेमाल करने वाले ऐप्लिकेशन मॉड्यूल में.
लाइब्रेरी मॉड्यूल, बाहरी JAR लाइब्रेरी पर निर्भर कर सकता है.
किसी बाहरी लाइब्रेरी पर निर्भर लाइब्रेरी मॉड्यूल बनाया जा सकता है. इस मामले में, डिपेंडेंट मॉड्यूल बनाना होगा जिसमें बाहरी लाइब्रेरी शामिल हो.
ध्यान दें कि लाइब्रेरी मॉड्यूल और डिपेंडेंट ऐप्लिकेशन, दोनों को बाहरी लाइब्रेरी की मेनिफ़ेस्ट फ़ाइलों में
<uses-library>
एलिमेंट.ऐप्लिकेशन मॉड्यूल का
minSdkVersion
इसके बराबर होना चाहिए या .लाइब्रेरी को डिपेंडेंट ऐप्लिकेशन मॉड्यूल के हिस्से के तौर पर कंपाइल किया जाता है, ताकि एपीआई का इस्तेमाल होना चाहिए, जो लाइब्रेरी मॉड्यूल में ऐप्लिकेशन के प्लैटफ़ॉर्म वर्शन के साथ काम करता हो मॉड्यूल का समर्थन करता है.
हर लाइब्रेरी मॉड्यूल अपनी
R
क्लास बनाता है.डिपेंडेंट ऐप्लिकेशन मॉड्यूल बनाने के बाद, लाइब्रेरी मॉड्यूल को एक AAR फ़ाइल को ऐप्लिकेशन मॉड्यूल में जोड़ा गया. इसलिए, प्रत्येक लाइब्रेरी का अपना
R
क्लास का नाम, लाइब्रेरी के पैकेज के नाम के हिसाब से रखा जाता है.मुख्य मॉड्यूल और लाइब्रेरी मॉड्यूल से जनरेट की गई
R
क्लास मुख्य मॉड्यूल के पैकेज समेत अन्य सभी ज़रूरी पैकेज में बनाया जाता है और लाइब्रेरी की पैकेज.लाइब्रेरी मॉड्यूल में अपना ProGuard कॉन्फ़िगरेशन शामिल हो सकता है फ़ाइल से लिया जाता है.
अगर आपके पास कोई ऐसा लाइब्रेरी प्रोजेक्ट है जिसका इस्तेमाल एएआर बनाने और पब्लिश करने के लिए किया जाता है, तो आपकी लाइब्रेरी के बिल्ड कॉन्फ़िगरेशन में ProGuard कॉन्फ़िगरेशन फ़ाइल जोड़ सकता है. अगर आपको ऐसा करने पर, 'Android Gradle प्लग इन' आपके बताए गए ProGuard नियमों को लागू करता है. बिल्ड टूल इस फ़ाइल को लाइब्रेरी के लिए जनरेट की गई AAR फ़ाइल में एम्बेड करते हैं मॉड्यूल का इस्तेमाल नहीं किया जाएगा. जब लाइब्रेरी को किसी ऐप्लिकेशन मॉड्यूल में जोड़ा जाता है, तो लाइब्रेरी की ProGuard फ़ाइल को इसकी ProGuard कॉन्फ़िगरेशन फ़ाइल (
proguard.txt
) में जोड़ा गया है ऐप मॉड्यूल का इस्तेमाल करके ऐसा किया जा सकता है.अपने लाइब्रेरी मॉड्यूल में ProGuard फ़ाइल को एम्बेड करने से, यह पक्का करने में मदद मिलती है कि आपकी लाइब्रेरी पर निर्भर ऐप्लिकेशन मॉड्यूल को अपने अपनी लाइब्रेरी का इस्तेमाल करने के लिए ProGuard फ़ाइलें. जब Android Studio बिल्ड सिस्टम बनता है अगर आपका ऐप्लिकेशन डाउनलोड किया जाता है, तो वह ऐप्लिकेशन मॉड्यूल और लाइब्रेरी, दोनों के निर्देशों का इस्तेमाल करता है. तो के लिए, एक अलग चरण में लाइब्रेरी पर कोड श्रिंकर चलाने की ज़रूरत नहीं है.
अपनी लाइब्रेरी प्रोजेक्ट में ProGuard के नियम जोड़ने के लिए, इसमें
consumerProguardFiles
प्रॉपर्टी के साथ फ़ाइल का नाम आपकी लाइब्रेरी केbuild.gradle
में सेdefaultConfig
ब्लॉक याbuild.gradle.kts
फ़ाइल.उदाहरण के लिए, नीचे दिए गए स्निपेट सेट लाइब्रेरी के ProGuard कॉन्फ़िगरेशन के तौर पर
lib-proguard-rules.txt
फ़ाइल:ग्रूवी
android { defaultConfig { consumerProguardFiles 'lib-proguard-rules.txt' } ... }
Kotlin
android { defaultConfig { consumerProguardFiles("lib-proguard-rules.txt") } ... }
हालांकि, अगर आपकी लाइब्रेरी मॉड्यूल किसी मल्टी-मॉड्यूल बिल्ड का हिस्सा है, किसी APK में कंपाइल किया जाता है और एएआर जनरेट नहीं किया जाता, रन कोड होता है सिर्फ़ लाइब्रेरी का इस्तेमाल करने वाले ऐप्लिकेशन मॉड्यूल पर छोटा करना. ज़्यादा जानकारी के लिए ProGuard के नियमों और उनके इस्तेमाल के बारे में पढ़ें. डेटा को छोटा करें, अस्पष्ट बनाएं, और उसे ऑप्टिमाइज़ करें ऐप्लिकेशन है.
-
लाइब्रेरी मॉड्यूल को टेस्ट करना करीब-करीब वैसा ही है ऐप्लिकेशन की जांच करने के लिए.
मुख्य अंतर यह है कि लाइब्रेरी और उसकी डिपेंडेंसी को टेस्ट APK की डिपेंडेंसी के तौर पर अपने-आप शामिल कर लिया जाता है. इसका मतलब है कि टेस्ट APK में न सिर्फ़ खुद का कोड, बल्कि लाइब्रेरी का AAR भी शामिल होता है और इसकी सभी डिपेंडेंसी. टेस्ट में कोई भी अलग ऐप्लिकेशन नहीं है, इसलिए
androidTest
टास्क सिर्फ़ टेस्ट को इंस्टॉल (और अनइंस्टॉल) करता है APK के साथ काम करता है.मर्ज करते समय एक से ज़्यादा मेनिफ़ेस्ट फ़ाइलें हैं, तो Gradle, डिफ़ॉल्ट प्राथमिकता क्रम को फ़ॉलो करता है और लाइब्रेरी के मेनिफ़ेस्ट को, टेस्ट APK के मुख्य मेनिफ़ेस्ट में मर्ज कर देता है.
एएआर फ़ाइल की बनावट
एएआर फ़ाइल का फ़ाइल एक्सटेंशन .aar
है और Maven आर्टफ़ैक्ट का टाइप यह है
aar
भी. यह फ़ाइल एक ZIP फ़ाइल है. सिर्फ़ यह जानकारी देना ज़रूरी है
/AndroidManifest.xml
.
एएआर फ़ाइल में इनमें से एक या एक से ज़्यादा विकल्प भी शामिल हो सकते हैं एंट्री:
/classes.jar
/res/
/R.txt
/public.txt
/assets/
/libs/name.jar
/jni/abi_name/name.so
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है (जहां abi_name इनमें से एक है Android पर काम करने वाले एबीआई)/proguard.txt
/lint.jar
/api.jar
- नेटिव एक्सपोर्ट करने के लिए
/prefab/
लाइब्रेरी