¿Como empezar a programar en Android?

Publicado el 01 agosto 2014 por Jamesrevelo @herprogramacion
El día de hoy comenzamos con este nuevo curso sobre Desarrollo de aplicaciones Android. Como bien sabes, los dispositivos móviles han emergido con gran fuerza entre la sociedad para cambiar la forma de interacción con las aplicaciones y el mundo. Así que no podemos quedarnos rezagados.
A lo largo de este artículo estudiaremos como instalar el entorno de desarrollo para nuestras aplicaciones. Veremos algunos ajustes a realizar para acoplar las aplicaciones instaladas, con el fin de generar un óptimo funcionamiento. Y finalmente crearemos una pequeña aplicación estilo “Hello World” para comprobar el funcionamiento del entorno de programación.

¿Por que Android?

Para nadie es un secreto que  Android está popularizándose cada vez más en los dispositivos móviles, Smart TVs, Relojes inteligentes, etc., arrebatando con gran velocidad parte del mercado a marcas reconocidas como iOS. Esta situación representa una gran oportunidad para nosotros los desarrolladores y el futuro laboral. Pero yo no soy el de las explicaciones, así que me gustaría mostrarte este estudio de la International Data Corporation(IDC) con respecto a la posesión del mercado entre los distribuidores de sistemas operativos para móviles.

Operating System 2013 Shipment Volumes 2013 Market Share 2012 Shipment Volumes 2012 Market Share Year-Over-Year Change

Android 793.6 78.6% 500.1 69.0% 58.7%

iOS 153.4 15.2% 135.9 18.7% 12.9%

Windows Phone 33.4 3.3% 17.5 2.4% 90.9%

BlackBerry 19.2 1.9% 32.5 4.5% -40.9%

Others 10.0 1.0% 39.3 5.4% -74.6%

Total 1009.6 100.0% 725.3 100.0% 39.2%

Fuente: IDC, Android and iOS Continue to Dominate the Worldwide Smartphone Market...
Cabe aclarar que solo estoy indicando que Android es popular y es buena opción programar para este tipo de dispositivos, debido a la gran cantidad de usuarios exponiendo necesidades. En ningún momento he mencionado que es mejor que otras marcas. Todos los sistemas operativos móviles son excelentes tendencias de desarrollo y en esta en las manos de cada quien encontrar la máxima rentabiblidad de sus aplicaciones.

Bueno y ¿que hay que saber?...¡quiero comenzar a tirar código ya!

¡Calma calma!...es primordial que tengas conocimientos previos en el lenguaje de programación Java para implementar aplicaciones Android. Únicamente eso, los demás asuntos déjamelos a mi, yo me encargo de explicar los nuevos conceptos.
¡Ah!...y usaremos el sistema operativo Windows 7 para soportar las herramientas de desarrollo. De resto nada mas.

¿Como iniciamos entonces?

Desarrollar para Android requiere un entorno basado en ciertas tecnologías integradas. En primera instancia necesitamos las librerías y herramientas de los dueños, es decir, el SDK(Software Delevelopment Kit) de Android. Con ello tendremos habilitado el camino para generar nuevas aplicaciones en consola.
Como lenguaje de desarrollo usaremos Java para construir las aplicaciones. Además se usa el metalenguaje XML para el diseño de interfaces a través de Parsing.
También se usa un sistema de construcción automatizado llamado Gradle. Esta herramienta reemplaza al javac (Java Compiler) para optimizar mediante "Scripting" el funcionamiento de la integración modular de nuestra aplicación. Si nunca has escuchado de ella no te preocupes, mas adelante hablaremos sobre los detalles importantes.

¡Dios mio!, ¿de donde obtengo todo eso?

¡Tranquilo amig@!, es mas sencillo de lo que parece. Google ha recomendado un nuevo IDE llamado Android Studio, para que no trabajemos directamente en consola. Además integra a Gradle para simplificar la construcción de nuestras aplicaciones. De modo que primero visitaremos el sitio oficial para descargar este paquete en el siguiente enlace:
SDK + Android Studio
Y como ya sabes, para obtener nuestra Maquina Vitual Java es necesario obtener el JDK. Así que iremos a este link:
JDK 1.8

¿Qué instalo primero?

El JDK amigo, esta herramienta nos dará el soporte para ejecutar Android Studio y el funcionamiento de Gradle:

¿Y ahora?

Ejecutaremos el instalador del Android Studio:

Una vez instalado el entorno completo debemos registrar una nueva variable de entorno para indicarle a Android Studio, donde se aloja la máquina virtual. Para ello nos dirigiremos a

Inicio > Equipo > Propiedades del sistema:



Ahora vamos a Configuración avanzada del sistema:





Realizados estos pasos estaremos en la ventana Propiedades del Sistema. Buscaremos la pestaña Opciones avanzadas y presionaremos el botón “Variables de Entorno…”.

Aparecerán dos Groupbox, uno llamado” Variables de usuario” y otro llamado “Variables del Sistema”.

Pulsaremos el botón “Nueva…” en Variables del sistema y agregaremos una nueva variable llamada JAVA_HOME. A esta nueva variable le asignaremos un String que represente la ruta del directorio donde se encuentra instalado nuestro JDK.

