2011-09-07 14 views
5

¿Qué significa el punto?Manifiesto de Android: ¿Por qué a veces ".<classname>" en lugar de solo "<classname>"?

mayoría de las veces sólo escribo lo siguiente:

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

Pero a veces veo en el archivo autogenerado:

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

Y también en el Docs for Service veo que escriben

<manifest ... > 
    ... 
    <application ... > 
     <service android:name=".ExampleService" /> 
     ... 
    </application> 
</manifest> 

Pero nunca vi ninguna diferencia al probar el uno o el otro.

+0

Posible duplicado de [¿Es necesario el nombre de la actividad en AndroidManifest.xml para comenzar con un punto?] (Http://stackoverflow.com/questions/3608017/is-the-activity-name-in-androidmanifest-xml- required-to-start-with-a-dot) –

Respuesta

3

Desde el the Android Dev Guide < activity > reference

El nombre de la clase que implementa la actividad, una subclase de actividad. El valor del atributo debe ser un nombre de clase completamente calificado (como, "com.example.project.ExtracurricularActivity"). Sin embargo, como una abreviatura, si el primer carácter del nombre es un punto (por ejemplo, ".ExtracurricularActivity"), se adjunta al nombre del paquete especificado en el elemento. No hay por defecto. El nombre debe ser especificado.

Crédito: Jaywon de Activity Name in android Manifest in Stack Overflow

2

puede encontrar algunas diferencias si se crea más de un paquete, cheques androide para la clase en la carpeta por defecto que podría haber mencionado durante la creación del proyecto.

En cuanto al servicio, agrega automáticamente "servicios" al nombre del paquete y busca el servicio en él. por lo tanto, es más parecido a caminos relativos y absolutos, si coloca su servicio en un nombre de paquete diferente, deberá mencionar la ruta completa del paquete con el nombre de clase. Se aplica a los receptores también ..

4

Si se echa un vistazo al anterior, no existe una definición paquete como

package="app.package.name" 

El nombre de la clase con el punto significa que esa clase está bajo el paquete definido. Si tiene otro paquete como

app.package.name.another 

y hay una clase en ese paquete, usted tiene que nombre de la clase definida como

<activity android:name=".another.activityname" 
1

para recoger cualquier actividad Android requiere nombre completo ... para que nuestros archivos de manifiesto tiene atributo (es decir, el paquete = "com.test") Así que para que sea plenamente cualificado ponemos punto antes del nombre de la actividad (es decir, android: name = "FirstActivity.")

Si lo hace No quiero usar el punto antes de cada actividad, simplemente coloque un punto después del atributo de paquete en la etiqueta de manifiesto (es decir. package = "com.test.") y escriba el nombre de la actividad sin punto (es decir, android: name = "FirstActivity") Para que pueda hacer un nombre completamente calificado (es decir, com.test.FirstActivity)

+0

funciona totalmente sin los puntos. Mi paquete no tiene punto al final, y mis nombres de clase tampoco tienen puntos antes que ellos. Quizás ya lo hayan cambiado para que sea más útil. – erikbwork

-2

El punto antes del nombre significa que es un archivo oculto que no será visto por otros. Puedes ver en youtube cómo ocultar archivos por celular Android.

+0

ver youtube sobre cómo ocultar el archivo de la celda de Android. –

Cuestiones relacionadas