Saltar al contenido

Lenguaje de programación Android

Aunque el título ponga Lenguaje de programación Android, y lo veas por muchos lados, no es correcto hablar de Android como un lenguaje. Así que la pregunta es…

¿Qué es Android?

A estas alturas, si estás leyendo esto porque estás interesado en la programación en Android. Pero antes vamos a hablar que es Android, propiamente dicho.

Aunque pienses que puedes programar en Android, Android no es un lenguaje de programación. Android es un sistema operativo, como puede ser Windows, Ubuntu (Linux) o Mac OS.

En realidad se parece más al iOS, que se encuentra en los dispositivos móviles Apple, como puede ser el iPhone, el iPod touch o el iPad.

¿Y eso por qué? Porque Android fue creado de forma específica para dispositivos móviles, como pueden ser los móviles o las tabletas, aunque actualmente se puede ver en muchos otros, como pueden ser las Smarts TVs, relojes inteligentes, videoconsolas, cámaras fotográficas, neveras, impresoras, ebooks, y hasta ¡hornos microondas!.

Si buscas un curso para aprender Android, aquí podrás ver el mejor en la plataforma Udemy

android logo

Android fue creado por Google (concretamente la fecha es el 23 de septiembre del 2008), y como cualquier otro programa, o mejor dicho, sistema operativo, ha tenido varias revisiones, transformándose en versiones del programa.

Cada versión se identifica de una manera formal, con un número seguido de un punto, por ejemplo 2.1 (también te puedes encontrar versiones más detalladas, como puede ser la 2.1.4), pero también puedes encontrar un nombre informal, con un apodo (hasta la fecha, todos los apodos son nombres de pasteles o aperitivos).

Todas las versiones de Android

Las distintas versiones que ha tenido Android son:

  • 1.0 Sin nombre. No salió a la venta esta versión.
  • 1.1 Petit FourPrimera versión que salió a la venta.
  • 1.5 Cupcake
  • 1.6 Donut
  • 2.0 Eclair
  • 2.2 FroYo
  • 2.3 GingerBread
  • 3.0 Honeycomb
  • 4.0 Ice Cream Sadnwich
  • 4.1 Jelly Bean
  • 4.4 Kit Kat
  • 5.0 Lollipop
  • 6.0 MarshMallow
  • 7.0 Nougat
  • 8.0 Oreo

Las versiones que faltan son porque tienen el mismo nombre. Por ejemplo, las versiones 4.2 y 4.3 también se llamaron Jelly Bean. Las versiones que faltan, como la 4.5, es que simplemente no salieron, y pasaron directamente a una versión superior como la 5.0.

Características de Android

Ya sabemos que Android es el sistema operativo creado por Google para los móviles, y como todo sistema operativo, debe gestionar toda la parte del hardware de un móvil (o tablet).

Pero ahora vamos a ver las características propias de Android, y ver como se diferencian de los otros muchos sistemas operativos que hay disponibles hoy en día:

Android es de desarrollo libre y de código abierto

El núcleo de Android está basado en Linux, al que se le han hecho modificaciones y personalizaciones para que pueda ejecutarse en terminales móviles.

Que sea de código abierto, y gratis, hace que los fabricantes de móviles puedan usarlo sin pagar ningún tipo de licencia, abaratando el precio final, además de poder acceder a todo el código, modificarlo y adaptarlo para cada dispositivo, y luego volverlo a distribuir.

Gran cantidad de librerías y servicios disponibles

Si programas en Android, verás que ofrece una cantidad de servicios que puedes utilizar de una manera fácil.

No sólo hablamos de la parte del hardware del móvil, como puede ser la cámara, el acelerómetro o el GPS, sino también mapas, lectores de códigos de barras o acceso a bases de datos que vienen incluidas.

Todo esto sin necesidad de instalar librerías de terceros o externas, o haciendo configuraciones complejas. No hace falta decir que también tienes acceso a todos los servicios de Google, además de una API integrada para nuestros programas.

android programming language

También podemos hablar del apartado multimedia, dónde cada vez hay mejor calidad para los gráficos y el sonido, pasando por el 3D como el OpenGL, Render Script, etc.

