O que é o uso do namespace do aplicativo no android xml

Abaixo está o código de um menu exibido em uma atividade (DetailFragment.xml do curso android Sunshine udacity)

Eu não conseguia entender por que dois namespaces diferentes são necessários abaixo. Por que não consigo usar o namespace android: em vez de app:

Na parte xml abaixo, quando substituo o aplicativo: actionProviderClass = "android.support.v7.widget.ShareActionProvider" com app: actionProviderClass = "android.widget.ShareActionProvider"

Pareceu dar algum erro de atribuição, mas funciona bem se o aplicativo for alterado para android como abaixo do android: actionProviderClass = "android.widget.ShareActionProvider"

Não consigo entender o que exatamente está acontecendo aqui.

    <menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item android:id="@+id/action_share"
        android:title="@string/action_share"
        app:showAsAction="always"
        app:actionProviderClass="android.support.v7.widget.ShareActionProvider" />
</menu>

questionAnswers(3)

yourAnswerToTheQuestion