Creando un nuevo proyecto Para empezar a comprender cmo se construye una aplicacin Android vamos a crear un nuevo proyecto Android en Eclipse. proyecto Android en Eclipse. Para crear un nuevo proyecto abriremos Eclipse e iremos al men File / New / Android Application Project. Creando un nuevo proyecto En la primera pantalla indicaremos el nombre de la aplicacin, el nombre del proyecto y el paquete java que utilizaremos en nuestras clases java. Tendremos que seleccionar adems la mnima versin del SDK que aceptar nuestra aplicacin al ser instalada en un dispositivo (Minimum Required SDK), la versin Creando un nuevo proyecto un dispositivo (Minimum Required SDK), la versin del SDK para la que desarrollaremos (Target SDK), y la versin del SDK con la que compilaremos el proyecto (Compile with). Las dos ltimas suelen coincidir con la versin de Android ms reciente. El resto de opciones las dejaremos con los valores por defecto. Creando un nuevo proyecto Creando un nuevo proyecto Al pulsar el botn Next, accederemos al segundo paso del asistente, donde tendremos que indicar si durante la creacin del nuevo proyecto queremos crear un icono para nuestra aplicacin (Create custom launcher icon) y si queremos Creando un nuevo proyecto (Create custom launcher icon) y si queremos crear una actividad inicial (Create activity). Tambin podremos indicar si nuestro proyecto ser del tipo Librera (Mark this Project as a library). Por ahora dejaremos todas las opciones marcadas por defecto como se ve en la siguiente imagen y pulsamos Next. Creando un nuevo proyecto En la siguiente pantalla del asistente configuraremos el icono que tendr nuestra aplicacin en el dispositivo. No nos detendremos mucho en este paso ya que no tiene demasiada relevancia por el momento. Tan slo decir que Creando un nuevo proyecto relevancia por el momento. Tan slo decir que podremos seleccionar la imagen, texto o dibujo predefinido que aparecer en el icono, el margen, la forma y los colores aplicados. Por ahora podemos dejarlo todo por defecto y avanzar al siguiente paso pulsando Next. Creando un nuevo proyecto En la siguiente pantalla del asistente elegiremos el tipo de Actividad principal de la aplicacin. Entenderemos por ahora que una actividad es una ventana o pantalla de la aplicacin. En Creando un nuevo proyecto este paso tambin dejaremos todos los valores por defecto, indicando as que nuestra pantalla principal ser del tipo BlankActivity. Creando un nuevo proyecto Por ltimo, en el ltimo paso del asistente indicaremos los datos de esta actividad principal que acabamos de elegir, indicando el nombre de su clase java asociada y el nombre de su layout xml (algo as como la interfaz grfica de la Creando un nuevo proyecto xml (algo as como la interfaz grfica de la actividad, lo veremos ms adelante). Creando un nuevo proyecto Una vez configurado todo pulsamos el botn Finish y Eclipse crear por nosotros toda la estructura del proyecto y los elementos indispensables que debe contener. En la Creando un nuevo proyecto indispensables que debe contener. En la siguiente imagen vemos los elementos creados inicialmente para un nuevo proyecto Android: Creando un nuevo proyecto Carpeta /src/: Esta carpeta contendr todo el cdigo fuente de la aplicacin, cdigo de la interfaz grfica, clases auxiliares, etc. Inicialmente, Eclipse crear por nosotros el cdigo bsico de la pantalla (Activity) principal de la aplicacin, que recordemos que en nuestro caso eraMainActivity, y siempre bajo la Estructura del proyecto nuestro caso eraMainActivity, y siempre bajo la estructura del paquete java definido. Carpeta /res/: Contiene todos los ficheros de recursos necesarios para el proyecto: imgenes, vdeos, cadenas de texto, etc. Los diferentes tipos de recursos se distribuyen entre las siguientes subcarpetas: Carpeta Descripcin /res/drawable/ Contiene las imgenes [y otros elementos grficos] usados en la Estructura del proyecto /res/drawable/ Contiene las imgenes [y otros elementos grficos] usados en la aplicacin. Para definir diferentes recursos dependiendo de la resolucin y densidad de la pantalla del dispositivo se suele dividir en varias subcarpetas: /drawable-ldpi (densidad baja) /drawable-mdpi (densidad media) /drawable-hdpi (densidad alta) /drawable-xhdpi (densidad muy alta) Carpeta Descripcin /res/layout/ Contiene los ficheros de definicin XML de las diferentes pantallas de la interfaz grfica. Para definir distintos layouts dependiendo de la orientacin del dispositivo se puede dividir en dos subcarpetas: (vertical) Estructura del proyecto /layout (vertical) /layout-land (horizontal) /res/menu/ Contiene la definicin XML de los mens de la aplicacin. /res/values/ Contiene otros ficheros XML de recursos de la aplicacin, como por ejemplo cadenas de texto (strings.xml), estilos (styles.xml), colores (colors.xml), arrays de valores (arrays.xml), etc. Estructura del proyecto Como ejemplo, para un proyecto nuevo Android, se crean por defecto los siguientes recursos para la aplicacin: Estructura del proyecto Entre los recursos creados por defecto, cabe destacar el layout activity_main.xml, que contiene la definicin de la interfaz grfica de la pantalla principal de la aplicacin. Si hacemos doble clic sobre el fichero, Eclipse nos mostrar esta interfaz en su editor grfico y como nos mostrar esta interfaz en su editor grfico y como podremos comprobar, en principio contiene tan slo una etiqueta de texto en pantalla con el mensaje Hello World!. Estructura del proyecto Estructura del proyecto Durante el curso no utilizaremos demasiado este editor grfico, sino que modificaremos la interfaz de nuestras pantallas manipulando directamente el fichero XML asociado (al que se puede acceder pulsando sobre la pestaa inferior derecha, junto la solapa Graphical pestaa inferior derecha, junto la solapa Graphical Layout que se observa en la imagen. En este caso, el XML asociado sera el siguiente: Estructura del proyecto Carpeta /gen/: Contiene una serie de elementos de cdigo generados automticamente al compilar el proyecto. Cada vez que generamos nuestro proyecto, la maquinaria de compilacin de Android genera por nosotros una serie de ficheros fuente java dirigidos al Estructura del proyecto nosotros una serie de ficheros fuente java dirigidos al control de los recursos de la aplicacin. Importante: dado que estos ficheros se generan automticamente tras cada compilacin del proyecto es importante que no se modifiquen manualmente bajo ninguna circunstancia. Estructura del proyecto A destacar sobre todo el fichero que aparece desplegado en la imagen anterior, llamadoR.java, donde se define la clase R. Esta clase R contendr en todo momento una serie de constantes con los ID de todos los recursos de la aplicacin incluidos en la carpeta /res/, de forma que podamos acceder Estructura del proyecto incluidos en la carpeta /res/, de forma que podamos acceder fcilmente a estos recursos desde nuestro cdigo a travs 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/. En cualquier caso recordemos que no debemos tocar en ningn momento el cdigo de esta clase. Carpeta /bin/: esta es otra de esas carpetas que en principio no tendremos por qu tocar. Contiene los elementos compilados de la aplicacin y otros ficheros auxiliares. Cabe destacar el fichero con extensin .apk, que es el ejecutable de la aplicacin que se Estructura del proyecto .apk, que es el ejecutable de la aplicacin que se instalar en el dispositivo Carpeta /libs/: Contendr las libreras auxiliares, normalmente en formato .jar que utilicemos en nuestra aplicacin Android. Estructura del proyecto Fichero AndroidManifest.xml: La base para cualquier aplicacin Android es el archivo AndroidManifest.xml que se encuentra en la raz de directorios de cualquier proyecto. Dentro de este archivo se declara todo lo que se encuentre dentro de la aplicacin las actividades, los servicios, etc. y cmo todas estas piezas interactan entre s. Cada vez que Estructura del proyecto cmo todas estas piezas interactan entre s. Cada vez que creamos un nuevo proyecto Android, obtendremos un archivo manifest inicial que se genera automticamente, y que abarca los elementos bsicos de una aplicacin sencilla; la declaracin de una actividad y nada ms. Conforme aumente la complejidad de las funciones que queramos que realicen nuestras aplicaciones, este archivo ir creciendo en lneas de cdigo y en declaraciones de elementos distintos. Elementos bsicos del AndroidManifest.xml El elemento raz de todos los archivos manifiestos es, un elemento <manifest></manifest>: Estructura del proyecto Si observamos con atencin, uno de los datos ms importantes que debemos indicar en la declaracin del manifiesto es el del atributo package que corresponde al espacio de nombres que definimos en el wizzard de creacin del proyecto. En este ejemplo, nuestro package Estructura del proyecto creacin del proyecto. En este ejemplo, nuestro package es com.example.app1, que es el nombre del paquete Java que contiene el elemento raz de nuestra aplicacin, es decir, la actividad principal de arranque que necesitamos inicie siempre antes que las dems. Posteriormente, para declarar cada una de las actividades deberemos seguir una convencin de nombres que consiste en agarrar el nombre de la clase Java que representa la Activity y anteponerle un signo de punto. Por ejemplo, si quisiramos hacer referencia Estructura del proyecto punto. Por ejemplo, si quisiramos hacer referencia a com.example.App1 la declaracin en el AndroidManifest.xml quedara de la siguiente manera: Permiso y aplicacin uses-permission: Como su nombre lo indica, este elemento declara los permisos que necesitar tu aplicacin para funcionar de manera apropiada. Entre ellos podemos encontrar permisos para Estructura del proyecto Entre ellos podemos encontrar permisos para acceder al GPS del telfono y a los datos de localizacin para que haga tal o cual funcin. application: Este elemento define lo principal de la aplicacin (nombre, actividad principal, icono, etc.) que el archivo AndroidManifest describe. Estructura del proyecto Estructura del proyecto Estructura del proyecto Estructura del proyecto