Guías para Desarrollo Android
¿Quieres desarrollar aplicaciones en Android? Aquí tienes guías y tutoriales para comenzar o profundizar tus conocimientos en desarrollo Android.
12 diciembre, 2014 20:26A continuación os compartimos un compendio de guías preparada por nuestros amigos de Intel Software, que te serán de ayuda ya sea para comenzar o profundizar tus conocimientos en desarrollo Android.
Las guías están organizadas por categorías, dependiendo de su faceta o propósito.
Introducción a Android SDK y configuración del entorno
Para comenzar a desarrollar en Android es necesario tener un conocimiento básico del Android SDK. Los siguientes enlaces explican cómo configurar un entorno de desarrollo de acuerdo al IDE que utilices.
- Cómo instalar el SDK de Android con Eclipse ADT
- Instalación de Android Studio
Eclipse ADT era el IDE estándar para desarrollo Android hasta diciembre de este año. Android Studio es un nuevo IDE que llevaba dos años en alfa y beta, y por fin hace unos días fue liberada su versión 1.0 y ya es el nuevo IDE oficial para desarrollo Android. Aunque solamente planees utilizar Android Studio, te recomendamos que también revises la guía de instalación de Eclipse ADT ya que contiene información valiosa sobre cómo se instalan y actualizan los distintos componentes del Android SDK, además de cómo instalar un emulador acelerado por virtualización, lo cual te ayudará mucho a acelerar el desempeño del emulador para probar tus apps (créenos, si usas el emulador default sin aceleración de hardware perderás mucho tiempo esperando a que arranque).
Desarrollo genérico con Java
La mayoría de las aplicaciones Android se programan en el lenguaje Java. Este código Java se compila a bytecode independiente de plataforma, que posteriormente es ejecutado por la máquina virtual de Android (ya sea Dalvik, la máquina virtual tradicional o ART, la máquina virtual default a partir de Android Lollipop).
Existe una gran cantidad de guías, cursos y tutoriales para aprender a construir aplicaciones Android sencillas con Java. En el Androide Libre tenemos una lista de recursos para Aprender a programar en Android desde cero gratuitamente.
Desarrollo nativo (NDK)
Como ya mencionamos, generalmente las apps Android se desarrollan en Java y el código generado es un bytecode independiente de la arquitectura de procesador (es decir que no contiene instrucciones específicas a un tipo de procesador como ARM, x86 u otro). Sin embargo, hay ocasiones en las que quieres maximizar el desempeño de tu app, o interactuar con el hardware a un nivel más bajo (por ejemplo en videojuegos o en apps con uso intensivo de gráficas 3D). Para ello, puedes programar librerías en C/C++ que se compilan en binarios específicos a una arquitectura de procesador (ej. x86). Native Development Kit (NDK) es el conjunto de herramientas y scripts de building para construir dichas librerías y exponerlas para ser utilizadas en tu app. Para que el código Java de tu app pueda interactuar con estas librerías binarias utilizas Java Native Interface (JNI).
El tutorial Cómo ejecutar código C desde Android con el NDK explica cómo instalar NDK y construir apps sencillas que interactúen con librerías binarias.
El siguiente paso en el desarrollo nativo consiste en optimizar para las arquitecturas objetivo a partir de las distintas técnicas de optimización, como por ejemplo utilizar banderas (flags) específicas del compilador, o utilizar herramientas de profiling que nos ayuden a encontrar donde podemos utilizar instrucciones específicas de una arquitectura de procesador para mejorar su rendimiento. El artículo Creación y Portación de Android apps basadas en NDK explica algunas de estas opciones.
La presentación Optimización de Android Apps para Arquitectura x86 brinda un panorama completo sobre todo el proceso.
Aplicaciones HTML5 Híbridas
Las aplicaciones HTML5 híbridas combinan lo mejor de las tecnologías web y nativas. Una plataforma popular para construir aplicaciones híbridas es Apache Cordova.
Uno de los problemas que acarrea el desarrollo de aplicaciones HTML5 híbridas es que ante la variedad de plataformas móviles (y versiones dentro de cada una), no tienes seguridad de qué APIs de Javascript y soporte a capacidades de CSS estarán disponibles en el dispositivo donde se ejecutará tu app. El proyecto Crosswalk busca atacar este problema. Crosswalk es un runtime HTML que incluyes en tu app, de manera que tu app funcione sobre éste y se comporta de la misma forma en cualquier dispositivo. Crosswalk es open source, así que no solo es gratuito sino que también puedes modificarlo.
Intel XDK es un IDE gratuito para desarrollo de aplicaciones web y HTML5 híbridas que cubre el workflow de desarrollo, debugging, testing y building. XDK utiliza Apache Cordova y Crosswalk, por lo que puede explotar capacidades nativas del teléfono, así como capacidades avanzadas de Chromium y WebKit. Por ejemplo, por medio de Crosswalk es posible ejecutar instrucciones SIMD desde JavaScript a través de la librería SIMD.JS.
Estrategias de testing
Obviamente, lo mejor para probar apps es contar con dispositivos reales. Sin embargo, la variedad de dispositivos Android así como versiones del sistema operativo complican esto. Es así que lo más común es utilizar un emulador Android desde tu ordenador, pero el problema es que generalmente toma mucho tiempo arrancarlo y tiene un desempeño lento, lo cual entorpece las pruebas. Una posibilidad para mejorar el rendimiento del emulador es utilizar aceleración por hardware usando Intel HAXM.
Otra estrategia que es cada vez más popular es utilizar un servicio de testing de apps en la nube como AppThwack o TestDroid. Estos servicios tienen laboratorios con dispositivos reales conectados a la nube que puedes usar para probar tu app. Típicamente lo que haces es:
- Subir tu app junto con un script para probarla.
- Seleccionar los dispositivos donde quieres que se pruebe.
- Visualizar los resultados de las pruebas para encontrar si hay problemas en algún dispositivo.
Estos servicios tienen un coste, que sube por cada dispositivo que quieras probar. La buena noticia es que tanto en AppThwack como en TestDroid, puedes probar en dispositivos con procesador Intel sin ningún coste.
Sin duda hay mil formas para desarrollar en Android y las que nos han presentado solo son unas cuantas. Google ha simplificado mucho la programación Android gracias a Android Studio 1.0 estable, pero todavía hay muchas herramientas y SDKs que requieren un proceso más complejo de aprendizaje.