android - 'ऐप' एंड्रॉइड एक्सएमएल नेमस्पेस क्या है?



xml android-layout (1)

app नेमस्पेस लाइब्रेरी के लिए विशिष्ट नहीं है, लेकिन इसका उपयोग आपके ऐप में परिभाषित सभी विशेषताओं के लिए किया जाता है, भले ही आपके कोड या पुस्तकालयों द्वारा आप आयात करते हैं, प्रभावी रूप से कस्टम विशेषताओं के लिए एक वैश्विक नामस्थान बनाते हैं - यानी, एंड्रॉइड द्वारा परिभाषित गुण प्रणाली।

इस मामले में, appcompat-v7 लाइब्रेरी android: पूर्व संस्करणों का समर्थन करने के लिए नामस्थानों को मिरर करने वाले कस्टम विशेषताओं का उपयोग करता है (उदाहरण के लिए: android:showAsAction केवल android:showAsAction में जोड़ा गया था, लेकिन app:showAsAction (आपके आवेदन के हिस्से के रूप में प्रदान किया जा रहा है) आपके ऐप के सभी एपीआई स्तरों पर काम करता है) - स्पष्ट रूप से android:showAsAction का उपयोग करना android:showAsAction API स्तरों पर काम नहीं करेगा जहां वह विशेषता परिभाषित नहीं की गई है।

यहां app नेमस्पेस का एक उदाहरण दिया गया है जिसे मैंने एक res/menu/main.xml फ़ाइल से देखा है

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity" >
<item android:id="@+id/action_settings"
    android:title="@string/action_settings"
    android:orderInCategory="100"
    app:showAsAction="never" />
</menu>

app नेमस्पेस किस उद्देश्य से सेवा करता है? क्या यह एक "मानक" एंड्रॉइड एक्सएमएल नेमस्पेस है? दो अलग-अलग नामस्थानों (जैसे app:showAsAction और android:showAsAction ) में रखी गई वही विशेषता के लिए समान मान विकल्प उपलब्ध हैं।

docs : android:showAsAction=["ifRoom" | "never" | "withText" | "always" | "collapseActionView"] android:showAsAction=["ifRoom" | "never" | "withText" | "always" | "collapseActionView"]

यानी, उपर्युक्त उदाहरण में रेखा का अर्थ कुछ और होगा यदि विशेषता इसके बजाय थी:

android:showAsAction="never"

ऐसा लगता है कि यह किसी प्रकार का "सबक्लासिंग" तंत्र हो सकता है, लेकिन मुझे Google / Android स्रोतों से app नेमस्पेस पर कोई वास्तविक दस्तावेज़ नहीं दिख रहा है।





android-tools-namespace