Incluso podemos encontrar algunas videoconsolas en Android, como Ouya, o GameStick.

Sustitución de aplicaciones estándar

¿No te gusta como se muestran los contactos de tu móvil? ¿Y como se ven los SMS?

Las aplicaciones que vienen con Android son como un puzzle, así que puedes sustituir algunas piezas, como puede ser la parte visual, programar una nosotros y sustituir la estándar, y cambiarlo cada vez que queramos.

Poder hacer estas cosas sin esfuerzo da muchas posibilidades a la hora de crear programas.

Información detallada

Aunque van saliendo versiones de Android de manera frecuente, no te creas que puedes quedarte atrasado a la hora de aprender a usar las nuevas funcionalidades, ya que tienes mucha documentación de todas éstas, incluyen ejemplos de eso.

Sin hablar que, gracias la popularidad de Android, existe mucha información por internet, foros dónde preguntar (como StackFlow), y cursos para aprender a programar (de eso hablaremos al final).

Seguridad

No hace falta decir que es muy importante la seguridad, porque cada vez guardamos más información sensible en nuestro dispositivo, como puede ser la agenda de contactos, mails, historial de búsquedas.

Necesitamos herramientas para proteger nuestros datos, para no desconfiar de una aplicación que hayamos descargado.

Android disponde de unos mecanismos que, cuando estamos programando, decide que servicios o elementos del teléfono utilizará.

Cuando instalamos un nuevo programa en nuestro móvil, nos dirá qué servicios o elementos del teléfono utilizará (como puede ser nuestros contactos o la cámara), y así decidir si queremos que acceda o no.

Además, mientras las aplicaciones se están ejecutando, hay varias capas de seguridad que certifican que los datos están aislados entre ellas.

De esta manera, una aplicación no puede acceder a los datos de otra, sin contar que las últimas versiones de Android tiene extras como el cifrado de los datos en las tarjetas externas o SD (sólo se podría usar en ese teléfono y no en otro), o avisarnos cada vez que un programa accede a la cámara o el micrófono.

Gestión de recursos automática

Un móvil no es un ordenador, y aunque tengamos un dispositivo de gama alta, la capacidad de los procesos, la memoria y la batería es limitada, así que un lenguaje de programación para móviles debe pensar la manera más óptima de utilizarlos.

En Android existen los ciclos de vida para las aplicaciones, y eso se gestiona desde el sistema operativo. En principio, no nos tenemos que preocupar en cerrar aplicaciones cuando ejecutamos un nuevo programa, ya se encarga el sistema operativo de hacerlo (liberando memoria o espacio), o durmiendo las aplicaciones que no se usan en ese momento.

Hardware múltiple

Sabemos que el sistema operativo iOS sólo funciona para dispositivos Apple. Android desde el principio fue creado pensando en múltiples plataformas.

Cuando se creó la primer versión de Android, la mayoría de los móviles no eran táctiles, porque eran muy caros, y Android podía funcionar en cualquier tipo de teléfono sencillo.

Actualmente es bastante asequible adquirir un smartphone, tenemos varias gamas y móviles de todo tipo, desde teléfonos con 3 pulgadas a tablets de 10, sin contar que cada fabricante tiene un hardware totalmente distinto de otro.

Android se ha adaptado perfectamente a toda esta variabilidad, siendo el sistema operativo elegido para la mayoría de los móviles, sin contar otros dispositivos totalmente distintos, como un lavavajillas o un televisor.

Programación en Java

Según el ranking de los lenguajes de programación más usados, Java es el que siempre destaca desde hace muchos años.

No hace falta decir que existen muchos programadores Java, así que un programador de Java, que quiera desarrollar aplicaciones para Android, tendrá una adaptación super fácil.

También se puede programar en C o C++, gracias a las herramientas NDK que proporciona Google, aunque Google prefiere el uso de Java porque es más sencillo.

Como programar en Android

Para programar en Android puedes hacerlo desde cualquier ordenador y sistema operativo, y existen varios entornos de programación (o IDEs), con todas las herramientas necesarias para hacerlo.

Lo primero que necesitas es el JDK (Java development Kit) de Java (como hemos comentado antes, se programa principalmente en Java).

