The DevGuide on the application element’s android:label:
A user-readable label for the application as a whole, and a default label for each of the application’s components.
Yet, there’s a world of example manifests that have the form
<application ... android:label="@string/app_name">
<activity ... android:label="@string/app_name"> ... </activity>
<activity ... android:label="@string/app_name"> ... </activity>
...
</application>
Every single Android book I have does this, including the Commonsware books. A glance through the SDK examples shows that ContactManager does this, but not Snake or Lunar Lander.
Is there some historical reason for the attribute to be duplicated like this? Or is it, like Eclipse’s stub comments that people leave in post-stub code (and book examples, in one case), or like the duplicate labels in my own imitative manifests, just something that people don’t think about?
No AndroidManifest.xml of the API 2 (Android 1.1) SDK samples has this redundancy. I conclude that it was never necessary, and that it’s a (harmless) example of cargo-cult programming.