Luego ejecutaremos Android Studio. Si te pide importar características de una versión anterior solo dejas la opción predeterminada y presionas OK.

A continuación se ejecuta un Asistente para iniciar Android Studio. Por ahora elegiremos la opción Nuevo proyecto para comprobar la estabilidad del entorno.

Se nos pedirá el nombre de la aplicación, el nombre de tu empresa o marca y la ubicación del directorio. En este caso he nombrado la aplicación como "Test" y en Company Name asigné "herprogramacion". No uses letras capitales en el nombre de tu compañía, ya que se producirían errores.

Ahora seleccionaremos para que versión de Android(teléfonos y tablets) construiremos el proyecto. Por defecto viene seleccionada la ultima versión, que en este caso es Android L(Lollipop), la cual será la nueva versión de Android. Aun no se ha lanzado al mercado, pero Google ha permitido a los programadores generar desarrollos antes de su lanzamiento. Luego veremos como acceder a versiones anteriores.

El siguiente menú nos permite cual será la actividad principal de nuestra aplicación. Una Actividad es un patrón de ejecución visual que se relacionará con las entradas proporcionadas por el usuario para conseguir sus objetivos. Luego profundizaremos en este concepto, por ahora elige Actividad en blanco(Blank Activity).

En este paso podemos cambiar el nombre de la actividad(Activity Name), el nombre del Layout(Layout Name) relacionado y el titulo(Title). Si gustas deja los valores predeterminados y luego entenderemos un poco mas esta estructura. Finalmente clickea Finish para comenzar.

Como ves, el entorno es muy acogedor, sencillo y con un diseño claro. Tenemos un espacio al lado izquierdo que muestra la jerarquía de los proyectos, un espacio de trabajo en el centro, la vista previa en un teléfono Android con un modelo predeterminado ejecutando la aplicación en Android L, y una capa de diseño de alto nivel tipo Drag and Drop en la pestaña "Design" para la definición XML.

Android Studio se apoya en la herramienta de Software Gradle para automatizar la compilación, depuración, testeo y despliegue de nuestras aplicaciones Android. Pero por ahora no te preocupes, mas adelante estudiarémos todos estos conceptos, en este momento solo nos interesa ver ejecutándose nuestra aplicación de prueba.
Antes de proseguir ejecutarémos el SDK Manager:

SDK Manager nos informa que complementos tenemos hasta el momento instalados en nuestra maquina y cuales no. Yo te recomendaría seleccionar todo lo que haya disponible e instalarlo,  ya que en algún momento necesitaras testear diferentes plataformas Android. Obviamente se requerirá gran cantidad de tiempo de descarga para ejecutar esta tarea, pero tendrás un robusto entorno de desarrollo.

Si no deseas instalar todo, entonces solo instala los complementos recomendados por el mismo SDK Manager. Si usas un Pc con arquitectura Intel entonces selecciona en la categoría "Extras" el complemento Intel x86 Emulator Accelerator (HAXM installer), esta plugin optimizará la ejecución de nuestros AVDs(Concepto que veremos ahora).

Ahora presionaremos el botón "Install packages" para pasar a la fase de instalación. Te recomiendo cierres todos las aplicaciones que se están ejecutando en tu PC. Cierra también el Android Studio, ya que esta aplicación mantiene en lectura archivos que necesita el SDK Manager, lo que podría producir errores de instalación. En seguida acepta las licencias de todos los grupos de complementos y clickea "Install".

Una vez terminada la instalación el siguiente paso que es abrir de nuevo Android Studio y  crear un nuevo Dispositivo Virtual Android(AVD). Un AVD es una maquina virtual que ejecuta la plataforma Android seleccionada para comprobar la funcionalidad de nuestra aplicación construida.
El SDK trae consigo una pequeña aplicación de gestión de AVDs llamada AVD Manager.  Así que la ejecutaremos para crear un nuevo dispositivo virtual.

Debido que aun no tenemos dispositivos creados, nos dirigiremos a la pestaña “Device Definitions”, donde encontraremos definiciones disponibles para un nuevo dispositivo.

La lista de dispositivos es grande, hay varios modelos creados por Google para diferentes gustos. Para este ejemplo he decidido usar un teléfono móvil genérico con resolución QVGA. Te recomiendo elijas un teléfono que use baja cantidad de recursos en memoria si tu computadora es limitada.
Una vez hayas seleccionado, presiona el botón “Create AVD...”:

Lo que sigue es configurar los requerimientos de hardware del AVD. Podemos modificar el nombre del dispositivo(AVD Name), cambiar el modelo(Device), cambiar la versión de Android con que se ejecutará(Target). También podemos elegir con que arquitectura de procesamiento móvil(CPU/ABI) se ejecutará y muchas características mas.

La versión de Android del proyecto debe ser la misma en el AVD. De lo contrario Android Studio desplegará un error de incompatabilidad de SDKs.
Te recomiendo actives la opción "Hardware Keyboard Present" para que el AVD nos muestre un teclado para interactuar con el dispositivo. Selecciona también la opción "Use Host GPU" para que tu tarjeta gráfica este disponible en la ejecución.

