Estructura de un proyecto Android

Share if you like...Share on Facebook0Tweet about this on TwitterShare on Google+0Share on LinkedIn0

Cuando creamos nuestro Hola Mundo en eclipse se generó de forma automática una estructura de carpetas. Esta estructura es común a todo proyecto que iniciemos para android.

Estructura básica:

Estructura del proyecto
Estructura del proyecto

Estructura General Proyecto Android

  • src:
    Será donde se almacene el código de la aplicación (las actividades). Aquí se podrá modificar y crear nuevos archivos de código Java, es decir, aquí será donde programemos los fundamentos de nuestra aplicación. Tras la creación del proyecto contendrá la primera Actividad con una estructura propia de Android.
  • gen:
    Contendrá los archivos creados automáticamente, por ejemplo, el archivo de recursos. No se debe modificar nada manualmente dentro de esta carpeta ya que los cambios se perderán cada vez que se regenere el proyecto.
  • Android 4.1.2 y Android Dependencies:
    Son las librerías que el propio asistente ha añadido para poder trabajar con la versión 4.1.2 de Android.
  • assets:
    Directorio para guardar recursos no compilados del proyecto. Serán aquellos recursos a los que no se les asignará un identificador dentro de la aplicación y que no cuadran dentro de las categorías de res.
  • res:
    Contendrá la mayor parte de los recursos de nuestra aplicación (imágenes, diseños de pantalla, animaciones…). Los que más utilizaremos en este proyecto serán los archivos contenidos en layouts (diseños de pantalla) y en values (cadenas de caracteres…).
  • AndroidManifest.xml:
    Es el archivo más importante de la aplicación, en él se configuran aspectos tan importantes como el nombre de la aplicación, permisos que se le quieren dar (acceso a internet, a sensores…), iconos a mostrar…
  • default.properties:
    Fichero creado por Eclipse y el ADT que contiene información del proyecto, se gestiona automáticamente y no debe ser modificado.
  • proguard.cfg:
    La herramienta ProGuard sirve para ofuscar, optimizar y reducir el código de la aplicación mediante la eliminación de código no utilizado y renombrando clases, atributos y métodos con nombres cortos e incomprensibles, de modo que se obtengan ficheros .apk de menor tamaño.

Dentro de la carpeta res encontramos la siguiente estructura:

  • drawable-hdpi:
    Contiene las imágenes e iconos que utilizaremos en la aplicación en alta resolución. Por defecto viene con un icono de un androide.
  • drawable-ldpi:
    Contiene las mismas imágenes e iconos pero a una resolución baja.
  • drawable-mdpi:
    Contiene las mismas imágenes e iconos pero a una resolución media.
  • layout:
    Contiene un fichero XML por cada pantalla distinta que vayamos a utilizar en nuestro proyecto. Inicialmente sólo contiene una llamada main.xml que definimos en la creación del proyecto.
  • values:
    Contiene un fichero XML con los textos que vamos a utilizar en nuestro proyecto. En vez de escribir directamente los textos en nuestro programa, Android nos facilita esta utilidad para facilitarnos su traducción y convertir nuestro programa en multi-idioma como veremos más adelante. Aquí también encontraremos colores o estilos predefinidos para nuestra aplicación.
  • menu:
    Contiene la definición de los menús de la aplicación.
  • raw:
    Contiene recursos adicionales de nuestro proyecto, normalmente en formato distinto a XML, que no se incluyan en el resto de carpetas de recursos. Por defecto esta carpeta no se crea con nuestro proyecto, tenemos que crearla posteriormente.

Dentro de la carpeta gen tenemos 2 elementos:

  • BuildConfig.java
  • R.java:
    Este archivo es el más importante, es al que vamos a hacer referencia desde nuestro código de java para poder acceder a las direcciones de memoria en los que se encuentran alojados los componentes de nuestra interfaz gráfica (los componentes que diseñamos en nuestros layouts).
    Su estructura sería similar a esta:
package com.example.nombre_del_paquete;

public final class R {
    public static final class attr {
    }
    public static final class drawable {
        public static final int ic_action_search=0x7f020000;
        public static final int ic_launcher=0x7f020001;
    }
    public static final class id {
        public static final int menu_settings=0x7f070000;
    }
    public static final class layout {
        public static final int main=0x7f030000;
    }
    public static final class menu {
        public static final int main=0x7f060000;
    }
    public static final class string {
        public static final int app_name=0x7f040000;
        public static final int hello_world=0x7f040001;
        public static final int menu_settings=0x7f040002;
        public static final int title_activity_hola_mundo=0x7f040003;
    }
    public static final class style {
        public static final int AppTheme=0x7f050000;
    }
}
Share if you like...Share on Facebook0Tweet about this on TwitterShare on Google+0Share on LinkedIn0
The following two tabs change content below.
Reborn as IT Developer. Desarrollador Android y fundador de Proyecto Simio. "En realidad, yo no puedo enseñar nada a nadie, sólo puedo hacerles pensar." - Sócrates.

Deja un comentario