- सिंटैक्स:
<application android:allowTaskReparenting=["true" | "false"] android:allowBackup=["true" | "false"] android:allowClearUserData=["true" | "false"] android:allowNativeHeapPointerTagging=["true" | "false"] android:appCategory=["accessibility" | "audio" | "game" | "image" | "maps" | "news" | "productivity" | "social" | "video"] android:backupAgent="string" android:backupInForeground=["true" | "false"] android:banner="drawable resource" android:dataExtractionRules="string resource" android:debuggable=["true" | "false"] android:description="string resource" android:enabled=["true" | "false"] android:enableOnBackInvokedCallback=["true" | "false"] android:extractNativeLibs=["true" | "false"] android:fullBackupContent="string" android:fullBackupOnly=["true" | "false"] android:gwpAsanMode=["always" | "never"] android:hasCode=["true" | "false"] android:hasFragileUserData=["true" | "false"] android:hardwareAccelerated=["true" | "false"] android:icon="drawable resource" android:isGame=["true" | "false"] android:isMonitoringTool=["parental_control" | "enterprise_management" | "other"] android:killAfterRestore=["true" | "false"] android:largeHeap=["true" | "false"] android:label="string resource" android:logo="drawable resource" android:manageSpaceActivity="string" android:name="string" android:networkSecurityConfig="xml resource" android:permission="string" android:persistent=["true" | "false"] android:process="string" android:restoreAnyVersion=["true" | "false"] android:requestLegacyExternalStorage=["true" | "false"] android:requiredAccountType="string" android:resizeableActivity=["true" | "false"] android:restrictedAccountType="string" android:supportsRtl=["true" | "false"] android:taskAffinity="string" android:testOnly=["true" | "false"] android:theme="resource or theme" android:uiOptions=["none" | "splitActionBarWhenNarrow"] android:usesCleartextTraffic=["true" | "false"] android:vmSafeMode=["true" | "false"] > . . . </application>
- इसमें शामिल है:
<manifest>- इसमें ये शामिल हो सकते हैं:
<activity><activity-alias><meta-data><service><receiver><profileable><provider><uses-library><uses-native-library><property>- विवरण:
ऐप्लिकेशन का एलान. इस एलिमेंट में ऐसे सब-एलिमेंट होते हैं जो ऐप्लिकेशन के हर कॉम्पोनेंट के बारे में बताते हैं. साथ ही, इसमें ऐसे एट्रिब्यूट होते हैं जो सभी कॉम्पोनेंट पर असर डाल सकते हैं.
इनमें से कई एट्रिब्यूट, जैसे कि
icon,label,permission,process,taskAffinity, औरallowTaskReparenting, कॉम्पोनेंट एलिमेंट के संबंधित एट्रिब्यूट के लिए डिफ़ॉल्ट वैल्यू सेट करते हैं.debuggable,enabled,description, औरallowClearUserDataजैसी अन्य प्रॉपर्टी, पूरे ऐप्लिकेशन के लिए वैल्यू सेट करती हैं. साथ ही, इन्हें कॉम्पोनेंट से बदला नहीं जा सकता.- एट्रिब्यूट
android:allowTaskReparenting- क्या ऐप्लिकेशन की ओर से तय की गई गतिविधियां, उन्हें शुरू करने वाले टास्क से उस टास्क पर जा सकती हैं जिसके साथ उनका अफ़िनिटी स्कोर ज़्यादा है. ऐसा तब होता है, जब उस टास्क को अगली बार सबसे ऊपर लाया जाता है. अगर उन्हें एक जगह से दूसरी जगह ले जाया जा सकता है, तो
"true"और अगर उन्हें उसी टास्क के साथ रहना है जहां से उन्होंने शुरू किया था, तो"false". डिफ़ॉल्ट वैल्यू"false"है.<activity>एलिमेंट में अपनाallowTaskReparentingएट्रिब्यूट होता है. यह एट्रिब्यूट, यहां सेट की गई वैल्यू को बदल सकता है. android:allowBackupऐप्लिकेशन को बैकअप लेने और डेटा वापस लाने की सुविधा में शामिल होने की अनुमति देनी है या नहीं. अगर इस एट्रिब्यूट को
"false"पर सेट किया जाता है, तो ऐप्लिकेशन का बैकअप कभी नहीं लिया जाता और न ही उसे कभी वापस लाया जाता है. भले ही, पूरे सिस्टम का बैकअप लिया गया हो. ऐसा इसलिए, क्योंकि पूरे सिस्टम का बैकअप लेने पर, ऐप्लिकेशन का सारा डेटाadbका इस्तेमाल करके सेव हो जाता है. इस एट्रिब्यूट की डिफ़ॉल्ट वैल्यू"true"है.ध्यान दें: Android 12 (एपीआई लेवल 31) या इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, यह तरीका अलग-अलग होता है. डिवाइस बनाने वाली कुछ कंपनियों के डिवाइसों पर, ऐप्लिकेशन की फ़ाइलों को एक डिवाइस से दूसरे डिवाइस पर माइग्रेट करने की सुविधा बंद नहीं की जा सकती.
हालांकि, इस एट्रिब्यूट को
"false"पर सेट करके, अपने ऐप्लिकेशन की फ़ाइलों के क्लाउड-आधारित बैकअप और उन्हें वापस लाने की सुविधा बंद की जा सकती है. भले ही, आपका ऐप्लिकेशन Android 12 (एपीआई लेवल 31) या इसके बाद के वर्शन को टारगेट करता हो.ज़्यादा जानकारी के लिए, Android 12 (एपीआई लेवल 31) या इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के व्यवहार में हुए बदलावों के बारे में जानकारी देने वाले पेज पर जाएं. इसके बाद, बैकअप और वापस लाना सेक्शन देखें.
android:allowClearUserDataऐप्लिकेशन को उपयोगकर्ता का डेटा रीसेट करने की अनुमति देनी है या नहीं. इस डेटा में फ़्लैग शामिल होते हैं. जैसे, उपयोगकर्ता ने टूलटिप देखी हैं या नहीं. साथ ही, इसमें उपयोगकर्ता की पसंद के मुताबिक बनाई जा सकने वाली सेटिंग और प्राथमिकताएं भी शामिल होती हैं. इस एट्रिब्यूट की डिफ़ॉल्ट वैल्यू
"true"है.ध्यान दें: सिर्फ़ सिस्टम इमेज का हिस्सा बनने वाले ऐप्लिकेशन, इस एट्रिब्यूट की वैल्यू साफ़ तौर पर बता सकते हैं. तीसरे पक्ष के ऐप्लिकेशन, इस एट्रिब्यूट को अपनी मेनिफ़ेस्ट फ़ाइलों में शामिल नहीं कर सकते.
ज़्यादा जानकारी के लिए, डेटा के बैकअप की खास जानकारी देखें.
android:allowNativeHeapPointerTaggingइससे पता चलता है कि ऐप्लिकेशन, Heap पॉइंटर टैगिंग की सुविधा चालू करता है या नहीं. इस एट्रिब्यूट की डिफ़ॉल्ट वैल्यू
"true"है.ध्यान दें: इस सुविधा को बंद करने से, कोड की क्वालिटी से जुड़ी समस्या ठीक नहीं होती. ऐसा हो सकता है कि आने वाले समय में हार्डवेयर डिवाइसों पर, यह मेनिफ़ेस्ट टैग काम न करे.
ज़्यादा जानकारी के लिए, टैग किए गए पॉइंटर देखें.
android:appCategoryइस ऐप्लिकेशन की कैटगरी के बारे में बताता है. कैटगरी का इस्तेमाल, कई ऐप्लिकेशन को एक साथ काम के ग्रुप में क्लस्टर करने के लिए किया जाता है. जैसे, बैटरी, नेटवर्क या डिस्क के इस्तेमाल की खास जानकारी देते समय. इस वैल्यू को सिर्फ़ उन ऐप्लिकेशन के लिए तय करें जो किसी खास कैटगरी में आते हैं.
यह इनमें से कोई एक कॉन्स्टेंट वैल्यू होनी चाहिए.
मान ब्यौरा accessibilityऐसे ऐप्लिकेशन जो मुख्य तौर पर सुलभता ऐप्लिकेशन होते हैं. जैसे, स्क्रीन रीडर. audioऐसे ऐप्लिकेशन जो मुख्य तौर पर ऑडियो या संगीत के साथ काम करते हैं. जैसे, संगीत प्लेयर. gameऐसे ऐप्लिकेशन जो मुख्य रूप से गेम हैं. imageऐसे ऐप्लिकेशन जो मुख्य रूप से इमेज या फ़ोटो के साथ काम करते हैं. जैसे, कैमरा या गैलरी ऐप्लिकेशन. mapsऐसे ऐप्लिकेशन जो मुख्य रूप से मैप ऐप्लिकेशन हैं. जैसे, नेविगेशन ऐप्लिकेशन. newsऐसे ऐप्लिकेशन जो मुख्य रूप से समाचार ऐप्लिकेशन हैं. जैसे, अख़बार, मैगज़ीन या खेल-कूद से जुड़े ऐप्लिकेशन. productivityऐसे ऐप्लिकेशन जो मुख्य रूप से प्रॉडक्टिविटी ऐप्लिकेशन हैं. जैसे, क्लाउड स्टोरेज या वर्कप्लेस ऐप्लिकेशन. socialऐसे ऐप्लिकेशन जो मुख्य तौर पर सोशल ऐप्लिकेशन होते हैं. जैसे, मैसेजिंग, कम्यूनिकेशन, ईमेल या सोशल नेटवर्क ऐप्लिकेशन. videoऐसे ऐप्लिकेशन जो मुख्य रूप से वीडियो या फ़िल्मों के साथ काम करते हैं. जैसे, वीडियो स्ट्रीमिंग वाले ऐप्लिकेशन. android:backupAgent- ऐप्लिकेशन के बैकअप एजेंट को लागू करने वाली क्लास का नाम. यह
BackupAgentकी सबक्लास है. एट्रिब्यूट की वैल्यू, पूरी तरह क्वालिफ़ाइड क्लास का नाम होती है. जैसे,"com.example.project.MyBackupAgent". हालांकि, अगर नाम का पहला वर्ण अवधि है, तो इसे शॉर्टहैंड के तौर पर इस्तेमाल किया जाता है. उदाहरण के लिए,".MyBackupAgent". इसे<manifest>एलिमेंट में दिए गए पैकेज के नाम में जोड़ा जाता है.कोई डिफ़ॉल्ट वैल्यू नहीं है. नाम सटीक होना चाहिए.
android:backupInForeground- इससे पता चलता है कि ऑटो बैकअप की सुविधा इस ऐप्लिकेशन पर काम करती है. भले ही, ऐप्लिकेशन फ़ोरग्राउंड-इक्विवेलेंट स्टेट में हो. ऑटो बैकअप की प्रोसेस के दौरान, सिस्टम किसी ऐप्लिकेशन को बंद कर देता है. इसलिए, इस एट्रिब्यूट का इस्तेमाल सावधानी से करें. इस फ़्लैग को
"true"पर सेट करने से, ऐप्लिकेशन के चालू होने पर उसके व्यवहार पर असर पड़ सकता है.डिफ़ॉल्ट वैल्यू
"false"है. इसका मतलब है कि ओएस, ऐप्लिकेशन के फ़ोरग्राउंड में चलने के दौरान उसका बैक अप लेने से बचता है. जैसे, कोई ऐसा संगीत ऐप्लिकेशन जोstartForeground()स्थिति में किसी सेवा का इस्तेमाल करके संगीत चला रहा हो. android:banner- ड्रॉ करने लायक संसाधन
जो इससे जुड़े आइटम के लिए, बड़ा ग्राफ़िकल बैनर उपलब्ध कराता है. इसका इस्तेमाल
<application>टैग के साथ करके, सभी ऐप्लिकेशन गतिविधियों के लिए डिफ़ॉल्ट बैनर उपलब्ध कराएं. इसके अलावा, इसका इस्तेमाल<activity>टैग के साथ करके, किसी खास गतिविधि के लिए बैनर उपलब्ध कराएं.सिस्टम, Android TV की होम स्क्रीन पर किसी ऐप्लिकेशन को दिखाने के लिए इस बैनर का इस्तेमाल करता है. इसलिए, इस एट्रिब्यूट की वैल्यू सिर्फ़ उन ऐप्लिकेशन के लिए दें जिनमें
CATEGORY_LEANBACK_LAUNCHERइंटेंट को हैंडल करने वाली गतिविधि मौजूद हो.इस एट्रिब्यूट को, इमेज वाली ड्रॉएबल रिसॉर्स के रेफ़रंस के तौर पर सेट किया जाता है. उदाहरण के लिए,
"@drawable/banner". कोई डिफ़ॉल्ट बैनर नहीं है.ज़्यादा जानकारी के लिए, होम स्क्रीन पर बैनर दिखाना लेख पढ़ें.
android:dataExtractionRulesऐप्लिकेशन, इस एट्रिब्यूट को किसी एक्सएमएल रिसॉर्स पर सेट कर सकते हैं. इससे वे ऐसे नियम तय कर सकते हैं जिनसे यह तय होता है कि बैकअप या ट्रांसफ़र के दौरान, डिवाइस से कौनसी फ़ाइलें और डायरेक्ट्री कॉपी की जा सकती हैं.
एक्सएमएल फ़ाइल के फ़ॉर्मैट के बारे में जानकारी पाने के लिए, बैकअप और रीस्टोर करना लेख पढ़ें.
android:debuggable- क्या ऐप्लिकेशन को डीबग किया जा सकता है. भले ही, वह उपयोगकर्ता मोड में किसी डिवाइस पर चल रहा हो. अगर ऐसा किया जा सकता है, तो
"true"और अगर ऐसा नहीं किया जा सकता, तो"false". डिफ़ॉल्ट वैल्यू"false"है. android:description- ऐप्लिकेशन के बारे में ऐसा टेक्स्ट जिसे उपयोगकर्ता पढ़ सकें. यह टेक्स्ट, ऐप्लिकेशन के लेबल से ज़्यादा लंबा और ज़्यादा जानकारी वाला होता है. वैल्यू को स्ट्रिंग रिसॉर्स के रेफ़रंस के तौर पर सेट किया जाता है. लेबल के उलट, यह रॉ स्ट्रिंग नहीं हो सकती. इसकी कोई डिफ़ॉल्ट वैल्यू नहीं होती.
android:enabled- इससे पता चलता है कि Android सिस्टम, ऐप्लिकेशन के कॉम्पोनेंट को इंस्टैंशिएट कर सकता है या नहीं. अगर ऐसा किया जा सकता है, तो
"true"और अगर नहीं किया जा सकता, तो"false". अगर वैल्यू"true"है, तो हर कॉम्पोनेंट केenabledएट्रिब्यूट से यह तय होता है कि वह कॉम्पोनेंट चालू है या नहीं. अगर वैल्यू"false"है, तो यह कॉम्पोनेंट के हिसाब से तय की गई वैल्यू को बदल देती है. साथ ही, सभी कॉम्पोनेंट बंद हो जाते हैं.डिफ़ॉल्ट वैल्यू
"true"है. android:enableOnBackInvokedCallbackइस फ़्लैग की मदद से, ऐप्लिकेशन लेवल पर प्रिडिक्टिव सिस्टम ऐनिमेशन से ऑप्ट आउट किया जा सकता है.
ऐप्लिकेशन लेवल पर पीछे जाने पर झलक दिखाने वाला हाथ का जेस्चर ऐनिमेशन बंद करने के लिए,
android:enableOnBackInvokedCallback=falseको सेट करें. साथ ही, सिस्टम कोOnBackInvokedCallbackप्लैटफ़ॉर्म एपीआई को कॉल करने से रोकने का निर्देश दें.android:extractNativeLibs- इस एट्रिब्यूट से पता चलता है कि पैकेज इंस्टॉलर, फ़ाइल सिस्टम में APK से नेटिव लाइब्रेरी निकालता है या नहीं. अगर इसे
"false"पर सेट किया जाता है, तो आपकी नेटिव लाइब्रेरी को APK में बिना कंप्रेस किए सेव किया जाता है. आपका APK बड़ा हो सकता है, लेकिन आपका ऐप्लिकेशन तेज़ी से लोड होता है, क्योंकि लाइब्रेरी सीधे तौर पर रनटाइम में APK से लोड होती हैं.extractNativeLibsकी डिफ़ॉल्ट वैल्यू,minSdkVersionऔर इस्तेमाल किए जा रहे AGP के वर्शन पर निर्भर करती है. ज़्यादातर मामलों में, डिफ़ॉल्ट व्यवहार आपकी ज़रूरत के मुताबिक होता है. इसलिए, आपको इस एट्रिब्यूट को साफ़ तौर पर सेट करने की ज़रूरत नहीं होती. android:fullBackupContent- यह एट्रिब्यूट, ऐसी एक्सएमएल फ़ाइल की ओर ले जाता है जिसमें ऑटो बैकअप के लिए, बैकअप के पूरे नियम शामिल होते हैं.
इन नियमों से यह तय होता है कि किन फ़ाइलों का बैक अप लिया जाएगा. ज़्यादा जानकारी के लिए, ऑटो बैकअप के लिए एक्सएमएल कॉन्फ़िगरेशन सिंटैक्स देखें.
इस एट्रिब्यूट की वैल्यू देना ज़रूरी नहीं है. अगर इसे तय नहीं किया जाता है, तो डिफ़ॉल्ट रूप से, ऑटो बैकअप में आपके ऐप्लिकेशन की ज़्यादातर फ़ाइलें शामिल होती हैं. ज़्यादा जानकारी के लिए, बैक अप ली गई फ़ाइलें लेख पढ़ें.
android:fullBackupOnly- इस एट्रिब्यूट से पता चलता है कि जिन डिवाइसों पर ऑटो बैकअप उपलब्ध है उन पर इसका इस्तेमाल करना है या नहीं. अगर इसे
"true"पर सेट किया जाता है, तो Android 6.0 (एपीआई लेवल 23) या इसके बाद के वर्शन वाले डिवाइस पर ऐप्लिकेशन इंस्टॉल होने पर, वह अपने-आप बैक अप ले लेता है. पुराने डिवाइसों पर, आपका ऐप्लिकेशन इस एट्रिब्यूट को अनदेखा करता है और कुंजी/वैल्यू के बैकअप लेता है.डिफ़ॉल्ट वैल्यू
"false"है. android:gwpAsanMode- इस एट्रिब्यूट से पता चलता है कि GWP-ASan का इस्तेमाल करना है या नहीं. यह नेटिव मेमोरी ऐलोकेटर की सुविधा है. इससे फ़्री की गई मेमोरी को इस्तेमाल करने और हीप-बफ़र-ओवरफ़्लो से जुड़ी गड़बड़ियों का पता लगाने में मदद मिलती है.
डिफ़ॉल्ट वैल्यू
"never"है. android:hasCode- क्या ऐप्लिकेशन में कोई DEX कोड शामिल है. इसका मतलब है कि क्या ऐप्लिकेशन में Kotlin या Java प्रोग्रामिंग लैंग्वेज का इस्तेमाल किया गया है.
अगर ऐसा है, तो
"true"और अगर ऐसा नहीं है, तो"false"डालें. जब वैल्यू"false"होती है, तो सिस्टम कॉम्पोनेंट लॉन्च करते समय किसी भी ऐप्लिकेशन कोड को लोड करने की कोशिश नहीं करता. डिफ़ॉल्ट वैल्यू"true"है.अगर ऐप्लिकेशन में नेटिव (C/C++) कोड शामिल है, लेकिन कोई DEX कोड नहीं है, तो इसे
"false"पर सेट किया जाना चाहिए. अगर APK में कोई DEX कोड नहीं है, तो"true"पर सेट होने पर ऐप्लिकेशन लोड नहीं हो पाएगा.इस प्रॉपर्टी में, डिपेंडेंसी के ज़रिए ऐप्लिकेशन में शामिल किए गए कोड का हिसाब ज़रूर होना चाहिए. अगर ऐप्लिकेशन, Java/Kotlin कोड का इस्तेमाल करने वाले AAR या सीधे तौर पर JAR पर निर्भर करता है, तो
app:hasCodeको"true"पर सेट किया जाना चाहिए या इसे डिफ़ॉल्ट के तौर पर छोड़ दिया जाना चाहिए.उदाहरण के लिए, हो सकता है कि आपका ऐप्लिकेशन Play Feature Delivery का इस्तेमाल करता हो और उसमें ऐसे फ़ीचर मॉड्यूल शामिल हों जो कोई DEX फ़ाइल जनरेट नहीं करते. DEX फ़ाइल, Android प्लैटफ़ॉर्म के लिए ऑप्टिमाइज़ किया गया बाइटकोड होता है. अगर ऐसा है, तो आपको इस प्रॉपर्टी को मॉड्यूल की मेनिफ़ेस्ट फ़ाइल में
"false"पर सेट करना होगा, ताकि रनटाइम से जुड़ी गड़बड़ियों से बचा जा सके. android:hasFragileUserData- यह तय करता है कि जब उपयोगकर्ता ऐप्लिकेशन को अनइंस्टॉल करे, तब उसे ऐप्लिकेशन का डेटा सेव रखने के लिए प्रॉम्प्ट दिखाना है या नहीं. डिफ़ॉल्ट वैल्यू
"false"है. android:hardwareAccelerated- इस ऐप्लिकेशन में सभी गतिविधियों और व्यू के लिए, हार्डवेयर की मदद से रेंडरिंग की सुविधा चालू है या नहीं. अगर यह सुविधा चालू है, तो
"true"और अगर बंद है, तो"false"डालें. अगर आपनेminSdkVersionयाtargetSdkVersionको"14"या इससे ज़्यादा पर सेट किया है, तो डिफ़ॉल्ट वैल्यू"true"होती है. इसके अलावा, यह"false"है.Android 3.0 (एपीआई लेवल 11) से, ऐप्लिकेशन के लिए हार्डवेयर-ऐक्सलरेटेड OpenGL रेंडरर उपलब्ध है. इससे कई सामान्य 2D ग्राफ़िक ऑपरेशन की परफ़ॉर्मेंस बेहतर होती है. हार्डवेयर-ऐक्सलरेटेड रेंडरर चालू होने पर, Canvas, Paint, Xfermode, ColorFilter, Shader, और Camera में ज़्यादातर कार्रवाइयां तेज़ी से होती हैं.
इससे ऐनिमेशन और स्क्रोलिंग बेहतर होती है. साथ ही, ऐप्लिकेशन ज़्यादा तेज़ी से काम करते हैं. ऐसा उन ऐप्लिकेशन के लिए भी होता है जो फ़्रेमवर्क की OpenGL लाइब्रेरी का इस्तेमाल नहीं करते हैं.
OpenGL 2D की सभी कार्रवाइयों को तेज़ नहीं किया जाता. अगर आपने हार्डवेयर-ऐक्सलरेटेड रेंडरर को चालू किया है, तो अपने ऐप्लिकेशन की जांच करें. इससे यह बिना किसी गड़बड़ी के रेंडरर का इस्तेमाल कर पाएगा.
ज़्यादा जानकारी के लिए, हार्डवेयर ऐक्सलरेशन गाइड पढ़ें.
android:icon- पूरे ऐप्लिकेशन के लिए आइकॉन और ऐप्लिकेशन के हर कॉम्पोनेंट के लिए डिफ़ॉल्ट आइकॉन.
<activity>,<activity-alias>,<service>,<receiver>, और<provider>एलिमेंट के लिए, अलग-अलगiconएट्रिब्यूट देखें.इस एट्रिब्यूट को, इमेज वाले ड्रॉएबल रिसॉर्स के रेफ़रंस के तौर पर सेट किया जाता है. जैसे,
"@drawable/icon". कोई डिफ़ॉल्ट आइकॉन नहीं है. android:isGame- यह ऐप्लिकेशन एक गेम है या नहीं. सिस्टम, गेम के तौर पर क्लासिफ़ाई किए गए ऐप्लिकेशन को एक साथ ग्रुप कर सकता है या उन्हें अन्य ऐप्लिकेशन से अलग दिखा सकता है. डिफ़ॉल्ट वैल्यू
"false"है. android:isMonitoringToolइससे पता चलता है कि इस ऐप्लिकेशन को अन्य लोगों की निगरानी करने के लिए डिज़ाइन किया गया है.
ध्यान दें: अगर कोई ऐप्लिकेशन अपने मेनिफ़ेस्ट में इस एट्रिब्यूट का एलान करता है, तो डेवलपर को Google Play पर ऐप्लिकेशन पब्लिश करने के लिए, स्टॉकरवेयर से जुड़ी नीति का पालन करना होगा.
इसकी कोई डिफ़ॉल्ट वैल्यू नहीं होती. डेवलपर को इनमें से कोई एक वैल्यू तय करनी होगी:
मान ब्यौरा "parental_control"इस तरह के ऐप्लिकेशन में 'माता-पिता/अभिभावक का कंट्रोल' सुविधा उपलब्ध होती है. ये ऐप्लिकेशन खास तौर पर उन माता-पिता के लिए हैं जो नुकसान पहुंचाने वाले कॉन्टेंट से अपने बच्चों को बचाना चाहते हैं. "enterprise_management"यह ऐप्लिकेशन उन कंपनियों के लिए है जो अपने कर्मचारियों को दिए गए डिवाइस मैनेज और ट्रैक करना चाहती हैं. "other"ऐप्लिकेशन, इस्तेमाल के ऐसे उदाहरण के लिए बनाया गया है जिसके बारे में इस टेबल में नहीं बताया गया है. android:killAfterRestoreइससे पता चलता है कि पूरे सिस्टम को वापस लाने की प्रोसेस के दौरान, ऐप्लिकेशन की सेटिंग वापस लाने के बाद ऐप्लिकेशन बंद हो जाता है या नहीं. सिंगल-पैकेज को वापस लाने की कार्रवाइयों की वजह से, ऐप्लिकेशन कभी बंद नहीं होता. आम तौर पर, पूरे सिस्टम को रीस्टोर करने की प्रोसेस सिर्फ़ एक बार होती है. ऐसा तब होता है, जब पहली बार फ़ोन सेट अप किया जाता है. आम तौर पर, तीसरे पक्ष के ऐप्लिकेशन को इस एट्रिब्यूट का इस्तेमाल करने की ज़रूरत नहीं होती.
डिफ़ॉल्ट वैल्यू
"true"होती है. इसका मतलब है कि पूरे सिस्टम को रीस्टोर करने के दौरान, ऐप्लिकेशन के डेटा को प्रोसेस करने के बाद, यह बंद हो जाता है.android:largeHeapइससे पता चलता है कि ऐप्लिकेशन की प्रोसेस, बड़े Dalvik हीप के साथ बनाई गई हैं या नहीं. यह ऐप्लिकेशन के लिए बनाई गई सभी प्रोसेस पर लागू होता है. यह सिर्फ़ उस पहले ऐप्लिकेशन पर लागू होता है जिसे किसी प्रोसेस में लोड किया गया है. अगर एक से ज़्यादा ऐप्लिकेशन को एक ही प्रोसेस का इस्तेमाल करने की अनुमति देने के लिए, शेयर किए गए उपयोगकर्ता आईडी का इस्तेमाल किया जा रहा है, तो उन सभी को इस विकल्प का लगातार इस्तेमाल करना होगा. ऐसा न करने पर, अनचाहे नतीजे मिल सकते हैं.
ज़्यादातर ऐप्लिकेशन को इसकी ज़रूरत नहीं होती. इसके बजाय, वे बेहतर परफ़ॉर्मेंस के लिए, मेमोरी के इस्तेमाल को कम करने पर फ़ोकस करते हैं. इसे चालू करने से भी, उपलब्ध मेमोरी में बढ़ोतरी की गारंटी नहीं मिलती. इसकी वजह यह है कि कुछ डिवाइसों में, कुल उपलब्ध मेमोरी सीमित होती है.
रनटाइम के दौरान उपलब्ध मेमोरी के साइज़ के बारे में क्वेरी करने के लिए,
getMemoryClass()याgetLargeMemoryClass()तरीकों का इस्तेमाल करें.android:label- ऐप्लिकेशन के लिए ऐसा लेबल जिसे उपयोगकर्ता पढ़ सकें. साथ ही, ऐप्लिकेशन के हर कॉम्पोनेंट के लिए डिफ़ॉल्ट लेबल.
<activity>,<activity-alias>,<service>,<receiver>, और<provider>एलिमेंट के लिए, अलग-अलगlabelएट्रिब्यूट देखें.लेबल को स्ट्रिंग रिसॉर्स के रेफ़रंस के तौर पर सेट किया जाता है, ताकि इसे यूज़र इंटरफ़ेस में मौजूद अन्य स्ट्रिंग की तरह स्थानीय भाषा में बदला जा सके. हालांकि, ऐप्लिकेशन डेवलप करते समय इसे सुविधा के तौर पर रॉ स्ट्रिंग के तौर पर भी सेट किया जा सकता है.
android:logo- पूरे ऐप्लिकेशन के लिए एक लोगो और गतिविधियों के लिए डिफ़ॉल्ट लोगो.
इस एट्रिब्यूट को, इमेज वाले ड्रॉएबल रिसॉर्स के रेफ़रंस के तौर पर सेट किया जाता है. जैसे,
"@drawable/logo". कोई डिफ़ॉल्ट लोगो नहीं है. android:manageSpaceActivity- यह
Activityसबक्लास का पूरी तरह क्वालिफ़ाइड नाम है. सिस्टम इसे लॉन्च करता है, ताकि उपयोगकर्ता डिवाइस पर ऐप्लिकेशन की ओर से इस्तेमाल की गई मेमोरी को मैनेज कर सकें. गतिविधि को<activity>एलिमेंट के साथ भी दिखाया जाता है. android:name- ऐप्लिकेशन के लिए लागू की गई
Applicationसबक्लास का पूरी तरह क्वालिफ़ाइड नाम. ऐप्लिकेशन प्रोसेस शुरू होने पर, इस क्लास को ऐप्लिकेशन के किसी भी कॉम्पोनेंट से पहले इंस्टैंटिएट किया जाता है.सब-क्लास ज़रूरी नहीं है. ज़्यादातर ऐप्लिकेशन के लिए इसकी ज़रूरत नहीं होती. सबक्लास के न होने पर, Android, बेस
Applicationक्लास के इंस्टेंस का इस्तेमाल करता है. android:networkSecurityConfigइससे उस एक्सएमएल फ़ाइल का नाम पता चलता है जिसमें आपके ऐप्लिकेशन का नेटवर्क सुरक्षा कॉन्फ़िगरेशन होता है. यह वैल्यू, कॉन्फ़िगरेशन वाली एक्सएमएल रिसॉर्स फ़ाइल का रेफ़रंस है.
इस एट्रिब्यूट को एपीआई लेवल 24 में जोड़ा गया था.
android:permission- यह अनुमति का नाम है. क्लाइंट को ऐप्लिकेशन के साथ इंटरैक्ट करने के लिए इसकी ज़रूरत होती है. इस एट्रिब्यूट की मदद से, एक ऐसी अनुमति सेट की जा सकती है जो ऐप्लिकेशन के सभी कॉम्पोनेंट पर लागू होती है. अलग-अलग कॉम्पोनेंट के
permissionएट्रिब्यूट सेट करने पर, यह वैल्यू बदल जाती है.अनुमतियों के बारे में ज़्यादा जानने के लिए, ऐप्लिकेशन मेनिफ़ेस्ट की खास जानकारी में मौजूद अनुमतियां सेक्शन और सुरक्षा से जुड़े सुझाव देखें.
android:persistent- इससे पता चलता है कि ऐप्लिकेशन हमेशा चालू रहता है या नहीं. अगर ऐसा होता है, तो
"true"और अगर ऐसा नहीं होता है, तो"false"चुनें. डिफ़ॉल्ट वैल्यू"false"है. आम तौर पर, ऐप्लिकेशन इस फ़्लैग को सेट नहीं करते हैं. परसिस्टेंस मोड सिर्फ़ कुछ सिस्टम ऐप्लिकेशन के लिए होता है. android:process- ऐसी प्रोसेस का नाम जिसमें ऐप्लिकेशन के सभी कॉम्पोनेंट चलते हैं.
हर कॉम्पोनेंट के लिए,
processएट्रिब्यूट सेट करके, इस डिफ़ॉल्ट वैल्यू को बदला जा सकता है.डिफ़ॉल्ट रूप से, Android किसी ऐप्लिकेशन के लिए एक प्रोसेस बनाता है. ऐसा तब होता है, जब उसके किसी कॉम्पोनेंट को पहली बार चलाने की ज़रूरत होती है. इसके बाद, सभी कॉम्पोनेंट उस प्रोसेस में चलते हैं. डिफ़ॉल्ट प्रोसेस का नाम,
<manifest>एलिमेंट से सेट किए गए पैकेज के नाम से मेल खाता है.इस एट्रिब्यूट को किसी ऐसे प्रोसेस के नाम पर सेट किया जा सकता है जिसे किसी दूसरे ऐप्लिकेशन के साथ शेयर किया गया हो. इससे, दोनों ऐप्लिकेशन के कॉम्पोनेंट को एक ही प्रोसेस में चलाने की व्यवस्था की जा सकती है. हालांकि, ऐसा सिर्फ़ तब किया जा सकता है, जब दोनों ऐप्लिकेशन एक ही उपयोगकर्ता आईडी शेयर करते हों और उन्हें एक ही सर्टिफ़िकेट से साइन किया गया हो.
अगर इस एट्रिब्यूट को असाइन किया गया नाम कोलन (
:) से शुरू होता है, तो ज़रूरत पड़ने पर एक नई प्रोसेस बनाई जाती है. यह प्रोसेस सिर्फ़ ऐप्लिकेशन के लिए होती है. अगर प्रोसेस का नाम अंग्रेज़ी के छोटे अक्षर से शुरू होता है, तो उस नाम की ग्लोबल प्रोसेस बनाई जाती है. ग्लोबल प्रोसेस को अन्य ऐप्लिकेशन के साथ शेयर किया जा सकता है. इससे संसाधनों का इस्तेमाल कम होता है. android:restoreAnyVersion- इससे पता चलता है कि ऐप्लिकेशन, बैक अप किए गए किसी भी डेटा सेट को वापस लाने के लिए तैयार है. भले ही, बैकअप को ऐप्लिकेशन के ऐसे नए वर्शन ने सेव किया हो जो फ़िलहाल डिवाइस पर इंस्टॉल किए गए वर्शन से नया हो. इस एट्रिब्यूट को
"true"पर सेट करने से, बैकअप मैनेजर को डेटा को वापस लाने की कोशिश करें. भले ही, वर्शन के मेल न खाने से यह पता चलता हो कि डेटा काम नहीं करेगा. सावधानी से इस्तेमाल करें!$1इस एट्रिब्यूट की डिफ़ॉल्ट वैल्यू
"false"है. android:requestLegacyExternalStorage-
इससे पता चलता है कि ऐप्लिकेशन, स्कोप किए गए स्टोरेज से ऑप्ट आउट करना चाहता है या नहीं.
ध्यान दें: नीति या ऐप्लिकेशन की ज़रूरी शर्तें पूरी करने से जुड़े बदलावों के आधार पर, सिस्टम इस ऑप्ट-आउट अनुरोध को स्वीकार नहीं कर सकता.
android:requiredAccountType- यह बताता है कि ऐप्लिकेशन को काम करने के लिए किस तरह के खाते की ज़रूरत है.
अगर आपके ऐप्लिकेशन के लिए
Accountकी ज़रूरत है, तो इस एट्रिब्यूट की वैल्यू, आपके ऐप्लिकेशन में इस्तेमाल किए गए खाते के पुष्टि करने वाले व्यक्ति के टाइप से मेल खानी चाहिए. इसेAuthenticatorDescriptionके हिसाब से तय किया जाता है. जैसे,"com.google".डिफ़ॉल्ट वैल्यू null होती है. इससे पता चलता है कि ऐप्लिकेशन, किसी भी खाते के बिना काम कर सकता है.
प्रतिबंधित प्रोफ़ाइलें खाते नहीं जोड़ सकती हैं. इसलिए, इस एट्रिब्यूट की वैल्यू देने पर, प्रतिबंधित प्रोफ़ाइल से आपका ऐप्लिकेशन तब तक उपलब्ध नहीं होगा, जब तक कि आप
android:restrictedAccountTypeएट्रिब्यूट की वैल्यू भी यही नहीं देते.चेतावनी: अगर खाते में मौजूद डेटा से व्यक्तिगत पहचान से जुड़ी जानकारी का पता चल सकता है, तो यह ज़रूरी है कि आप इस एट्रिब्यूट का एलान करें और
android:restrictedAccountTypeको शून्य पर सेट करें. इससे प्रतिबंधित प्रोफ़ाइलें, आपके ऐप्लिकेशन का इस्तेमाल करके उस निजी जानकारी को ऐक्सेस नहीं कर पाएंगी जो मालिक के उपयोगकर्ता से जुड़ी है.इस एट्रिब्यूट को एपीआई लेवल 18 में जोड़ा गया था.
android:resizeableActivity-
इससे पता चलता है कि ऐप्लिकेशन, मल्टी-विंडो मोड के साथ काम करता है या नहीं.
इस एट्रिब्यूट को
<activity>या<application>एलिमेंट में सेट किया जा सकता है.इस एट्रिब्यूट को
"true"पर सेट करने पर, उपयोगकर्ता स्प्लिट-स्क्रीन और फ़्री-फ़ॉर्म मोड में गतिविधि लॉन्च कर सकता है. इस एट्रिब्यूट को"false"पर सेट करने पर, ऐप्लिकेशन को मल्टी-विंडो एनवायरमेंट के लिए टेस्ट या ऑप्टिमाइज़ नहीं किया जा सकता. सिस्टम, कंपैटबिलिटी मोड लागू होने पर भी ऐक्टिविटी को मल्टी-विंडो मोड में रख सकता है.इस एट्रिब्यूट को
"true"पर सेट करने से यह गारंटी नहीं मिलती कि स्क्रीन पर मल्टी-विंडो मोड में कोई अन्य ऐप्लिकेशन नहीं दिख रहा है. जैसे, पिक्चर-इन-पिक्चर या अन्य डिसप्ले पर. इसलिए, इस फ़्लैग को सेट करने का मतलब यह नहीं है कि आपके ऐप्लिकेशन के पास संसाधन का खास ऐक्सेस है.एपीआई लेवल 24 या उसके बाद के लेवल को टारगेट करने वाले ऐप्लिकेशन के लिए, डिफ़ॉल्ट वैल्यू
"true"होती है.अगर आपका ऐप्लिकेशन, एपीआई लेवल 31 या उसके बाद के लेवल को टारगेट करता है, तो यह एट्रिब्यूट छोटी और बड़ी स्क्रीन पर अलग-अलग तरीके से काम करता है:
- बड़ी स्क्रीन (sw >= 600dp): सभी ऐप्लिकेशन, मल्टी-विंडो मोड के साथ काम करते हैं. इस एट्रिब्यूट से यह पता चलता है कि किसी ऐप्लिकेशन का साइज़ बदला जा सकता है या नहीं. इससे यह पता नहीं चलता कि ऐप्लिकेशन मल्टी-विंडो मोड के साथ काम करता है या नहीं. अगर
resizeableActivity="false", तो डिसप्ले के डाइमेंशन के मुताबिक ऐप्लिकेशन को कंपैटिबिलिटी मोड में डाल दिया जाता है. - छोटी स्क्रीन (sw < 600dp): अगर
resizeableActivity="true"और मुख्य गतिविधि की कम से कम चौड़ाई और कम से कम ऊंचाई, मल्टी-विंडो की ज़रूरी शर्तों के मुताबिक है, तो ऐप्लिकेशन मल्टी-विंडो मोड के साथ काम करता है. अगरresizeableActivity="false"है, तो ऐप्लिकेशन मल्टी-विंडो मोड के साथ काम नहीं करता. भले ही, गतिविधि की कम से कम चौड़ाई और ऊंचाई कुछ भी हो.
किसी टास्क की रूट ऐक्टिविटी की वैल्यू, टास्क में लॉन्च की गई सभी अतिरिक्त ऐक्टिविटी पर लागू होती है. इसका मतलब है कि अगर किसी टास्क की रूट गतिविधि का साइज़ बदला जा सकता है, तो सिस्टम उस टास्क की अन्य सभी गतिविधियों को भी साइज़ बदलने की सुविधा के साथ उपलब्ध कराता है. अगर रूट गतिविधि का साइज़ नहीं बदला जा सकता, तो टास्क में मौजूद अन्य गतिविधियों का साइज़ भी नहीं बदला जा सकता.
इस एट्रिब्यूट को एपीआई लेवल 24 में जोड़ा गया था.
- बड़ी स्क्रीन (sw >= 600dp): सभी ऐप्लिकेशन, मल्टी-विंडो मोड के साथ काम करते हैं. इस एट्रिब्यूट से यह पता चलता है कि किसी ऐप्लिकेशन का साइज़ बदला जा सकता है या नहीं. इससे यह पता नहीं चलता कि ऐप्लिकेशन मल्टी-विंडो मोड के साथ काम करता है या नहीं. अगर
android:restrictedAccountType- इस ऐप्लिकेशन के लिए ज़रूरी खाते का टाइप तय करता है. साथ ही, यह बताता है कि प्रतिबंधित प्रोफ़ाइलें, मालिक के उपयोगकर्ता खाते से जुड़े ऐसे खातों को ऐक्सेस कर सकती हैं. अगर आपके ऐप्लिकेशन को
Accountकी ज़रूरत है और प्रतिबंधित प्रोफ़ाइलें, मुख्य उपयोगकर्ता के खातों को ऐक्सेस कर सकती हैं, तो इस एट्रिब्यूट की वैल्यू, आपके ऐप्लिकेशन के इस्तेमाल किए गए खाता पुष्टि करने वाले के टाइप से मेल खानी चाहिए. यहAuthenticatorDescriptionके हिसाब से तय किया जाता है. जैसे,"com.google".डिफ़ॉल्ट वैल्यू null होती है. इसका मतलब है कि ऐप्लिकेशन, किसी भी खाते के बिना काम कर सकता है.
चेतावनी: इस एट्रिब्यूट को सेट करने पर, प्रतिबंधित प्रोफ़ाइलें आपके ऐप्लिकेशन का इस्तेमाल, मालिक के खाते से कर सकती हैं. इससे व्यक्तिगत पहचान से जुड़ी जानकारी का पता चल सकता है. अगर खाते से निजी जानकारी का पता चल सकता है, तो इस एट्रिब्यूट का इस्तेमाल न करें. इसके बजाय,
android:requiredAccountTypeएट्रिब्यूट का एलान करें, ताकि प्रतिबंधित प्रोफ़ाइलों के लिए आपका ऐप्लिकेशन उपलब्ध न हो.इस एट्रिब्यूट को एपीआई लेवल 18 में जोड़ा गया था.
android:supportsRtlइससे यह तय होता है कि आपका ऐप्लिकेशन, राइट-टू-लेफ़्ट (आरटीएल) लेआउट के साथ काम करेगा या नहीं.
अगर इसे
"true"पर सेट किया जाता है औरtargetSdkVersionको 17 या इससे ज़्यादा पर सेट किया जाता है, तो सिस्टम कई आरटीएल एपीआई चालू करता है और उनका इस्तेमाल करता है, ताकि आपका ऐप्लिकेशन आरटीएल लेआउट दिखा सके. अगर इसे"false"पर सेट किया जाता है याtargetSdkVersionको 16 या इससे कम पर सेट किया जाता है, तो आरटीएल एपीआई को अनदेखा कर दिया जाता है या उनका कोई असर नहीं होता. साथ ही, आपके ऐप्लिकेशन का लेआउट, उपयोगकर्ता की चुनी गई स्थान-भाषा से जुड़े लेआउट की दिशा के बावजूद एक जैसा रहता है. इसका मतलब है कि आपके लेआउट हमेशा बाईं से दाईं ओर होते हैं.इस एट्रिब्यूट की डिफ़ॉल्ट वैल्यू
"false"है.इस एट्रिब्यूट को एपीआई लेवल 17 में जोड़ा गया था.
android:taskAffinity- ऐप्लिकेशन में मौजूद सभी गतिविधियों पर लागू होने वाला अफ़िनिटी नाम. हालांकि, यह उन गतिविधियों पर लागू नहीं होता जो अपने
taskAffinityएट्रिब्यूट के साथ अलग अफ़िनिटी सेट करती हैं. ज़्यादा जानकारी के लिए, वह एट्रिब्यूट देखें.डिफ़ॉल्ट रूप से, किसी ऐप्लिकेशन में की जाने वाली सभी गतिविधियों की अफ़िनिटी एक जैसी होती है. उस अफ़िनिटी का नाम वही होता है जो
<manifest>एलिमेंट सेट करता है. android:testOnly- इससे पता चलता है कि यह ऐप्लिकेशन सिर्फ़ टेस्टिंग के लिए है या नहीं. उदाहरण के लिए, ऐसा हो सकता है कि यह खुद से बाहर की किसी सुविधा या डेटा को सार्वजनिक कर दे. इससे सुरक्षा में कमी आ सकती है. हालांकि, यह टेस्टिंग के लिए फ़ायदेमंद हो सकता है. इस तरह के APK को सिर्फ़
adbके ज़रिए इंस्टॉल किया जा सकता है. इसे Google Play पर पब्लिश नहीं किया जा सकता.चलाएं
पर क्लिक करने पर, Android Studio इस एट्रिब्यूट को अपने-आप जोड़ देता है. android:theme- यह एक स्टाइल रिसॉर्स का रेफ़रंस है. यह ऐप्लिकेशन की सभी गतिविधियों के लिए डिफ़ॉल्ट थीम तय करता है. अलग-अलग गतिविधियों के लिए, डिफ़ॉल्ट सेटिंग को बदला जा सकता है. इसके लिए, उनकी अपनी
themeएट्रिब्यूट सेट करें. ज़्यादा जानकारी के लिए, स्टाइल और थीम देखें. android:uiOptions- किसी गतिविधि के यूज़र इंटरफ़ेस (यूआई) के लिए अतिरिक्त विकल्प. यह इनमें से कोई एक वैल्यू होनी चाहिए:
मान ब्यौरा "none"कोई अतिरिक्त यूज़र इंटरफ़ेस विकल्प नहीं. यह डिफ़ॉल्ट विकल्प है. "splitActionBarWhenNarrow"यह कुकी, स्क्रीन पर सबसे नीचे एक बार जोड़ती है. इससे ऐप्लिकेशन बार में मौजूद कार्रवाई के आइटम दिखते हैं. इसे ऐक्शन बार भी कहा जाता है. ऐसा तब होता है, जब हॉरिज़ॉन्टल स्पेस कम होता है. जैसे, हैंडसेट पर पोर्ट्रेट मोड में होने पर. स्क्रीन पर सबसे ऊपर मौजूद ऐप्लिकेशन बार में, कार्रवाई के लिए कम आइटम दिखते हैं. ऐप्लिकेशन बार, टॉप नेविगेशन सेक्शन और कार्रवाई के लिए बॉटम बार में बंट जाता है. इसका मतलब है कि ऐक्शन आइटम और सबसे ऊपर मौजूद नेविगेशन और टाइटल एलिमेंट के लिए, ज़रूरत के हिसाब से जगह उपलब्ध है. मेन्यू आइटम को दो बार में नहीं बांटा गया है. ये हमेशा साथ में दिखते हैं. ऐप्लिकेशन बार के बारे में ज़्यादा जानने के लिए, ऐप्लिकेशन बार जोड़ना लेख पढ़ें.
इस एट्रिब्यूट को एपीआई लेवल 14 में जोड़ा गया था.
android:usesCleartextTraffic- इससे पता चलता है कि ऐप्लिकेशन, क्लियर टेक्स्ट नेटवर्क ट्रैफ़िक का इस्तेमाल करना चाहता है या नहीं. जैसे, क्लियर टेक्स्ट एचटीटीपी.
एपीआई लेवल 27 या इससे पहले के लेवल को टारगेट करने वाले ऐप्लिकेशन के लिए, डिफ़ॉल्ट वैल्यू
"true"होती है. एपीआई लेवल 28 या इससे ऊपर के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, डिफ़ॉल्ट रूप से"false"चालू होता है.ध्यान दें: इस एट्रिब्यूट का इस्तेमाल अब नहीं किया जा सकेगा. साथ ही, एपीआई लेवल 38 और इसके बाद के लेवल को टारगेट करने वाले ऐप्लिकेशन के लिए, इस एट्रिब्यूट की वैल्यू पर ध्यान नहीं दिया जाएगा. एपीआई लेवल 24 और उसके बाद के लेवल के लिए, cleartext ट्रैफ़िक को कंट्रोल करने के लिए Network Security Configuration तय करें. अगर आपका ऐप्लिकेशन, एपीआई लेवल 23 और इससे पहले के लेवल को टारगेट करता है, तो आपको नेटवर्क सुरक्षा कॉन्फ़िगरेशन के साथ-साथ
android:usesCleartextTrafficभी तय करना होगा.जब एट्रिब्यूट को
"false"पर सेट किया जाता है, तो प्लैटफ़ॉर्म कॉम्पोनेंट, जैसे कि एचटीटीपी और एफ़टीपी स्टैक,DownloadManager, औरMediaPlayer, ऐप्लिकेशन के क्लियर टेक्स्ट ट्रैफ़िक का इस्तेमाल करने के अनुरोधों को अस्वीकार कर देते हैं.तीसरे पक्ष की लाइब्रेरी को भी इस सेटिंग का पालन करने के लिए कहा जाता है. क्लियरटेक्स्ट ट्रैफ़िक से बचने की मुख्य वजह यह है कि इसमें निजता, प्रमाणिकता, और छेड़छाड़ से सुरक्षा नहीं मिलती. नेटवर्क पर हमला करने वाला व्यक्ति, ट्रांसमिट किए गए डेटा को चोरी-छिपे देख सकता है. साथ ही, वह डेटा में बदलाव भी कर सकता है.
इस फ़्लैग का पालन पूरी तरह से नहीं किया जा सकता. ऐसा इसलिए है, क्योंकि Android ऐप्लिकेशन को दिए गए ऐक्सेस लेवल को देखते हुए, सभी क्लियरटेक्स्ट ट्रैफ़िक को रोकना मुमकिन नहीं है. उदाहरण के लिए,
Socketएपीआई से यह उम्मीद नहीं की जाती कि वह इस फ़्लैग का पालन करे, क्योंकि यह पता नहीं लगा सकता कि इसका ट्रैफ़िक क्लियरटेक्स्ट में है या नहीं.हालांकि, ऐप्लिकेशन से आने वाले ज़्यादातर नेटवर्क ट्रैफ़िक को, नेटवर्क स्टैक और कॉम्पोनेंट के ऊपरी लेवल से मैनेज किया जाता है. ये कॉम्पोनेंट, इस फ़्लैग को
ApplicationInfo.flagsयाNetworkSecurityPolicy.isCleartextTrafficPermitted()से पढ़कर, इसका पालन कर सकते हैं.ध्यान दें:
WebView, एपीआई लेवल 26 और उसके बाद के लेवल को टारगेट करने वाले ऐप्लिकेशन के लिए, इस एट्रिब्यूट का पालन करता है.ऐप्लिकेशन डेवलपमेंट के दौरान, StrictMode का इस्तेमाल करके ऐप्लिकेशन से आने वाले किसी भी क्लियरटेक्स्ट ट्रैफ़िक की पहचान की जा सकती है. ज़्यादा जानकारी के लिए,
StrictMode.VmPolicy.Builder.detectCleartextNetwork()देखें.इस एट्रिब्यूट को एपीआई लेवल 23 में जोड़ा गया था.
अगर Android 7.0 (एपीआई लेवल 24) और इसके बाद के वर्शन पर Android Network Security Config मौजूद है, तो इस फ़्लैग को अनदेखा कर दिया जाता है.
android:vmSafeMode- इससे पता चलता है कि ऐप्लिकेशन को वर्चुअल मशीन (वीएम) को सुरक्षित मोड में चलाने की ज़रूरत है या नहीं. डिफ़ॉल्ट वैल्यू
"false"है.इस एट्रिब्यूट को एपीआई लेवल 8 में जोड़ा गया था. इसमें
"true"वैल्यू सेट करने पर, Dalvik just-in-time (JIT) कंपाइलर बंद हो जाता था.इस एट्रिब्यूट को एपीआई लेवल 22 में अडैप्ट किया गया था. इसमें
"true"वैल्यू, ART के ऐड-ऑफ-टाइम (एओटी) कंपाइलर को बंद कर देती है.
AGP 4.2.0 से, डीएसएल विकल्प
useLegacyPackaging,extractNativeLibsमेनिफ़ेस्ट एट्रिब्यूट की जगह लेता है. नेटिव लाइब्रेरी के कंप्रेस करने के तरीके को कॉन्फ़िगर करने के लिए, मेनिफ़ेस्ट फ़ाइल मेंextractNativeLibsके बजाय, अपने ऐप्लिकेशन कीbuild.gradleफ़ाइल मेंuseLegacyPackagingका इस्तेमाल करें. ज़्यादा जानकारी के लिए, रिलीज़ नोट कंप्रेस की गई नेटिव लाइब्रेरी को पैकेज करने के लिए डीएसएल का इस्तेमाल करना देखें.- इसे इसमें पेश किया गया:
- एपीआई लेवल 1
- यह भी देखें:
<activity><service><receiver><provider>
<ऐप्लिकेशन>
इस पेज पर मौजूद कॉन्टेंट और कोड सैंपल कॉन्टेंट के लाइसेंस में बताए गए लाइसेंस के हिसाब से हैं. Java और OpenJDK, Oracle और/या इससे जुड़ी हुई कंपनियों के ट्रेडमार्क या रजिस्टर किए हुए ट्रेडमार्क हैं.
आखिरी बार 2026-07-01 (UTC) को अपडेट किया गया.
[[["समझने में आसान है","easyToUnderstand","thumb-up"],["मेरी समस्या हल हो गई","solvedMyProblem","thumb-up"],["अन्य","otherUp","thumb-up"]],[["वह जानकारी मौजूद नहीं है जो मुझे चाहिए","missingTheInformationINeed","thumb-down"],["बहुत मुश्किल है / बहुत सारे चरण हैं","tooComplicatedTooManySteps","thumb-down"],["पुराना","outOfDate","thumb-down"],["अनुवाद से जुड़ी समस्या","translationIssue","thumb-down"],["सैंपल / कोड से जुड़ी समस्या","samplesCodeIssue","thumb-down"],["अन्य","otherDown","thumb-down"]],["आखिरी बार 2026-07-01 (UTC) को अपडेट किया गया."],[],[]]