Una vez configurado presiona OK. El cuadro de dialogo que aparece es un reporte que confirma que atributos se le asignaron al AVD.

A continuación iniciaremos el AVD presionando el botón "Start...":

Luego aparecerá un cuadro de dialogo que indica las opciones del lanzamiento de AVD. La primera opción que encontramos es "Scale display to real size", esta opción permite representar el display del dispositivo en escala real en tu monitor. Luego hablaremos de las demás opciones. Por ahora presiona "Launch" para ejecutar nuestro AVD.

Luego del proceso de carga, Android estará ejecutándose en el AVD:

Podemos seguir las acciones actuales del proceso de carga viendo el logcat de la herramienta DDMS del SDK(la veremos en otro articulo en mas detalle).

Como ves esta herramienta se encuentra en la barra inferior llamada "Android". Si te fijas bien además del logcat nos muestra que procesos están activos en el AVD(lado izquierdo), como por ejemplo el calendario, servicio de correo, el reloj, etc.
Ahora dirígete al editor y presiona “Run app” (icono Play ON verde) para ejecutar nuestra aplicación de prueba.

En este momento Gradle comienza la compilación y empaquetado de nuestra aplicación. Una vez terminada aparecerá una ventana que nos indica con que AVD ejecutaremos la aplicación. Elegiremos el AVD recien iniciado mediante el Radio Button "Choose a running device"  y confirmaremos la acción.

Podemos ver el proceso de instalación de la aplicación en el cuadro de herramientas inferior llamado "App".

Una vez finalizada la instalación tendremos a nuestra aplicación desplegando ese tan deseado mensaje "Hello World" (¡Para mi fue el Hello World mas duro del mundo!).

Puedes confirmar la ejecución de tu aplicación en el DDMS.

En mi caso la aplicación test representa el proceso 1001 en el AVD.
Cabe aclarar que aunque Google nos recomienda comenzar a usar desde ya el Android Studio, aun sigue en versión Beta y puede contener ciertos errores. Es importante estar pendiente de nuevas actualizaciones para Android Studio. Por lo general se despliega una alerta de color azul que te indica que hay una nueva actualización de Software. O si deseas comprobar ve a Help > Check Updates.

¡Amigo me corre tan lento el AVD! … ¿Qué puedo hacer?

Soy consciente de que en algunos equipos con recursos regulares la ejecución de un AVD puede ser tediosa, así que te propongo las siguientes soluciones:
  • Instalar el Acelerador de dispositivos virtuales Android si usas arquitectura Intel. En caso de que uses otro fabricante puedes investigar si tu micro tiene capacidad de aceleración de Virtualización.
  • Usar dispositivos y versiones operativas de Android con gama baja. Esto disminuirá los requerimientos de recursos.
  • Usar tu propio dispositivo Android en modo depuración USB. Este proceso tarda mucho menos que esperar una tardía ejecución del AVD. Para activar este modo solo sigue los siguientes pasos:

1. Ve a Ajustes.

2. Luego selecciona Opciones del desarrollador.

3. Y luego marca Depuración de USB.

En versiones superiores a Android 4.2 esta opciones viene oculta por defecto. Si es tu caso, entonces la habilitaremos con la siguiente configuración.
1. Ve a Ajustes y busca busca Acerca del dispositivo:



3. Presiona 7 veces la opción Número de compilación. Te darás cuenta que todo salio bien  por que aparecerá un Alert que dice "Ya eres un programador :') ".

4. Sigue los primeros pasos que indiqué arriba.
Si el driver de tu teléfono ya está instalado previamente, al ejecutar la aplicación debe aparecer con su referencia en los dispositivos disponibles. Así que solo lo seleccionas y listo.
Si deseas que siempre se ejecute con tu teléfono entonces configuraremos el proyecto de la siguiente manera: Iremos a la lista "app" y elegiremos "Edit Configurations...".

Luego dirígete al Group Box llamado Target Device y selecciona el Radio Button "USB Device".

Al aplicar los cambios ejecuta la aplicación, espera su instalación y listo:

¿Amigo que es eso de "USB device not found"?

En algunos casos el controlador de tu teléfono móvil aun no ha sido instalado convenientemente,asi que Android Studio presentará el error "USB device not found".

Si es tu caso, entonces debes seguir los siguientes pasos:
1. Despliega la barra de servicios de tu escritorio:

2. Luego selecciona la opción que dice "Conectado como un dispositivo USB":

3. Luego cambia a "Dispositivo multimedia":

Una vez seleccionada esta opción, tu PC comenzará a reconocer un canal mas completo para la comunicación USB. Solo espera que Windows busque automáticamente el controlador y lo instale. Inmediatamente Android Studio reconocerá tu dispositivo.
Eso es todo por hoy amigo. En el próximo artículo estudiaremos todo lo relacionado con la arquitectura de una aplicación Android y el modelo de construcción con Gradle.
No olvides compartir este tutorial con los mas necesitados.James Revelo Urrea - Desarrollador independiente