Posted by : Unknown domingo, 3 de agosto de 2014

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. Mas adelante se dará más detalles sobre la finalidad de cada fichero. 
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 FragmentsViewPager 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. Serán tratadas en el siguiente capítulo.
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,intencionesservicios 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.

  video[Tutorial

Preguntas de repaso y reflexión:

NOTA: Como se acaba de ver el uso de XML es ampliamente utilizado en las aplicaciones Android. También es conocido el excesivo uso de espacio que supone utilizar este formato para almacenar información. Esto parece contradecir la filosofía de Android que intenta optimizar al máximo los recursos. Para solucionar el problema, los ficheros XML son compilados a un formato más eficiente antes de ser transferidos al terminal móvil.

Leave a Reply

Subscribe to Posts | Subscribe to Comments

- Copyright © Android Arm WorkStation - Blogger Templates - Powered by Blogger - Designed by Johanes Djogan -