<ऐप्लिकेशन>

सिंटैक्स:
<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

AGP 4.2.0 से, डीएसएल विकल्प useLegacyPackaging, extractNativeLibs मेनिफ़ेस्ट एट्रिब्यूट की जगह लेता है. नेटिव लाइब्रेरी के कंप्रेस करने के तरीके को कॉन्फ़िगर करने के लिए, मेनिफ़ेस्ट फ़ाइल में extractNativeLibs के बजाय, अपने ऐप्लिकेशन की build.gradle फ़ाइल में useLegacyPackaging का इस्तेमाल करें. ज़्यादा जानकारी के लिए, रिलीज़ नोट कंप्रेस की गई नेटिव लाइब्रेरी को पैकेज करने के लिए डीएसएल का इस्तेमाल करना देखें.

इस एट्रिब्यूट से पता चलता है कि पैकेज इंस्टॉलर, फ़ाइल सिस्टम में 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 में जोड़ा गया था.

    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 के ऐड-ऑफ-टाइम (एओटी) कंपाइलर को बंद कर देती है.

    इसे इसमें पेश किया गया:
    एपीआई लेवल 1
    यह भी देखें:
    <activity>
    <service>
    <receiver>
    <provider>