viernes, 30 de enero de 2015

ANDROID 7 : FICHEROS Y CARPETAS DE UN PROYECTO ANDROID




Ficheros y carpetas de un proyecto Android

Un proyecto Android está formado básicamente por un descriptor de la aplicación (AndroidManifest.xml), el código fuente en Java y una serie de ficheros con recursos. Cada elemento se almacena en una carpeta específica. Aprovecharemos el proyecto que acabamos de crear para estudiar la estructura de un proyecto Android. No te asustes con el exceso de información. Más adelante se dará más detalles sobre la finalidad de cada fichero. Aunque muy similar existen algunas diferencias entre un proyecto creado en Android Studio y en Eclipse. Por esta razón lo explicaremos de forma diferenciada:

Android Studio


AndroidManifest.xml:
Este fichero describe la aplicación Android. En él se indican las actividades, las intenciones, los servicios y los proveedores de contenido de la aplicación. También se declaran los permisos que requerirá la aplicación. Se indica la versión mínima de Android para poder ejecutarla, el paquete Java, la versión de la aplicación, etc.

java:
Carpeta que contiene el código fuente de la aplicación. Como puedes observar los ficheros Java se almacenan en carpetas según el nombre de su paquete.

MainActivity:
Clase Java con el código de la actividad inicial.

ApplicationTest:
Clase Java pensada para insertar código de testeo de la aplicación utilizando el API JUnit.

res:  
Carpeta que contiene los recursos usados por la aplicación.

drawable:
En esta carpeta se almacenan los ficheros de imágenes (JPG o PNG) y descriptores de imágenes en XML. En el proyecto se ha incluido el fichero ic_launcher.png que será utilizado como icono de la aplicación. Observa como este recursdo se ha añadido en cuatro versiones diferentes. Como veremos en el siguiente capítulo, usaremos un sufijo especial si queremos tener varias versiones de un recurso, de forma que solo se cargue al cumplirse una determinada condición. Por ejemplo: (hdpi) significa que solo ha de cargar los recursos contenidos en esta carpeta cuando el dispositivo donde se instala la aplicación tiene una densidad gráfica alta (180-  dpi); (mdpi) se utilizará con densidad gráfica alta (180-  dpi). Si pulsas sobre las diferentes versiones del recurso observarás como se trata del mismo icono pero con más o menos resolución, de forma que en función de la densidad gráfica del dispositivo se ocupe un tamaño similar en la pantalla. Véase el apartado 2.6 del anexo E para más detalles.

layout:
Contiene ficheros XML con vistas de la aplicación. Las vistas nos permitirán configurar las diferentes pantallas que compondrán la interfaz de usuario de la aplicación. Se utiliza un formato similar al HTML usado para diseñar páginas web. Se tratarán en el siguiente capítulo.

menu:
Ficheros XML con los menús de cada actividad.

values:
También utilizaremos ficheros XML para indicar valores usados en la aplicación, de esta manera podremos cambiarlos desde estos ficheros sin necesidad de ir al código fuente. En dimens.xml, se ha definido el margen horizontal y vertical por defecto. Observa como hay dos ficheros, el usado por defecto y el etiquetado como (w820dp)que será utilizado en dispositivos con ancho superior a 820 dp, esto ocurrirá en tabletas. En el fichero strings.xml, tendrás que definir todas las cadenas de caracteres de tu aplicación. Creando recursos alternativos resultará muy sencillo traducir una aplicación a otro idioma. Finalmente en styles.xml, podrás definir los estilos y temas de tu aplicación. Se estudian en el siguiente capítulo.

anim:
Contiene ficheros XML con animaciones de vistas (Tween).

animator:
Contiene ficheros XML con animaciones de propiedades.

Xml:
Otros ficheros XML requeridos por la aplicación.

raw:
 Ficheros adicionales que no se encuentran en formato XML.

Gradle Scripts:
 En esta carpeta se almacenan una serie de ficheros Gradle que permiten construir la aplicación. Podrás definir aspectos importantes como la verisón del sdk de compilación (targetSdkVersion) y la versión mínima (minSdkVersion).


Eclipse

SRC:
Carpeta que contiene el código fuente de la aplicación. Como puedes observar los ficheros Java se almacenan en un espacio de nombres.

