viernes, 5 de junio de 2015

Estructura de un proyecto Android

Estructura de un proyecto Android



Estructura de un proyecto Android
En el último artículo de desarrollo creamos nuestro primer proyecto para Android, y vimos que fácilmente podemos lanzar nuestra primera app en el emulador, ya que el asistente de creación de proyectos hizo todo el trabajo por nosotros.
Vamos a ver de forma un poco más detallada cual es la estructura de un proyecto. Como podéis ver en la imagen, dentro de la carpeta HolaAndroidZone tenemos un conjunto de carpetas y archivos, esto es lo básico en un proyecto nuevo. Enumeremos aquellos puntos clave que nos interesa empezar a conocer:
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 proyecto 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.


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 más laborioso. Por otro lado no tendremos que aplicar las reglas de los recursos en lo que respecta a nomenclaturas y organización.
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.
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.
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 java dirigidos al control de los recursos de la aplicación. Importante: dado que estos ficheros se generan automáticamente tras cada compilación del proyecto es importante que no se modifiquen manualmente bajo ninguna circunstancia.

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 fácilmente a estos recursos desde nuestro código a través de este dato. Así, por ejemplo, la constante R.drawable.ic_launcher contendrá el ID de la imagen “ic_launcher.png” contenida en la carpeta /res/drawable/.

El archivo AndroidManifest.xml
Podemos decir que este es el archivo principal y que todas las aplicaciones o librerías deben contener en laraí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.
Como su nombre indica podéis imaginar que es un archivo XMO, pero al tener instaladas el plugin de Android podemos visualizarlo y editarlo a partir de un editor visual además de sobre un editor de archivos XML. Si lo abrimos haciendo doble click sobre el se mostrará probablemente en forma XML, pero podremos navegar por distintas pestañas que nos mostraran el editor disgregado en secciones tal como se puede ver en la imagen.


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.



Componentes de una aplicación Android
Existe una serie de elementos clave que resultan imprescindibles para desarrollar aplicaciones en Android. En este apartado vamos a realizar una descripción inicial de algunos de los más importantes. A lo largo del libro se describirán con más detalle las clases Java que implementan cada uno de estos componentes.
Estructura de un proyecto Android

Estructura de un proyecto Android
En el último artículo de desarrollo creamos nuestro primer proyecto para Android, y vimos que fácilmente podemos lanzar nuestra primera app en el emulador, ya que el asistente de creación de proyectos hizo todo el trabajo por nosotros.
Vamos a ver de forma un poco más detallada cual es la estructura de un proyecto. Como podéis ver en la imagen, dentro de la carpeta HolaAndroidZone tenemos un conjunto de carpetas y archivos, esto es lo básico en un proyecto nuevo. Enumeremos aquellos puntos clave que nos interesa empezar a conocer:
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 proyecto 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.


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 más laborioso. Por otro lado no tendremos que aplicar las reglas de los recursos en lo que respecta a nomenclaturas y organización.
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.
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.
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 java dirigidos al control de los recursos de la aplicación. Importante: dado que estos ficheros se generan automáticamente tras cada compilación del proyecto es importante que no se modifiquen manualmente bajo ninguna circunstancia.

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 fácilmente a estos recursos desde nuestro código a través de este dato. Así, por ejemplo, la constante R.drawable.ic_launcher contendrá el ID de la imagen “ic_launcher.png” contenida en la carpeta /res/drawable/.

El archivo AndroidManifest.xml
Podemos decir que este es el archivo principal y que todas las aplicaciones o librerías deben contener en laraí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.
Como su nombre indica podéis imaginar que es un archivo XMO, pero al tener instaladas el plugin de Android podemos visualizarlo y editarlo a partir de un editor visual además de sobre un editor de archivos XML. Si lo abrimos haciendo doble click sobre el se mostrará probablemente en forma XML, pero podremos navegar por distintas pestañas que nos mostraran el editor disgregado en secciones tal como se puede ver en la imagen.


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.



Componentes de una aplicación Android
Existe una serie de elementos clave que resultan imprescindibles para desarrollar aplicaciones en Android. En este apartado vamos a realizar una descripción inicial de algunos de los más importantes. A lo largo del libro se describirán con más detalle las clases Java que implementan cada uno de estos componentes.

No hay comentarios.:

Publicar un comentario