Habitualmente, puedes utilizar el programa Android Studio de Google, que es un entorno de programación como el Eclipse (con Eclipse también puedes programar en Android si tienes los plugins adecuados).

Android Studio se puede descargar desde aquí, y se puede instalar en Windows, Mac o Ubuntu.

Qué es SDK Manager

Junto con Android Studio viene el SDK Manager, que gestiona todas las versiones del sistema operativo Android, ya que, depende de lo que vamos a programar, no tendremos las mismas capacidades en una versión que en otra, como pueden ser drivers, herramientas de diseño, etc.

Veamos que cosas podemos encontrarnos en el SDK Manager.

Como abrir el SDK Manager

La ruta de la carpeta dónde se encuentra el SDK de Android la puedes averiguar dentro del Android Studio, concretamente en el menú File – Project Structure.

Dentro de esa ruta debes buscar el fichero SDK Manager,exe (en Windows), y se abrirá una ventana dónde podrás configurar todo lo necesario para tu proyecto.

Es posible que necesites instalar versiones antiguas de cosas específicas que ya no encuentres, así que es interesante saber las carpetas que vemos por si tenemos que copiar un fichero a mano. Las carpetas que podemos encontrar:

  • add-ons: Son librerías que están en dispositivos concretos.
  • build-tools: Dónde se guardan ciertas herramientas que nos servirá, entre otras cosas, para crear los ejecutables Android.
  • docs: Documentación accesible, como guías de desarrollo, API. Podemos descargar documentación que se guardará aquí.
  • extras: Librerías de distintos fabricantes para ajustar el desarrollo a un dispositivo concreto, o librerías de compatibilidad como el driver USB de Windows, las Google Play Services o la API necesaria para los dispositivos de Amazon (que también usan Android).
  • platforms: Aquí vemos cada una de las versiones de Android instaladas.
  • platform-tools: Herramientas para el desarrollo y depuración que son dependientes de cada plataforma. Suelen tener retrocompatibilidad, así que puedes programar en versiones antiguas sin preocuparte de las recientes.
  • samples: Como dice el nombre de la carpeta, son ejemplos que hemos descargados.
  • sources: Códigos fuentes disponibles.
  • system-images: Imágenes de sistemas Android, separados por diferentes arquitecturas.
  • tools: Aquí tenemos el emulador y otras muchas herramientas necesarias para poder programar en Android.
  • temp: Es una carpeta temporal dónde se descargan los elementos, para luego extraerlos e instalarlos.

Qué es Android Studio

Hemos hablado del JDK de Java y del SDK Manager, y comentado brevemente sobre Android Studio.

android studio IDE

Android Studio es un IDE, un entorno de desarrollo integrado, es decir, tiene todo lo necesario para poder programar en Android.

Es la opción preferente actual de Google, ya que la opción de Eclipse se ha dejado de actualizar. Las principales características son:

  • Tiene un emulador propio para probar los programas que vamos haciendo, con la apariencia de los dispositivos móviles que vamos a usar.
  • También puedes probar tus proyectos directamente al móvil.
  • Posibilidad de programar para Android Wear, los relojes inteligentes con Android.
  • Puedes gestionar con el control de versiones más populares, como Git.
  • Importación de proyectos que hayas hecho en Eclipse.
  • Todas las herramientas integradas en el IDE.

Cursos de Android

Para aprender a programar en Android, te recomiendo que busques cursos que utilicen Android Studio. Suelo recomendar la plataforma Udemy para buscar el curso que mejor se adapte, porque:

  • Todos el contenido es en formato vídeo, así puedes ver que hay que hacer paso a paso.
  • Puedes ver todas las lecciones de cada curso, y así decidir si te interesa o no.
  • Tiene un sistema de valoraciones y comentarios que te ayuda en ver que curso es el mejor recomendado.
  • Existe un gran catálogo de cursos en español.

El curso de Android en español más destacado en Udemy es el siguiente:

Programación en Android desde cero

Resumen final

Si quieres aprender a programar para dispositivos móviles, Android es la decisión más acertada.

Si ya vienes de programar en Java te va a resultar muy fácil pasar a programar para este sistema operativo, ya que es el mismo lenguaje de programación.