Curso rápido de desarrollo para Android (Parte 1)

3 Jul

La semana pasada asistí a un curso intensivo vacacional sobre desarrollo para Android que se llevó a cabo en la Universidad gracias al semillero que está realizando Campus Móvil – UdeA y el profesor Danny Múnera, y tengo como meta publicar acá los contenidos vistos en el mismo. Serán 5 partes y espero que lo disfruten.

Parte 1 – Introducción

Arquitectura

Arquitectura de Android

  • Linux Kernel; es la base y fue elegido principalmente por su portabilidad.
  • Librerías base; brindan acceso esencial al kernel. Estas librerías cumplen las funciones de las librearías estandar de C pero están bajo una licencia Apache.
  • Android Runtime; es el ambiente de ejecución, el lugar donde está la máquina virtual Dalvik.
  • Application Framework; es la capa donde se encuentran las que podríamos llamar “APIs del sistema”.
  • Aplicaciones; las que vienen por defecto y las que desarrollaremos, haciendo uso de las otras capas.

Aplicaciones Android APK

Los archivos APK son una variante del formato JAR de Java, y se usan para distribuir e instalar componentes empaquetados para la plataforma Android. Un archivo APK normalmente contiene:

  • Archivos DEX (Dalvik Executable)
  • Recursos (Imágenes, Layouts, Archivos de internacionalización, etc – No código)
  • AndroidManifest.xml
  • Librerías Nativas

Aplicaciones Android NDK

NDK (Native Development Kit) es un set de herramientas que permiten implementar parte de la aplicación usando código de lenguajes nativos como C y C++. Más información (en inglés)

Instalación de la plataforma (SDK)

Para iniciar con el desarrollo de aplicaciones para Android necesitamos tener instalado el SDK de Android, el JDK y un IDE apropiado. La instalación del JDK y el IDE (en esta caso usaremos Eclipse) se deja al lector. Puede descargar e instalar Eclipse y el JDK de acá.

Luego de tener instalado el JDK y Eclipse, vamos a descargar el SDK de Android de la página oficial: http://developer.android.com/sdk/index.html y descomprimirlo en un lugar seguro y casi definitivo.

Procedemos luego con la instalación del Plugin ADT (Android Development Tools) para Eclipse:

  1. Iniciamos Eclipse y vamos a Help > Install New Software…
  2. Hacemos click en Add en la esquina superior derecha.
  3. En el dialogo Add Repository que nos aparece, escribimos ADT Plugin en el campo Name y la siguiente URL para el campo Location.
    https://dl-ssl.google.com/android/eclipse/
  4. Hacemos click en OK.
  5. En el diálogo Available Software, seleccionamos el checkbox de Developer Tools y hacemos click en Next.
  6. En la siguiente ventana se mostrará una lista de herramientas que serán descargadas. Hacemos click en Next.
  7. “Leemos” y aceptamos las licencias y luego hacemos click en Finish.
  8. Cuando la instalación termine, reiniciamos Eclipse.

Después de la instalación del plugin ADT y haber reiniciado Eclipse, debemos especificar la ubicación del directorio donde está el SDK de Android.

  1. Abrimos el panel de preferencias de Eclipse. (Window > Preferences o Eclipse > Preferences en OS X).
  2. Seleccionamos Android del panel lateral izquierdo.
  3. En el panel principal veremos el campo SDK Location, hacemos click en Browse… y seleccionamos la ubicación del directorio que contiene el SDK que descargamos anteriormente.
  4. Hacemos click en Apply y luego en OK.

Si no aparecieron errores, estamos listos con la instalación del SDK y el plugin ADT.

Nota: Se recomienda revisar de vez en cuando si hay actualizaciones para el plugin. Esto se puede hacer a través de Help > Check for Uptades.

Ahora procedemos con la instalación de plataformas y paquetes extras para nuestro SDK. Para ello haremos uso del Android SDK Manager, al cual podemos acceder haciendo click en el botón número 1 como se muestra en la imagen a continuación.

1 Android SDK Manager - 2 Android Virtual Device Manager

1 Android SDK Manager – 2 Android Virtual Device Manager

Cuando se abre el Android SDK Manager, automáticamente se seleccionan un conjunto de paquetes recomendados. Podemos agregar o quitar paquetes a esta selección según nuestro gusto y luego procedemos a hacer click en Install para instalar los paquetes. El Android SDK Manager instala los paquetes seleccionados en el entorno del Android SDK. Los paquetes requeridos y recomendados son:

SDK Tools: Requerido.
SDK Platform-tools: Requerido.
SDK Platform: Requerida al menos una plataforma.
System Image: Recomendada.
SDK Samples: Recomendada.
Android Support: Recomendada.

Si tiene dudas o quiere profundizar más en este tema, puede visitar la página http://developer.android.com/sdk/installing/index.html

Creación del proyecto “Hola Mundo”

Primero abrimos el asistente para la creación del proyecto.

Vamos a File > New > Android Application Project

Vamos a File > New > Android Application Project

Luego llenamos los datos relacionados con la aplicación que desarrollaremos. Es importante resaltar que Build SDK es la versión para la cual nuestra aplicación está dirigida y Minimum Required SDK es la versión mínima del SDK a la cual le daremos soporte. Este soporte es algo que debemos implementar, no se hace de forma automática. Se nos da la opción de crear un ícono personalizado para el lanzador (no usado en este ejemplo) e indicamos que nos cree el proyecto en nuestro Workspace.

Especificación de los datos de la aplicación

