Читать книгу El gran libro de Android - Jesus Tomás Gironés - Страница 41

1.9. 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.

src: 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.

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 dos nombres de paquetes: el de la librería de compatibilidad appcompact_v7 y el del paquete de la aplicación. Dentro de este último aparece:

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, la API de Android según la versión seleccionada para compilar.

Android Private Libraries: se indican las librerías asociadas al proyecto. Existen dos alternativas para asociar una librería en Java. La primera consiste en crear un nuevo proyecto con el código y la segunda es utilizar un fichero .jar con el código ya compilado. En este proyecto se utilizan dos librerías añadidas de las dos formas indicadas. La primera es android-support-v7-appcompat. Si observas el camino que se indica a la derecha del nombre de la librería, hace referencia al proyecto appcompat_v7, creado justa encima del proyecto HolaMundo. La segunda es android-support-v4, que corresponde al fichero.jar que se ha almacenado en la carpeta libs. Se han añadido automáticamente estas dos librerías para permitir ciertas funcionalidades importantes no disponibles en el nivel de API mínimo seleccionado. Gracias a esta librería podremos utilizar elementos como Fragments, ViewPager o Navigation Drawer, 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. Como se ha indicado, estas librerías solo añaden ciertos componentes.


Android Dependencies: se indican los proyectos que tienen que ser compilados antes del nuestro. En este caso, appcompat_v7.

assets: carpeta que puede contener una serie arbitraria de ficheros o subcarpetas que podrán ser utilizados por la aplicación (ficheros de datos, fuentes, etc.).

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

libs: código JAR con librerías que quieras usar en tu proyecto.

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 cargue al cumplirse una 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); -v11 significa que el recurso solo ha de cargarse en un dispositivo con el nivel de API 11 (versión 3.0). Véase el apartado 2.5 del anexo 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. 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 del tipo string, color, estilo o dimensión. De esta manera podremos cambiar los valores usados en un programa 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 de vistas (Tween). Las animaciones se describen 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, 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.

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 512 × 512 (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 de la API y otras características cuando se instala la aplicación en el terminal.

Vídeo[tutorial]: Elementos de un proyecto Android
Preguntas de repaso: Elementos de un proyecto

NOTA: como se acaba de ver, el formato 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.

El gran libro de Android

Подняться наверх