gen:
Carpeta que contiene el código generado de forma automática por el SDK. Nunca hay que modificar de forma manual estos ficheros. 

Dentro encontraremos:

BuildConfig.java:

Define la constante DEBUG para que desde Java puedas saber si tu aplicación está en fase de desarrollo.

R.java:
Define una clase que asocia los recursos de la aplicación con identificadores. De esta forma los recursos podrán ser accedidos desde Java.

Android x.x:
Código JAR, el API de Android según la versión seleccionada.
Android Private Libraries: 

Librerías asociadas al proyecto.

assets:
Carpeta que puede contener una serie arbitraria de ficheros o carpetas que podrán ser utilizados por la aplicación (ficheros de datos, fuentes,…). A diferencia de la carpeta res, nunca se modifica el contenido de los ficheros de esta carpeta ni se les asociará un identificador.

bin:  
En esta carpeta se compila el código y se genera el .apk, fichero comprimido que contine la aplicación final lista para instalar.

libs: 
Código JAR con librerías que quieras usar en tu proyecto. Se ha añadido automáticamente la librería android-support-v4. Su objetivo es permitir ciertas funcionalidades importantes no disponbles en el nivel de API seleccionado como mínimo. Gracias a esta librería podremos utilizar lementos como Fragments, ViewPager o Navigation Drawable, que no están disponibles en el nivel de API mínimo seleccionado. Pero cuidado, esto no quiere decir que podamos usar cualquier nivel de API libremente. Aparte de los elementos citados no se incluye mucho más en esta librería.

res: 
Carpeta que contiene los recursos usados por la aplicación. Como veremos en el siguiente capítulo las subcarpetas pueden tener un sufijo si queremos que el recurso solo se carge al cumplirse una condición. Por ejemplo –hdpisignifica que solo ha de cargar los recursos contenidos en esta carpeta cuando el dispositivo donde se instala la aplicación tiene una densidad gráfica alta (>180dpi); -v11significa que el recurso solo ha de cargarse en un dispositivo con nivel de API 11 (v3.0).  Ver sección 2.5 del apéndice C para más detalles.

drawable:
En esta carpeta se almacenan los ficheros de imágenes (JPG o PNG) y descriptores de imágenes en XML.

layout:
Contiene ficheros XML con vistas de la aplicación. Las vistas nos permitirán configurar las diferentes pantallas que compondrán la interfaz de usuario de la aplicación. Se utiliza un formato similar al HTML usado para diseñar páginas Web. 

menu:
Ficheros XML con los menús de cada actividad.

values:
También utilizaremos ficheros XML para indicar valores del tipo string, color o estilo. De esta manera podremos cambiar los valores sin necesidad de ir al código fuente. Por ejemplo, nos permitiría traducir una aplicación a otro idioma.

anim:
Contiene ficheros  XML con animaciones Tween. Las animaciones son descritas al final del capítulo 4.

animator:
Contiene ficheros  XML con animaciones de propiedades.

xml:
Otros ficheros XML requeridos por la aplicación.

raw:
Ficheros adicionales que no se encuentran en formato XML.

AndroidManifest.xml:
Este fichero describe la aplicación Android. En él se indican las actividades, intenciones, servicios y proveedores de contenido de la aplicación. También se declaran los permisos que requerirá la aplicación. Se indica la versión mínima de Android para poder ejecutarla, el paquete Java, la versión de la aplicación, etc.

ic_launcher-web.png:
Icono de la aplicación de gran tamaño para ser usado en páginas Web. El nombre puede variar si se indicó uno diferente en el proceso de creación del proyecto. Ha de tener una resolución de 512x512 (con alfa). 

proguard-project.txt
Fichero de configuración de la herramienta ProGuard, que te permite optimizar y ofuscar el código generado. Es decir, se obtiene un .apk más pequeño y donde resulta más difícil hacer ingeniería inversa.

project.properties:

Fichero generado automáticamente por el SDK. Nunca hay que modificarlo. Se utiliza para comprobar la versión del API y otras características cuando se instala la aplicación en el terminal.

Siguiente entrada : componentes de una aplicacion.


No hay comentarios:

Publicar un comentario