Ahora se nos presenta la opción de crear una actividad y qué clase de actividad crear. Para este ejemplo crearemos una actividad en blanco.

Creación de la actividad base

Llenaremos los datos correspondientes a la actividad que estamos creando, tales como Nombre de la actividad, Nombre del archivo que contendrá el layout de la actividad y el título de la misma.

Especificación de los datos de la nueva actividad

Hacemos click en Finish y nuestro proyecto estará creado y deberíamos ver un árbol de directorios y archivos similar a este:

Árbol de directorios y archivos del nuevo proyecto

Explicación de las carpetas y archivos creados

Cuando creamos un nuevo proyecto de Android en Eclipse, éste crea una estructura de ficheros bastante ordenada. Veamos los que más usaremos de forma directa.

  • Carpeta src: Acá estará todo el código fuente (Java) de nuestra aplicación.
  • Carpeta res: Acá se almacenan de forma ordenada los recursos (resources) de nuestra aplicación, tales como imágenes, layouts, archivos de internacionalización, etc.
  • Carpeta layout: Acá se almacenan los layouts que usará nuestra aplicación. Los layout son la arquitectura para la interfáz de usuario en una actividad.
  • Archivo layout/activity-main.xml: Este archivo tiene las indicaciones en formato XML para generar la interfáz de usuario de nuestra actividad principal creada automáticamente.
  • Carpeta gen: Acá se almacenarán las clases generadas automáticamente basadas en nuestros recursos. Es la forma de pasar de los recursos a código fuente.
  • Archivo gen/R.java: Este archivo define la clase R, a través de la cual accederemos a todos los archivos que almacenamos como recursos en nuestra carpeta res.
  • Archivo AndroidManifest.xml: Este archivo contiene información esencial sobre la aplicación y es requerido por el sistema Android para poder ejecutar cualquier código de la aplicación. Todas las aplicaciones deben tener este archivo con ese nombre exacto y debe estar en la raíz del proyecto.

Creación de un dispositivo virtual

Durante el desarrollo de nuestras aplicaciones llegará el momento donde queramos hacer pruebas y saber cómo se comporta nuestra aplicación. No todos contamos con dispositivos Android para hacer tales pruebas, pero por fortuna existen los dispositivos virtuales que emulan un sistema Android y nos permiten probar la aplicación. A continuación veremos los pasos necesarios para crear un dispositivo virtual.

Primero hacemos click en el botón 2 de la siguiente imagen para abrir el Android Virtual Device Manager.

1 Android SDK Manager - 2 Android Virtual Device Manager

1 Android SDK Manager – 2 Android Virtual Device Manager

Se nos presentará un listado de todos los dispositivos que tenemos creados, si hay alguno, y las opciones para crear, editar, eliminar, reparar e iniciar los dispositivos. En este caso haremos click en New… para iniciar la creación de un nuevo dispositivo virtual.

Android Virtual Device Manager – Listado de dispositivos y opciones de creación, edición e inicialización.

En el dialogo que se nos presenta debemos ingresar la información de nuestro dispositivo virtual. Nombre,Versión de android que correrá (Target), tamaño de la tarjeta SD, tamaño de la pantalla y datos de hardware. Una vez tengamos listos los datos, procedemos a hacer click en Create AVD.

Llenando los datos del nuevo dispositivo virtual

Ya tenemos creado nuestro dispositivo en el que haremos pruebas de nuestras aplicaciones. Debe aparecernos listado en la ventana del Android Virtual Device Manager.

Lista de dispositivos virtuales. Aparece listado el que acabamos de crear.

Lista de dispositivos virtuales. Aparece listado el que acabamos de crear.

Bases de la construcción de una aplicación en Android

Componentes básicos

Actividades
Son la parte más visible de la aplicación (Screens, UI). Es la parte que nos permite interactuar con el usuario. Una aplicación posee múltiples actividades y es posible saltar entre ellas.
A continuación se muestra el ciclo de vida de las actividades.

Ciclo de vida de una actividad.

Intents
Son mensajes asincronos enviados entre los componentes de una aplicación, estos disparan acciones (inicio de actividadees, servicios, etc…). Los intents son la forma de comunicación entre actividades internas y externas.

Servicios
Son aplicaciones internas que corren en background y no tiene interfáz de usuario. El ciclo de vida es controlado por el programador.

Content Provider
Son interfaces para compartir datos entre aplicaciones. Cumplen el principio CRUD (Create, Read, Update, Delete). Se usa ampliamente con Contactos, Preferencias, Fotos y Videos del usuario.

Broadcast Receivers
Son la implementación del mecanísmo Publish/Subscribe. Se ejecuta un pequeño código cada vez que surge un evento tal como:

  • Llegada de un SMS
  • Ingreso de una llamada
  • Batería baja
  • Inicio del sistema

Application Context

Es el proceso donde todo lo relacionado a una aplicación se está ejecutando y permite compartir información entre componentes de la misma. Este contexto de aplicación contiene Activities, Services, Content Providres y Broadcast Receivers. Este es creado cuando se crea el primer componente de la aplicación.

Acá terminamos la parte 1 de este curso. Ya vendrán las siguientes partes cargadas de cosas interesantes y nuevas. Espero que no se las pierdan. No olviden comentar si tienen alguna duda, sugerencia o queja.

Hasta pronto.

Acerca del autor

Daniel Pérez ha escrito 10 publicaciones en este blog.

THE POSTS ARE DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT WITHOUT ANY WARRANTY. IT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. Los quiero.

3 Comentarios a “Curso rápido de desarrollo para Android (Parte 1)”