¿Para qué sirve el "punto" al registrar una actividad

Soy una especie de noob en la programación para el sistema operativo Android. He notado en los libros que he estado leyendo que los autores han colocado un "punto" delante del nombre de la actividad al registrar sus actividades en el manifiesto. He mirado alrededor del sitio de desarrolladores de Android y no puedo entender por qué necesitamos el "punto". ¿El "punto" sirve realmente un propósito? ¿Lo necesito? He incluido un ejemplo a continuación. Observe el "punto" antes de "NewActivity":

<activity android:name=".NewActivity"></activity> 

Como usted ha notado el punto no es necesario, pero básicamente significa: la clase de actividad vive en el mismo paquete de la aplicación. Por lo tanto, si el paquete de la aplicación es: com.my.package entonces:

  • .YourActivity significa que tu clase está dentro de com.my.package .
  • YourActivity significa que su clase está dentro de com.my.package (igual que arriba).
  • .activities.YourActivity significa que su clase está dentro de com.my.package.activitites .
  • Incluso puedes hacer algo como: com.my.package.activities.YourActivity que es útil cuando quieres tener diferentes versiones de tu aplicación y usar Ant para cambiar las referencias al paquete automáticamente.

http://developer.android.com/guide/topics/manifest/activity-element.html#nm

Android: nombre
El nombre de la clase que implementa la actividad, una subclase de Actividad. El valor del atributo debe ser un nombre de clase totalmente calificado (por ejemplo, "com.example.project.ExtracurricularActivity"). Sin embargo, como una abreviatura, si el primer carácter del nombre es un punto (por ejemplo, ".ExtracurricularActivity"), se agrega al nombre del paquete especificado en <manifest> .

Así que dado ApplicationManifest.xml :

 <manifest ... package="com.stackoverflow.android.geotask" ...> <application ...> <activity android:name=".view.TaskListListView" ...> ... </application> </manifest> 

Entonces desde android:name=".view.TaskListListView" tiene un período inicial, por lo que se interpreta como android:name="com.stackoverflow.android.geotask.view.TaskListListView" .

Ese punto agregará su package en su manifiesto de aplicación.

Si el nombre del paquete es com.app.demo .

 <activity android:name=".HelloWorldActivity"> 

Significa que la Actividad se encuentra dentro del paquete de demostración.

Puedes reemplazar esto con

 <activity android:name="com.app.demo.HelloWorldActivity"> 
  • Manifiesto de Android Studio Faltando error en Gradle
  • No se muestra nada después de abrir la aplicación
  • AndroidManifest actividad android: excludeFromRecents
  • Extraer el archivo AndroidManifest.xml de apk usando sólo Java
  • Mezcla de manifiesto de Android: diferentes actividades de lanzamiento del proyecto de biblioteca
  • AndroidMainfest - ¿debería tener un filtro de intención múltiples acciones?
  • El flujo maestro / detallado tiene un nivel mínimo de api igual al uso
  • ¿Cómo saber qué nivel de API estoy construyendo para usar ndk-build?
  • Reanude la actividad principal en lugar de iniciar la actividad del lanzador
  • Cómo iniciar la aplicación en el botón de encendido presione
  • <Compatible-pantallas> excluye la aplicación de Nexus 5x en Google Play
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.