- सिंटैक्स:
<application android:allowTaskReparenting=["true" | "false"] android:allowBackup=["true" | "false"] android:allowClearUserData=["true" | "false"] android:allowCrossUidActivitySwitchFromBelow=["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:enabledOnBackInvokedCallback=["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>
- जानकारी:
ऐप्लिकेशन का एलान. इस एलिमेंट में ऐसे सब-एलिमेंट होते हैं जिनमें ऐप्लिकेशन के हर कॉम्पोनेंट के बारे में जानकारी होती है. साथ ही, इसमें ऐसे एट्रिब्यूट होते हैं जिनका असर सभी कॉम्पोनेंट पर पड़ सकता है.
इनमें से कई एट्रिब्यूट, जैसे कि
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:allowCrossUidActivitySwitchFromBelow
इससे यह पता चलता है कि टास्क में इस गतिविधि के नीचे मौजूद गतिविधियां, दूसरी गतिविधियां शुरू कर सकती हैं या टास्क को पूरा कर सकती हैं.
टारगेट SDK टूल के लेवल
Build.VERSION_CODES.VANILLA_ICE_CREAM
से, ऐप्लिकेशन को नई गतिविधियां शुरू करने या अपना टास्क पूरा करने से रोका जा सकता है. ऐसा तब तक किया जा सकता है, जब तक सुरक्षा से जुड़ी वजहों से उस टास्क की मुख्य गतिविधि, एक ही यूआईडी से न जुड़ी हो.इस फ़्लैग को
true
पर सेट करने पर, लॉन्च किए जा रहे ऐप्लिकेशन को पाबंदी को अनदेखा करने की अनुमति मिलेगी. ऐसा तब होगा, जब यह गतिविधि सबसे ऊपर हो. इस गतिविधि के यूआईडी से मैच करने वाले ऐप्लिकेशन को हमेशा छूट मिलती है.ज़्यादा जानकारी के लिए, सुरक्षित बैकग्राउंड गतिविधि लॉन्च करना लेख पढ़ें.
android:allowNativeHeapPointerTagging
ऐप्लिकेशन में, ढेर पॉइंटर टैग करने की सुविधा चालू है या नहीं. इस एट्रिब्यूट की डिफ़ॉल्ट वैल्यू
"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 की सुविधा डिलीवरी की सुविधा के साथ काम करता हो और उसमें ऐसे फ़ीचर मॉड्यूल शामिल हों जो कोई DEX फ़ाइल जनरेट न करते हों. DEX फ़ाइल, Android प्लैटफ़ॉर्म के लिए ऑप्टिमाइज़ किया गया बाइटकोड होता है. अगर ऐसा है, तो आपको रनटाइम की गड़बड़ियों से बचने के लिए, मॉड्यूल की मेनिफ़ेस्ट फ़ाइल में इस प्रॉपर्टी को
"false"
पर सेट करना होगा. android:hasFragileUserData
- ऐप्लिकेशन को अनइंस्टॉल करने पर, उपयोगकर्ता को ऐप्लिकेशन का डेटा सेव रखने के लिए प्रॉम्प्ट दिखाया जाए या नहीं. इसकी डिफ़ॉल्ट वैल्यू
"false"
है. android:hardwareAccelerated
- इस ऐप्लिकेशन में सभी गतिविधियों और व्यू के लिए, हार्डवेयर ऐक्सेलरेटेड रेंडरिंग की सुविधा चालू है या नहीं. अगर यह चालू है, तो
"true"
और बंद होने पर"false"
डालें. अगरminSdkVersion
याtargetSdkVersion
को"14"
या उससे ज़्यादा पर सेट किया जाता है, तो डिफ़ॉल्ट वैल्यू"true"
होती है. अगर ऐसा नहीं है, तो यह"false"
है.Android 3.0 (एपीआई लेवल 11) से, ऐप्लिकेशन के लिए हार्डवेयर से तेज़ किया गया OpenGL रेंडरर उपलब्ध है. इससे, 2D ग्राफ़िक्स से जुड़े कई सामान्य ऑपरेशन की परफ़ॉर्मेंस बेहतर होती है. हार्डवेयर से तेज़ किए गए रेंडरर की सुविधा चालू होने पर, कैनवस, पेंट, Xfermode, ColorFilter, शेडर, और कैमरे में ज़्यादातर कार्रवाइयां तेज़ी से होती हैं.
इससे ऐनिमेशन और स्क्रोलिंग बेहतर तरीके से काम करती है. साथ ही, ऐप्लिकेशन के रिस्पॉन्स में भी सुधार होता है. ऐसा उन ऐप्लिकेशन के लिए भी होता है जो फ़्रेमवर्क की OpenGL लाइब्रेरी का इस्तेमाल नहीं करते.
OpenGL 2D के सभी ऑपरेशन तेज़ी से नहीं होते. अगर हार्डवेयर से तेज़ किए गए रेंडरर को चालू किया जाता है, तो अपने ऐप्लिकेशन की जांच करें, ताकि वह बिना किसी गड़बड़ी के रेंडरर का इस्तेमाल कर सके.
ज़्यादा जानकारी के लिए, हार्डवेयर से जुड़ी प्रोसेस को तेज़ करने के बारे में बताने वाली गाइड पढ़ें.
android:icon
- पूरे ऐप्लिकेशन के लिए एक आइकॉन और ऐप्लिकेशन के हर कॉम्पोनेंट के लिए डिफ़ॉल्ट आइकॉन.
<activity>
,<activity-alias>
,<service>
,<receiver>
, और<provider>
एलिमेंट के लिए, अलग-अलगicon
एट्रिब्यूट देखें.इस एट्रिब्यूट को, इमेज वाले ड्रॉबल संसाधन के रेफ़रंस के तौर पर सेट किया जाता है. जैसे,
"@drawable/icon"
. कोई डिफ़ॉल्ट आइकॉन नहीं है. android:isGame
- ऐप्लिकेशन एक गेम है या नहीं. सिस्टम, गेम के तौर पर मार्क किए गए ऐप्लिकेशन को एक साथ ग्रुप कर सकता है या उन्हें अन्य ऐप्लिकेशन से अलग दिखा सकता है. डिफ़ॉल्ट तौर पर, यह
"false"
पर सेट होता है. android:isMonitoringTool
इससे पता चलता है कि इस ऐप्लिकेशन को दूसरे लोगों की निगरानी करने के लिए डिज़ाइन किया गया है.
ध्यान दें: अगर कोई ऐप्लिकेशन अपने मेनिफ़ेस्ट में इस एट्रिब्यूट का एलान करता है, तो डेवलपर को Google Play पर ऐप्लिकेशन पब्लिश करने के लिए, Stalkerware से जुड़ी नीति का पालन करना होगा.
कोई डिफ़ॉल्ट वैल्यू नहीं है. डेवलपर को इनमें से कोई एक वैल्यू देनी होगी:
वैल्यू ब्यौरा "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"
पर सेट करने से, Backup Manager को डेटा को वापस लाने की कोशिश करने की अनुमति मिलती है. भले ही, वर्शन के मेल न खाने से यह पता चलता हो कि डेटा काम नहीं करता. इस्तेमाल करते समय सावधानी बरतें!इस एट्रिब्यूट की डिफ़ॉल्ट वैल्यू
"false"
है. android:requestLegacyExternalStorage
-
ऐप्लिकेशन को स्कोप वाले स्टोरेज से ऑप्ट आउट करना है या नहीं.
ध्यान दें: ऐसा हो सकता है कि नीति या ऐप्लिकेशन के साथ काम करने की सुविधा में हुए बदलावों के आधार पर, सिस्टम इस ऑप्ट-आउट अनुरोध को स्वीकार न करे.
android:requiredAccountType
- यह बताता है कि ऐप्लिकेशन को काम करने के लिए किस तरह के खाते की ज़रूरत है.
अगर आपके ऐप्लिकेशन के लिए
Account
की ज़रूरत है, तो इस एट्रिब्यूट की वैल्यू, आपके ऐप्लिकेशन में इस्तेमाल किए गए खाते के पुष्टि करने वाले टूल के टाइप से मेल खानी चाहिए. इस टाइप के बारे मेंAuthenticatorDescription
में बताया गया है. जैसे,"com.google"
.डिफ़ॉल्ट वैल्यू शून्य होती है. इससे पता चलता है कि ऐप्लिकेशन, किसी भी खाते के बिना काम कर सकता है.
प्रतिबंधित प्रोफ़ाइलों में खाते नहीं जोड़े जा सकते. इसलिए, इस एट्रिब्यूट की वैल्यू सबमिट करने पर, आपका ऐप्लिकेशन प्रतिबंधित प्रोफ़ाइल में उपलब्ध नहीं होगा. हालांकि, ऐसा तब तक होगा, जब तक आपने उसी वैल्यू के साथ
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"
है, तो ऐप्लिकेशन, मल्टी-विंडो मोड के साथ काम नहीं करता. भले ही, गतिविधि की कम से कम चौड़ाई और ऊंचाई कितनी भी हो.
ध्यान दें: डिवाइस बनाने वाली कंपनियां, एपीआई लेवल 31 के व्यवहार को बदल सकती हैं.
यह एट्रिब्यूट, एपीआई लेवल 24 में जोड़ा गया था.
ध्यान दें: टास्क की रूट गतिविधि की वैल्यू, टास्क में शुरू की गई सभी अन्य गतिविधियों पर लागू होती है. इसका मतलब है कि अगर किसी टास्क की रूट गतिविधि का साइज़ बदला जा सकता है, तो सिस्टम उस टास्क की सभी अन्य गतिविधियों का साइज़ बदलने की सुविधा देता है. अगर रूट गतिविधि का साइज़ नहीं बदला जा सकता, तो टास्क में मौजूद अन्य गतिविधियों का साइज़ भी नहीं बदला जा सकता.
- बड़ी स्क्रीन (sw >= 600dp): सभी ऐप्लिकेशन, मल्टी-विंडो मोड के साथ काम करते हैं. इस एट्रिब्यूट से पता चलता है कि किसी ऐप्लिकेशन का साइज़ बदला जा सकता है या नहीं. इससे यह पता नहीं चलता कि ऐप्लिकेशन मल्टी-विंडो मोड के साथ काम करता है या नहीं. अगर
android:restrictedAccountType
- इस एप्लिकेशन के लिए ज़रूरी खाता टाइप बताता है. साथ ही, यह भी बताता है कि पाबंदी वाली प्रोफ़ाइलें, मालिक के खातों को ऐक्सेस कर सकती हैं. अगर आपके ऐप्लिकेशन के लिए
Account
की ज़रूरत है और पाबंदी वाली प्रोफ़ाइलें, मुख्य उपयोगकर्ता के खातों को ऐक्सेस कर सकती हैं, तो इस एट्रिब्यूट की वैल्यू,AuthenticatorDescription
के मुताबिक आपके ऐप्लिकेशन में इस्तेमाल किए गए खाते की पुष्टि करने वाले टूल के टाइप से मेल खानी चाहिए. जैसे,"com.google"
.डिफ़ॉल्ट वैल्यू शून्य होती है. इससे पता चलता है कि ऐप्लिकेशन किसी भी खाते के बिना काम कर सकता है.
चेतावनी: इस एट्रिब्यूट की वैल्यू सबमिट करने पर, पाबंदी वाली प्रोफ़ाइलें, ऐप्लिकेशन का इस्तेमाल उन खातों से कर सकती हैं जो ऐप्लिकेशन के मालिक के हैं. इससे, व्यक्तिगत पहचान से जुड़ी जानकारी ज़ाहिर हो सकती है. अगर खाते से निजी जानकारी ज़ाहिर हो सकती है, तो इस एट्रिब्यूट का इस्तेमाल न करें. इसके बजाय,
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"
का इस्तेमाल किया जाता है.जब एट्रिब्यूट को
"false"
पर सेट किया जाता है, तो प्लैटफ़ॉर्म के कॉम्पोनेंट, जैसे कि एचटीटीपी और एफ़टीपी स्टैक,DownloadManager
, औरMediaPlayer
, क्लियरटेक्स्ट ट्रैफ़िक का इस्तेमाल करने के लिए ऐप्लिकेशन के अनुरोधों को अस्वीकार कर देते हैं.हमारा सुझाव है कि तीसरे पक्ष की लाइब्रेरी भी इस सेटिंग का पालन करें. क्लियरटेक्स्ट ट्रैफ़िक से बचने की मुख्य वजह यह है कि इसमें गोपनीयता, पुष्टि, और छेड़छाड़ से सुरक्षा की सुविधा नहीं होती. नेटवर्क पर हमला करने वाला व्यक्ति, ट्रांसमिट किए गए डेटा को सुन सकता है. साथ ही, बिना किसी को पता लगाए उसमें बदलाव भी कर सकता है.
इस फ़्लैग को लागू करने की पूरी कोशिश की जाती है. हालांकि, Android ऐप्लिकेशन को दिए गए ऐक्सेस लेवल की वजह से, यह मुमकिन नहीं है कि Android ऐप्लिकेशन से आने वाले सारे क्लियरटेक्स्ट ट्रैफ़िक को रोका जा सके. उदाहरण के लिए, यह उम्मीद नहीं की जाती कि
Socket
एपीआई इस फ़्लैग का पालन करता है, क्योंकि यह यह तय नहीं कर सकता कि उसका ट्रैफ़िक क्लियरटेक्स्ट में है या नहीं.हालांकि, ऐप्लिकेशन से आने वाले ज़्यादातर नेटवर्क ट्रैफ़िक को, ज़्यादा लेवल के नेटवर्क स्टैक और कॉम्पोनेंट मैनेज करते हैं. ये इस फ़्लैग को
ApplicationInfo.flags
याNetworkSecurityPolicy.isCleartextTrafficPermitted()
से पढ़कर, इसे लागू कर सकते हैं.ध्यान दें:
WebView
, एपीआई लेवल 26 और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, इस एट्रिब्यूट का इस्तेमाल करता है.ऐप्लिकेशन डेवलपमेंट के दौरान, StrictMode का इस्तेमाल करके ऐप्लिकेशन से आने वाले किसी भी क्लियरटेक्स्ट ट्रैफ़िक की पहचान की जा सकती है. ज़्यादा जानकारी के लिए,
StrictMode.VmPolicy.Builder.detectCleartextNetwork()
देखें.इस एट्रिब्यूट को एपीआई लेवल 23 में जोड़ा गया था.
अगर Android नेटवर्क सिक्योरिटी कॉन्फ़िगरेशन मौजूद है, तो Android 7.0 (एपीआई लेवल 24) और उसके बाद के वर्शन पर इस फ़्लैग को अनदेखा कर दिया जाता है.
android:vmSafeMode
- इससे पता चलता है कि ऐप्लिकेशन को वर्चुअल मशीन (वीएम) को सुरक्षित मोड में चलाना है या नहीं. डिफ़ॉल्ट वैल्यू
"false"
है.इस एट्रिब्यूट को एपीआई लेवल 8 में जोड़ा गया था. इसमें
"true"
की वैल्यू से, Dalvik जस्ट-इन-टाइम (JIT) कंपाइलर की सुविधा बंद हो जाती है.इस एट्रिब्यूट को एपीआई लेवल 22 में जोड़ा गया था. इसमें
"true"
की वैल्यू से, ART के पहले से अनुवाद करने की सुविधा (AOT) को बंद किया जा सकता है.
AGP 4.2.0 से शुरू होने वाले वर्शन में, डीएसएल विकल्प
useLegacyPackaging
,extractNativeLibs
मेनिफ़ेस्ट एट्रिब्यूट की जगह ले लेता है. नेटिव लाइब्रेरी को कंप्रेस करने के तरीके को कॉन्फ़िगर करने के लिए, मेनिफ़ेस्ट फ़ाइल मेंextractNativeLibs
के बजाय, अपने ऐप्लिकेशन कीbuild.gradle
फ़ाइल मेंuseLegacyPackaging
का इस्तेमाल करें. ज़्यादा जानकारी के लिए, रिलीज़ नोट देखें कंप्रेस की गई नेटिव लाइब्रेरी को पैकेज करने के लिए डीएसएल का इस्तेमाल करना.- पहली बार इसमें दिखाया गया:
- एपीआई लेवल 1
- यह भी देखें:
<activity>
<service>
<receiver>
<provider>
इस पेज पर मौजूद कॉन्टेंट और कोड सैंपल कॉन्टेंट के लाइसेंस में बताए गए लाइसेंस के हिसाब से हैं. Java और OpenJDK, Oracle और/या इससे जुड़ी हुई कंपनियों के ट्रेडमार्क या रजिस्टर किए हुए ट्रेडमार्क हैं.
आखिरी बार 2025-01-23 (UTC) को अपडेट किया गया.
[null,null,["आखिरी बार 2025-01-23 (UTC) को अपडेट किया गया."],[],[]]