viernes, 5 de junio de 2015

Estructura De un Proyecto Android

ESTRUCTURA DE UN PROYECTO ANDROID



Para empezar a comprender cómo se construye una aplicación Android vamos a echar un vistazo a la estructura general de un proyecto tipo.
Cuando creamos un nuevo proyecto Android en Eclipse se genera automáticamente la estructura de carpetas necesaria para poder generar posteriormente la aplicación. Esta estructura será común a cualquier aplicación, independientemente de su tamaño y complejidad.

En la siguiente imagen vemos los elementos creados inicialmente para un nuevo proyecto Android:



CARPETA Src:

Esta es por defecto la carpeta donde se depositará el código fuente Java, y como en los proyectos para escritorio puede llamarse de otro modo si nos interesa o podemos disponer de distintas carpetas fuente, a veces puede ser un modo de enlazar con librerías. Todo el código que pongamos en las carpetas fuente será compilado cuando se requiera. Contiene todo el código fuente de la aplicación, código de la interfaz gráfica, clases auxiliares, etc. Inicialmente, Eclipse creará por nosotros el código básico de la pantalla (Activity) principal de la aplicación, siempre bajo la estructura del paquete java definido.

CARPETA res y Subcarpetas:

Contiene todos los ficheros de recursos necesarios para el proyecto: imágenes, vídeos, cadenas de texto, etc. Los diferentes tipos de recursos de deberán distribuir entre las siguientes carpetas:
·                     /res/drawable/. Contienen las imágenes de la aplicación. Se puede dividir en /drawable-ldpi,/drawable-mdpi y /drawable-hdpi para utilizar diferentes recursos dependiendo de la resolución del dispositivo.
·                     /res/layout/. Contienen los ficheros de definición de las diferentes pantallas de la interfaz gráfica. Se puede dividir en /layout y /layout-land para definir distintos layouts dependiendo de la orientación del dispositivo.
·                     /res/anim/. Contiene la definición de las animaciones utilizadas por la aplicación.
·                     /res/menu/. Contiene la definición de los menús de la aplicación.
·                     /res/values/. Contiene otros recursos de la aplicación como por ejemplo cadenas de texto (strings.xml), estilos (styles.xml), colores (colors.xml), etc.
·                     /res/xml/. Contiene los ficheros XML utilizados por la aplicación.
·                     /res/raw/. Contiene recursos adicionales, normalmente en formato distinto a XML, que no se incluyan en el resto de carpetas de recursos.



CARPETA gen:

Contiene una serie de elementos de código generados automáticamente al compilar el proyecto. Cada vez que generamos nuestro proyecto, la maquinaria de compilación de Android genera por nosotros una serie de ficheros fuente en javas dirigidos al control de los recursos de la aplicación.
El más importante es el que se puede observar en la imagen, el fichero R.java, y la clase R.
Esta clase R contendrá en todo momento una serie de constantes con los ID de todos los recursos de la aplicación incluidos en la carpeta /res/, de forma que podamos acceder facilmente a estos recursos desde nuestro código a traves de este dato. Así, por ejemplo, la constante R.drawable.icon contendrá el ID de la imagen “icon.png”contenida en la carpeta /res/drawable/. Veamos como ejemplo la clase R creada por defecto para un proyecto nuevo:
public final class R {
    public static final class attr {
    }
    public static final class drawable {
        public static final int icon=0x7f020000;
    }
    public static final class layout {
        public static final int main=0x7f030000;
    }
    public static final class string {
        public static final int app_name=0x7f040001;
        public static final int hello=0x7f040000;
    }
}
CARPETA assets:
En esta carpeta depositaremos todos los archivos que vayamos a querer que acompañen a la aplicación, pueden estar organizados en carpetas y serán empaquetados en el apk final. Podemos considerarlos como recursos al igual que el contenido de la carpeta res, pero no estarán indenxados ni compilados de modo que el acceso a estos es menos eficiente y algo más laborioso. Por otro lado no tendremos que aplicar las reglas de los recursos en lo que respecta a nomenclaturas y organización.

Archivo Android Manifest.xml:

Contiene la definición en XML de los aspectos principales de la aplicación, como por ejemplo su identificación (nombre, versión, icono, …), sus componentes (pantallas, mensajes, …), o los permisos necesarios para su ejecución. Veremos más adelante más detalles de este fichero.
En el siguiente post veremos los componentes software principales con los que podemos construir una aplicación Android.




No hay comentarios:

Publicar un comentario