La 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. Y también como en los proyectos tradicionales de java el código se organizará en carpetas que resultaran en paquetes. Recordad que durante el proceso de creación del proyecto definimos el paquete que lo identificará. Por norma general la estructura de nuestro proyectos partirá de esta raíz tal como se ve en la imagen.
La carpeta res:
Esa es una carpeta más compleja ya que se subdivide en múltiples subdirectorios, pero para resumir, diremos que va a contener lo que en el mundo de Android llamaremos recursos. Ya veremos que existen distintos tipos de recursos como imágenes, textos, layouts, y que podemos administrar aquí como se van gestionar los recursos para dispositivos con características y configuraciones distintas (densidad de píxel, localización, ect…)
Hay que tener en cuenta que los archivos que vayamos a crear como recursos deben seguir una nomenclatura determinada ya que no se va a permitir que el nombre del archivo empiece por un valor numérico por poner un ejemplo, o que contenga mayúsculas.
- /res/drawable: Imágenes (PNG, JPEG o GIF) de la aplicación. Puede contener, ente otras, las carpetas /drawable-ldpi, /drawable-mdpi, /drawable-hdpi /drawable-xhdpi para utilizar distintas imágenes en función de la densidad del dispositivo.
- /res/layout: Ficheros XML que construyen las interfaces de usuario
- /res/anim: Ficheros XML con descripción de animaciones
- /res/color: Contiene ficheros XML de definición de listas de colores según estado
- Ficheros XML con los menús.
/res/xml: Otros ficheros XML que se usen en la aplicación
/res/values: Ficheros XML con valores de cadenas de texto (strings), colores o estilos. También pueden existir carpetas que se denominen values-v más un número de API para que la aplicación utilice distintos recursos en función de la versión del sistema operativo del dispositivo donde se ejecute.
La carpeta gen:
Esta es una carpeta de código fuente que va a contener archivos de Java como la carpeta src, pero no deberemos agregar o modificar los archivos contenidos ya que son generados automáticamente por el plugin de Android a partir del contenido de la carpeta res. Aquí encontramos el archivo R que es el archivo de java que servirá para indexar e identificar a todos y cada uno de los recursos de la carpeta res.
La 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 mas laborioso. Por otro lado no tendremos que aplicar las reglas de los recursos en lo que respecta a nomenclaturas y organización.
El archivo AndroidManifest.xml:
Podemos decir que este es el archivo principal y que todas las aplicaciones o librerías deben contener en la raíz del proyecto. En este, se definen las características del proyecto como el nombre, paquete o los permisos que va a requerir la aplicación. También es en este archivo donde se describe los componentes de la aplicación.