- सिंटैक्स:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="string" android:sharedUserId="string" android:sharedUserLabel="string resource" android:sharedUserMaxSdkVersion="integer" android:versionCode="integer" android:versionName="string" android:installLocation=["auto" | "internalOnly" | "preferExternal"] > ... </manifest>
- इनमें शामिल है:
- कोई नहीं
- इसमें यह जानकारी शामिल होनी चाहिए:
<application>
- इसमें ये चीज़ें शामिल हो सकती हैं:
<attribution>
<compatible-screens>
<instrumentation>
<permission>
<permission-group>
<permission-tree>
<queries>
<supports-gl-texture>
<supports-screens>
<uses-configuration>
<uses-feature>
<uses-permission>
<uses-permission-sdk-23>
<uses-sdk>
- description:
AndroidManifest.xml
फ़ाइल का रूट एलिमेंट. इसमें<application>
एलिमेंट होना चाहिए औरxmlns:android
औरpackage
एट्रिब्यूट की जानकारी होनी चाहिए.- एट्रिब्यूट:
-
xmlns:android
- Android नेमस्पेस तय करता है. यह एट्रिब्यूट हमेशा
"http://schemas.android.com/apk/res/android"
पर सेट होता है. package
- APK की मेनिफ़ेस्ट फ़ाइल में
package
एट्रिब्यूट की वैल्यू, आपके ऐप्लिकेशन के यूनीक ऐप्लिकेशन आईडी को दिखाती है. इसे Android ऐप्लिकेशन के लिए, Java भाषा के स्टाइल में पैकेज के पूरे नाम के तौर पर फ़ॉर्मैट किया जाता है. नाम में अंग्रेज़ी के बड़े या छोटे अक्षर, संख्याएं, और अंडरस्कोर ('_') हो सकते हैं. हालांकि, पैकेज के नाम के अलग-अलग हिस्से सिर्फ़ अक्षरों से शुरू हो सकते हैं.package
वैल्यू को बदलने से बचें, क्योंकि इससे एक नया ऐप्लिकेशन बन जाता है. आपके ऐप्लिकेशन के पिछले वर्शन के उपयोगकर्ताओं को अपडेट नहीं मिलता और वे अपने डेटा को पुराने और नए वर्शन के बीच ट्रांसफ़र नहीं कर पाते.AGP 7.3 से शुरू होने वाले Gradle-आधारित बिल्ड सिस्टम में, सोर्स मेनिफ़ेस्ट फ़ाइल में
package
वैल्यू को सीधे तौर पर सेट न करें. ज़्यादा जानकारी के लिए, ऐप्लिकेशन आईडी सेट करना लेख पढ़ें. android:sharedUserId
-
एपीआई लेवल 29 से, इस कॉन्स्टेंट का इस्तेमाल नहीं किया जा सकता.
शेयर किए गए यूज़र आईडी की वजह से, पैकेज मैनेजर में गड़बड़ियां हो सकती हैं. इसलिए, इनका इस्तेमाल करने का सुझाव नहीं दिया जाता. साथ ही, Android के आने वाले वर्शन में इन्हें हटाया जा सकता है. इसके बजाय, शेयर किए गए कॉम्पोनेंट के बीच इंटरऑपरेबिलिटी को आसान बनाने के लिए, सेवाओं और कॉन्टेंट की सेवा देने वाली कंपनियों जैसी सही कम्यूनिकेशन सुविधाओं का इस्तेमाल करें. मौजूदा ऐप्लिकेशन इस वैल्यू को नहीं हटा सकते, क्योंकि शेयर किए गए उपयोगकर्ता आईडी से माइग्रेट करने की सुविधा काम नहीं करती. इन ऐप्लिकेशन में,android:sharedUserMaxSdkVersion="32"
जोड़ें, ताकि नए उपयोगकर्ता के इंस्टॉल पर शेयर किए गए उपयोगकर्ता आईडी का इस्तेमाल न किया जा सके.Linux के उस उपयोगकर्ता आईडी का नाम जिसे अन्य ऐप्लिकेशन के साथ शेयर किया जाता है. डिफ़ॉल्ट रूप से, Android हर ऐप्लिकेशन को अपना यूनीक यूज़र आईडी असाइन करता है. हालांकि, अगर इस एट्रिब्यूट को दो या उससे ज़्यादा ऐप्लिकेशन के लिए एक ही वैल्यू पर सेट किया जाता है, तो वे सभी एक ही आईडी शेयर करते हैं. ऐसा तब होता है, जब उनके सर्टिफ़िकेट सेट एक जैसे हों. एक ही उपयोगकर्ता आईडी वाले ऐप्लिकेशन, एक-दूसरे का डेटा ऐक्सेस कर सकते हैं. साथ ही, अगर ज़रूरत हो, तो एक ही प्रोसेस में चल सकते हैं.
android:targetSandboxVersion
-
इस ऐप्लिकेशन के इस्तेमाल के लिए टारगेट सैंडबॉक्स. सैंडबॉक्स वर्शन का नंबर जितना ज़्यादा होगा, सुरक्षा का लेवल उतना ही ज़्यादा होगा.
इसकी डिफ़ॉल्ट वैल्यू
1
है. इसे2
पर भी सेट किया जा सकता है. इस एट्रिब्यूट को2
पर सेट करने से, ऐप्लिकेशन को किसी दूसरे SELinux सैंडबॉक्स पर स्विच कर दिया जाता है.लेवल-2 सैंडबॉक्स पर ये पाबंदियां लागू होती हैं:
- नेटवर्क सुरक्षा कॉन्फ़िगरेशन में,
usesCleartextTraffic
की डिफ़ॉल्ट वैल्यू गलत है. - यूआईडी शेयर करने की अनुमति नहीं है.
Android 8.0 (एपीआई लेवल 26) या उसके बाद के वर्शन को टारगेट करने वाले Android इंस्टैंट ऐप्लिकेशन के लिए, इस एट्रिब्यूट को
2
पर सेट किया गया है. अपने ऐप्लिकेशन के इंस्टॉल किए गए वर्शन में, सैंडबॉक्स लेवल को कम पाबंदी वाले लेवल1
पर सेट किया जा सकता है. हालांकि, ऐसा करने पर, आपका ऐप्लिकेशन इंस्टैंट ऐप्लिकेशन से, ऐप्लिकेशन के इंस्टॉल किए गए वर्शन में डेटा को सेव नहीं करता. इंस्टैंट ऐप्लिकेशन से, ऐप्लिकेशन के इंस्टॉल किए गए वर्शन में डेटा को सेव करने के लिए, आपको इंस्टॉल किए गए ऐप्लिकेशन के सैंडबॉक्स की वैल्यू को2
पर सेट करना होगा.ऐप्लिकेशन इंस्टॉल होने के बाद, उसके टारगेट सैंडबॉक्स की वैल्यू को सिर्फ़ ज़्यादा वैल्यू पर अपडेट किया जा सकता है. टारगेट सैंडबॉक्स की वैल्यू को डाउनग्रेड करने के लिए, ऐप्लिकेशन को अनइंस्टॉल करें और उसे ऐसे वर्शन से बदलें जिसके मेनिफ़ेस्ट में इस एट्रिब्यूट की कम वैल्यू हो.
- नेटवर्क सुरक्षा कॉन्फ़िगरेशन में,
android:sharedUserLabel
-
एपीआई लेवल 29 से, इस कॉन्स्टेंट का इस्तेमाल नहीं किया जा सकता.
शेयर किए गए यूज़र आईडी की वजह से, पैकेज मैनेजर में गड़बड़ियां हो सकती हैं. इसलिए, इनका इस्तेमाल करने का सुझाव नहीं दिया जाता. साथ ही, Android के आने वाले वर्शन में इन्हें हटाया जा सकता है. इसके बजाय, शेयर किए गए कॉम्पोनेंट के बीच इंटरऑपरेबिलिटी को आसान बनाने के लिए, सेवाओं और कॉन्टेंट की सेवा देने वाली कंपनियों जैसी सही कम्यूनिकेशन सुविधाओं का इस्तेमाल करें. मौजूदा ऐप्लिकेशन इस वैल्यू को नहीं हटा सकते, क्योंकि शेयर किए गए उपयोगकर्ता आईडी को माइग्रेट नहीं किया जा सकता.शेयर किए गए User-ID के लिए, उपयोगकर्ता के पढ़ने लायक लेबल. लेबल को स्ट्रिंग रिसॉर्स के रेफ़रंस के तौर पर सेट किया गया है. यह रॉ स्ट्रिंग नहीं हो सकती.
इस एट्रिब्यूट को एपीआई लेवल 3 में जोड़ा गया था. यह सिर्फ़ तब काम का होता है, जब
sharedUserId
एट्रिब्यूट भी सेट हो. android:sharedUserMaxSdkVersion
-
शेयर किए गए User-ID की वजह से, पैकेज मैनेजर में गड़बड़ियां हो सकती हैं. इसलिए, इनका इस्तेमाल करने का सुझाव नहीं दिया जाता. साथ ही, Android के आने वाले वर्शन में इन्हें हटाया जा सकता है. इसके बजाय, शेयर किए गए कॉम्पोनेंट के बीच इंटरऑपरेबिलिटी को आसान बनाने के लिए, सेवाओं और कॉन्टेंट की सेवा देने वाली कंपनियों जैसी सही कम्यूनिकेशन सुविधाओं का इस्तेमाल करें.
SDK टूल का वह ज़्यादा से ज़्यादा वर्शन जहां सिस्टम अब भी
android:sharedUserId
का इस्तेमाल करता है. अगर आपका ऐप्लिकेशन, तय की गई वैल्यू से ज़्यादा के SDK वर्शन वाले डिवाइस पर हाल ही में इंस्टॉल किया गया है, तो आपका ऐप्लिकेशन वैसे ही काम करता है जैसे आपनेandroid:sharedUserId
की वैल्यू कभी तय न की हो.इस एट्रिब्यूट को एपीआई लेवल 33 में जोड़ा गया था. यह सिर्फ़ तब काम का होता है, जब
sharedUserId
एट्रिब्यूट भी सेट हो. android:versionCode
- इंटरनल वर्शन नंबर. इस नंबर का इस्तेमाल सिर्फ़ यह तय करने के लिए किया जाता है कि कोई वर्शन, दूसरे वर्शन से ज़्यादा नया है या नहीं. ज़्यादा संख्या वाले वर्शन, ज़्यादा नए वर्शन होते हैं. यह वर्शन नंबर, उपयोगकर्ताओं को नहीं दिखाया जाता. इसे
versionName
एट्रिब्यूट से सेट किया जाता है.वैल्यू को 0 से ज़्यादा की पॉज़िटिव संख्या के तौर पर सेट किया गया हो. इसे अपनी पसंद के मुताबिक तय किया जा सकता है. हालांकि, यह ज़रूरी है कि हर अगले वर्शन की संख्या, पिछले वर्शन की संख्या से ज़्यादा हो. उदाहरण के लिए, यह कोई बिल्ड नंबर हो सकता है. इसके अलावा, "x" और "y" को अलग-अलग, सबसे नीचे और सबसे ऊपर के 16 बिट में कोड में बदलकर, "x.y" फ़ॉर्मैट में मौजूद वर्शन नंबर को पूर्णांक में बदला जा सकता है. इसके अलावा, हर बार नया वर्शन रिलीज़ होने पर, संख्या को एक से बढ़ाया जा सकता है.
android:versionName
- उपयोगकर्ताओं को दिखाया जाने वाला वर्शन नंबर. इस एट्रिब्यूट को रॉ स्ट्रिंग या स्ट्रिंग रिसॉर्स के रेफ़रंस के तौर पर सेट किया जाता है. इस स्ट्रिंग का मकसद, उपयोगकर्ताओं को दिखाना है.
versionCode
एट्रिब्यूट में, वर्शन का वह अहम नंबर होता है जिसका इस्तेमाल अंदरूनी तौर पर किया जाता है. android:installLocation
- ऐप्लिकेशन को इंस्टॉल करने की डिफ़ॉल्ट जगह.
इन कीवर्ड स्ट्रिंग को स्वीकार किया जाता है:
वैल्यू ब्यौरा "internalOnly"
ऐप्लिकेशन सिर्फ़ डिवाइस के इंटरनल स्टोरेज में इंस्टॉल होता है. अगर यह सेट है, तो ऐप्लिकेशन कभी भी एसडी कार्ड जैसे बाहरी स्टोरेज पर इंस्टॉल नहीं होगा. अगर डिवाइस का स्टोरेज भर जाता है, तो सिस्टम ऐप्लिकेशन इंस्टॉल नहीं करता. अगर android:installLocation
की वैल्यू नहीं दी जाती है, तो यह डिफ़ॉल्ट तौर पर होता है."auto"
ऐप्लिकेशन को बाहरी स्टोरेज में इंस्टॉल किया जा सकता है. हालांकि, सिस्टम डिफ़ॉल्ट रूप से ऐप्लिकेशन को इंटरनल स्टोरेज में इंस्टॉल करता है. अगर डिवाइस का इंटरनल स्टोरेज भर जाता है, तो सिस्टम उसे बाहरी स्टोरेज में इंस्टॉल कर देता है. इंस्टॉल होने के बाद, उपयोगकर्ता सिस्टम सेटिंग की मदद से, ऐप्लिकेशन को इंटरनल या बाहरी स्टोरेज में ले जा सकता है. "preferExternal"
ऐप्लिकेशन को बाहरी स्टोरेज में इंस्टॉल करने की प्राथमिकता दी जाती है. इस बात की कोई गारंटी नहीं है कि सिस्टम इस अनुरोध को स्वीकार करेगा. अगर बाहरी मीडिया उपलब्ध नहीं है या उसका स्टोरेज भर गया है, तो ऐप्लिकेशन को डिवाइस के इंटरनल स्टोरेज में इंस्टॉल किया जा सकता है. इंस्टॉल होने के बाद, उपयोगकर्ता सिस्टम सेटिंग की मदद से, ऐप्लिकेशन को डिवाइस के इंटरनल या बाहरी स्टोरेज में ले जा सकता है. ध्यान दें: डिफ़ॉल्ट रूप से, आपका ऐप्लिकेशन डिवाइस के इंटरनल स्टोरेज में इंस्टॉल होता है. इसे बाहरी स्टोरेज में तब तक इंस्टॉल नहीं किया जा सकता, जब तक इस एट्रिब्यूट को
"auto"
या"preferExternal"
के तौर पर सेट नहीं किया जाता.जब कोई ऐप्लिकेशन बाहरी स्टोरेज में इंस्टॉल होता है, तो:
- APK फ़ाइल, बाहरी स्टोरेज में सेव की जाती है. हालांकि, डेटाबेस जैसे ऐप्लिकेशन का डेटा अब भी डिवाइस के इंटरनल स्टोरेज में सेव होता है.
- जिस कंटेनर में APK फ़ाइल सेव की जाती है उसे एक पासकोड से एन्क्रिप्ट किया जाता है. इससे ऐप्लिकेशन सिर्फ़ उस डिवाइस पर काम करता है जिस पर उसे इंस्टॉल किया गया है. उपयोगकर्ता, एसडी कार्ड को किसी दूसरे डिवाइस पर ट्रांसफ़र नहीं कर सकता और कार्ड पर इंस्टॉल किए गए ऐप्लिकेशन का इस्तेमाल नहीं कर सकता. एक ही डिवाइस में कई एसडी कार्ड इस्तेमाल किए जा सकते हैं.
- उपयोगकर्ता के अनुरोध पर, ऐप्लिकेशन को इंटरनल स्टोरेज में ले जाया जा सकता है.
उपयोगकर्ता, किसी ऐप्लिकेशन को इंटरनल स्टोरेज से बाहरी स्टोरेज में ले जाने का अनुरोध भी कर सकता है. हालांकि, अगर इस एट्रिब्यूट को
"internalOnly"
पर सेट किया जाता है, तो सिस्टम उपयोगकर्ता को ऐप्लिकेशन को बाहरी स्टोरेज में ले जाने की अनुमति नहीं देता. यह डिफ़ॉल्ट सेटिंग होती है.इस एट्रिब्यूट का इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, ऐप्लिकेशन इंस्टॉल करने की जगह लेख पढ़ें. इसमें, पुराने वर्शन के साथ काम करने की सुविधा को बनाए रखने का तरीका भी बताया गया है.
इसमें शामिल किया गया: एपीआई लेवल 8.
- पहली बार इसमें दिखाया गया:
- सभी एट्रिब्यूट के लिए एपीआई लेवल 1, बशर्ते एट्रिब्यूट के ब्यौरे में कुछ और न बताया गया हो.
- यह भी देखें:
-
<application>
<मेनिफ़ेस्ट>
इस पेज पर मौजूद कॉन्टेंट और कोड सैंपल कॉन्टेंट के लाइसेंस में बताए गए लाइसेंस के हिसाब से हैं. Java और OpenJDK, Oracle और/या इससे जुड़ी हुई कंपनियों के ट्रेडमार्क या रजिस्टर किए हुए ट्रेडमार्क हैं.
आखिरी बार 2025-05-12 (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"]],["आखिरी बार 2025-05-12 (UTC) को अपडेट किया गया."],[],[]]