Visión general y entorno de desarrollo
Introducción
La telefonÃa móvil está cambiando la sociedad actual de una forma tan significativa como lo ha hecho Internet. Esta revolución no ha hecho más que empezar, los nuevos terminales ofrecen unas capacidades similares a un ordenador personal, lo que permite que puedan ser utilizados para leer nuestro correo o navegar por Internet. Pero a diferencia de un ordenador, un teléfono móvil siempre está en el bolsillo del usuario. Esto permite un nuevo abanico de aplicaciones mucho más cercanas al usuario. De hecho, muchos autores coinciden en que el nuevo ordenador personal del siglo veintiuno será un terminal móvil.
El lanzamiento de Android como nueva plataforma para el desarrollo de aplicaciones móviles ha causado una gran expectación y está teniendo una importante aceptación tanto por los usuarios como por la industria. En la actualidad se está convirtiendo en la alternativa estándar frente a otras plataformas como iPhone, Windows Phone o BlackBerry.
A lo largo de este capÃtulo veremos las caracterÃsticas de Android, que lo hacen diferente de sus competidores. Se explicará también cómo instalar y trabajar con el entorno de desarrollo (Eclipse + Android SDK).
Objetivos
-
Conocer las caracterÃsticas de Android, destacando los aspectos que lo hacen diferente de sus competidores.
-
Estudiar la arquitectura interna de Android.
-
Aprender a instalar y trabajar con el entorno de desarrollo (Android Studio o Eclipse + Android SDK).
-
Enumerar las principales versiones de Android y aprender a elegir la más idónea para desarrollar nuestras aplicaciones.
-
Crear una primera aplicación y estudiar su estructura de un proyecto en Android.
-
Conocer donde podemos conseguir documentación sobre Android.
-
Aprender a utilizar las herramientas disponibles para detectar errores en el código.
La Aplicación Asteroides
A lo largo de este curso vamos a desarrollar la aplicación Asteroides. Puede ser interesante que la instales en un terminal para hacerte una idea de cuál es nuestro objetivo.
-Para instalarla en un terminal real, entra en Google Play y busca: es.upv.asteroides
más información: https://play.google.com/store/apps/details?id=es.upv.asteroides
-Para instalarla en un emunlador, descarga el apk que verás más abajo.
Asteroides.apk
¿Que hace a Android especial?
Como hemos comentado, existen muchas plataformas para móviles (iOS, Symbian, Windows Phone, BlackBerry, Palm, Java Mobile Edition, Linux Mobile (LiMo), Firefox OS, etc.); sin embargo Android presenta una serie de caracterÃsticas que lo hacen diferente. Es el primero que combina en una misma solución las siguientes cualidades:
-
Plataforma realmente abierta. Es una plataforma de desarrollo libre basada en Linux y de código abierto. Una de sus grandes ventajas es que se puede usar y customizar el sistema sin pagar royalties.
-
Adaptable a cualquier tipo de hardware. Android no ha sido diseñado exclusivamente para su uso en teléfonos y tabletas. Hoy en dÃa podemos encontrar relojes, cámaras, electrodomésticos y gran variedad de sistemas empotrados que se basan en este sistema operativo. Este hecho tiene sus evidentes ventajas, pero también va a suponer un esfuerzo adicional al programador. La aplicación ha de funcionar correctamente en dispositivos con gran variedad de tipos de entrada, pantalla, memoria, etc. Esta caracterÃstica contrasta con la estrategia de Apple. En iOS tenemos que desarrollar una aplicación para iPhone y otra diferente para iPad.
-
Portabilidad asegurada. Las aplicaciones finales son desarrolladas en Java lo que nos asegura que podrán ser ejecutadas en cualquier tipo de CPU, tanto presente como futuro. Esto se consigue gracias al concepto de máquina virtual.
-
Arquitectura basada en componentes inspirados en Internet.Por ejemplo, el diseño de la interfaz de usuario se hace en xml, lo que permite que una misma aplicación se ejecute en un móvil de pantalla reducida o en un TV.
-
FilosofÃa de dispositivo siempre conectado a Internet.
-
Gran cantidad de servicios incorporados. por ejemplo, localización basada tanto en GPS como en redes, bases de datos con SQL, reconocimiento y sÃntesis de voz, navegador, multimedia.
-
Aceptable nivel de seguridad. Los programas se encuentran aislados unos de otros gracias al concepto de ejecución dentro de una caja que hereda de Linux. Además, cada aplicación dispone de una serie de permisos que limitan su rango de actuación (servicios de localización, acceso a Internet, etc.)
-
Optimizado para baja potencia y poca memoria. Por ejemplo, Android utiliza la Máquina Virtual Dalvik. Se trata de una implementación de Google de la máquina virtual de Java optimizada para dispositivos móviles.
-
Alta calidad de gráficos y sonido. gráficos vectoriales suavizados, animaciones inspiradas en Flash, gráficos en 3 dimensiones basados en OpenGL. Incorpora codecs estándar más comunes de audio y vÃdeo, incluyendo H.264 (AVC), MP3, AAC, etc.
-
Como hemos visto Android combina caracterÃsticas muy interesantes. No obstante, la pregunta del millón es ¿Se convertirá Android en el estándar de sistema operativo (S.O.) para dispositivos móviles? Para contestar a esta pregunta habrá que ver la evolución del iPhone de Apple y cuál es la respuesta de Windows con el lanzamiento de su nuevo S.O. para móviles. No obstante, Android ha alcanzado un 85% de cuota de mercado (90% en España), cosa que lo deja en una posición predominante que es difÃcil que pierda a corto plazo.
En conclusión Android nos ofrece una forma sencilla y novedosa de implementar potentes aplicaciones para diferentes tipos de dispositivo. A lo largo de este texto trataremos de mostrar de la forma más sencilla posible como conseguirlo.
Los orÃgenes
Google adquiere Android Inc. en el año 2005. Se trataba de una pequeña compañÃa, que acababa de ser creada, orientada a la producción de aplicaciones para terminales móviles. Ese mismo año empiezan a trabajar en la creación de una máquina virtual Java optimizada para móviles (Dalvik VM).
En el año 2007 se crea el consorcio Handset Alliance[1] con el objetivo de desarrollar estándares abiertos para móviles. Está formado por Google, Intel, Texas Instruments, Motorola, T-Mobile, Samsung, Ericson, Toshiba, Vodafone, NTT DoCoMo, Sprint Nextel y otros. Una pieza clave de los objetivos de esta alianza es promover el diseño y difusión de la plataforma Android. Sus miembros se han comprometido a publicar una parte importante de su propiedad intelectual como código abierto bajo licencia Apache v2.0.
En noviembre del 2007 se lanza una primera versión del Android SDK. Al año siguiente aparece el primer móvil con Android (T-Mobile G1). En octubre Google libera el código fuente de Android principalmente bajo licencia de código abierto Apache (licencia GPL v2 para el núcleo). Ese mismo mes se abre Android Market, para la descarga de aplicaciones. En abril del 2009 Google lanza la versión 1.5 del SDK que incorpora nuevas caracterÃstica como el teclado en pantalla. A finales del 2009 se lanza la versión 2.0 y durante el 2010 las versiones 2.1, 2.2 y 2.3.
Durante el año 2010 Android se consolida como uno de los sistemas operativos para móviles más utilizados, con resultados cercanos a iOS e incluso superando al sistema de Apple en EE.UU.
En el 2011 se lanzan la versión 3.0, 3.1 y 3.2 especÃfica para tabletas y la 4.0 tanto para móviles como para tabletas. Durante este año Android se consolida como la plataforma para móviles más importante alcanzando una cuota de mercado superior al 50%.
En 2012 Google cambia su estrategia en su tienda de descargas online, reemplazando Android Market por Google Play Store. Donde en un solo portal unifica tanto la descarga de aplicaciones como de contenidos. En este año aparecen las versiones 4.1 y 4.2 del SDK. Android mantiene su espectacular crecimiento, alcanzando a finales de año una cuota de mercado del 70%.
En 2013 se lanzan las versiones 4.3 y 4.4 (KitKat). En 2014 se lanza la versión 5.0 Android Lollipop. A finales de ese año, la cuota de mercado de Android llega al 85%.
Comparativa con otras plataformas
En este apartado vamos a describir las caracterÃsticas de las principales plataformas móviles disponibles en la actualidad. Dado la gran cantidad de datos que se indican, hemos utilizado una tabla para representar la información. De esta forma resulta más sencillo comparar las plataformas.
Tabla 1:Comparativa de las principales plataformas móviles
Otro aspecto fundamental a la hora de comparar las plataformas móviles es su cuota de mercado. En la siguiente gráfica podemos ver un estudio realizado por la empresa Gartner Group, donde se muestra la evolución del mercado de los sistemas operativos para móviles según el número de terminales vendidos. Podemos destacar la desaparición de la plataforma Symbian de Nokia, el declive continuo de BlackBerry, el estancamiento de la plataforma de Windows, que parece que no despega, y el afianzamiento de la cuota de mercado de Apple en torno al 20%. Finalmente, cabe señalar el espectacular ascenso de la plataforma Android, que en cinco años ha alcanzado una cuota de mercado en torno al 85%.
Figura 1: Porcentaje de teléfonos inteligentes vendidos según su sistema operativos
hasta el tercer trimestre de 2014 en el mundo (fuente: Gartner Group).
