Was ist der 'App' Android XML Namespace?

Hier ist ein Beispiel für den app Namespace, den ich aus einer res/menu/main.xml Datei gesehen habe

 <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> 

Welchen Zweck hat der app Namespace? Ist es ein "Standard" Android XML Namespace? Sind die gleichen app:showAsAction für das gleiche Attribut vorhanden, das in zwei verschiedenen Namespaces platziert wird (zB app:showAsAction und android:showAsAction ).

  • Android: elevation funktioniert nicht in L Vorschau
  • Set Drawable oder Bitmap als Symbol In Benachrichtigung in Android
  • Java unbekannte Host-Ausnahme
  • Aufruf der Löschmethode im benutzerdefinierten Inhaltsanbieter
  • Übergeben von Daten zwischen Fragmenten an Aktivität
  • Android runde Kanten auf ringförmigen Fortschrittsbalken
  • Aus den docs : android:showAsAction=["ifRoom" | "never" | "withText" | "always" | "collapseActionView"] android:showAsAction=["ifRoom" | "never" | "withText" | "always" | "collapseActionView"]

    Dh würde die Zeile im obigen Beispiel etwas anderes bedeuten, wenn das Attribut stattdessen war:

     android:showAsAction="never" 

    Es sieht fast so aus, als ob es irgendeine Art von "Subclassing" -Mechanismus sein könnte, aber ich kann keine wirkliche Dokumentation über den app Namespace von Google / Android-Quellen finden.

  • Füge PhoneStateListener hinzu
  • Was ist die Warnausgabe "Ignorieren InnerClasses" während der Kompilierung?
  • Wie bekomme ich LTE-Signalstärke in Android?
  • Wie kann man überprüfen, ob der Benutzer mit FB SDK 4.0 für Android angemeldet ist?
  • Unsatisfiedlinkerror mit Android 5.0.1 Update
  • DIfferent-Fragmente für unterschiedliche Orientierung
  • One Solution collect form web for “Was ist der 'App' Android XML Namespace?”

    Der app Namespace ist nicht spezifisch für eine Bibliothek, aber es wird für alle in Ihrer App definierten Attribute verwendet, sei es durch Ihren Code oder durch Bibliotheken, die Sie importieren, indem Sie einen einzigen globalen Namespace für benutzerdefinierte Attribute erstellen – dh Attribute, die nicht vom Android definiert werden System.

    In diesem Fall verwendet die appcompat-v7 Bibliothek benutzerdefinierte Attribute, die den android: spiegeln android: Namespace, um android:showAsAction Versionen von Android zu unterstützen (zum Beispiel: android:showAsAction wurde nur in API11 hinzugefügt, aber app:showAsAction (wird als Teil Ihrer Anwendung bereitgestellt) android:showAsAction auf allen API-Ebenen, die deine App macht) – offensichtlich mit dem android:showAsAction würde nicht auf API-Levels arbeiten, wo dieses Attribut nicht definiert ist.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.