Tabla de contenidos
Siempre he estado en contacto directo con las últimas tecnologías relacionadas con los teléfonos y cuál fue mi sorpresa cuando se dio el gran salto a los ahora conocidísimos Smartphone, fue una revolución la introducción de grandes pantallas y la capacidad de poder navegar por internet como si lo hiciéramos con un portátil.
Pero lo que verdaderamente me llamo a mí la atención era como funcionaban esos teléfonos móviles, es decir, sobre qué sistema operativo estaba corriendo todo eso, empecé a indagar y cada una de las marcas fue apostando por sus propios sistemas operativos (IOS, Windows pone, etc.) o se acogieron a un sistema operativo libre y abierto para cualquier tipo de modificación sobre él, Android.
En este artículo os vengo a presentar un poco de cómo surge la idea de este sistema operativo, su funcionamiento, en otras palabras que es esto de Android, si a los administradores y los usuarios del foro les gusta la idea os traeré más artículos relacionados con este tema.
Aunque sé que para la mayoría de personas todo lo que tenga que ver con la historia de cualquier tema que nos atraiga siempre lo vemos como algo aburrido, en este caso es necesario que se hable un poco de ella para poder poner un punto de partida.
En julio de 2005 Google compra una empresa con sede en Palo Alto llamada Android INC. Este movimiento por parte de la multinacional hace saltar las alarmas pensando que se va a embarcar en un proyecto para desarrollar su propio teléfono móvil al margen de cualquier operadora.
En 2007 se crea la Open Handset Alliance, esto es un consorcio de empresas relacionadas con las telecomunicaciones cuya carta de presentación es que van a “cambiar” la experiencia del uso de los teléfonos móviles. A parte de un gran número de empresas relacionadas con el mundo de las telecomunicaciones también se unen empresas de comercialización (Aplix, Wind River), empresas de microchips (Intel, Nvidia) o fabricantes de móviles (HTC,LG).
Al mismo tiempo que la creación de Open Handset Alliance se anuncia la creación del “Android Software developtment kit” y varios meses después el “Android SDK 0.9 beta”.
Estos eran los primeros pasos que estaba dando Android, un sistema operativo para móviles de código abierto diseñado para competir con los grandes del sector Apple (IOS), Microsoft (Windows Phone) y Nokia (Symbian).
Para terminar este espacio decir que Google comercializa su propio terminal libre bajo el nombre de Nexus One.
En principio hay que decir que Android no es más que un conjunto de herramientas destinadas a dispositivos móviles (Smartphone, tablets, TV, etc.). Este está desarrollado por la Open Handset Alliance, siguiendo la filosofía de código abierto.
Algunas de sus características más destacables son estas:
Android nos brinda una serie de ventajas frente a otros sistemas dignas de mención.
Para la mayoría de los fabricantes se le ofrece un sistema operativo con un gran potencial a coste cero, además al estar basado en código abierto se van a permitir un gran número de modificaciones y sustituciones.
En el campo de los desarrolladores se les ofrece una plataforma de desarrollo muy amplia y completa para crear un sinfín de aplicaciones de lo más variadas, a todo esto le tendremos que sumar que Google nos ofrece Google Play para la distribución de nuestras aplicaciones.
Por último, para los usuarios finales que es a quien más va dirigido este sistema operativo, pueden elegir teléfonos de última generación sin necesidad de tener que pagar altísimos precios por sistemas operativos comerciales con miles de aplicaciones que se instalan de manera rápida, sencilla e intuitiva.
Antes de empezar a introducir vocabulario técnico y palabras que muchos de nosotros no entenderemos os diré que la arquitectura de Android se basa en 4 pilares bien definidos.
Una vez presentadas las partes, explicaremos un poco de cada una para que todo nos quede mucho más claro.
Muchos de vosotros esta parte ya la conoceréis porque sabréis que es y cómo funciona un kernel, pero para los que no lo conozcáis esta es la parte más baja de un sistema operativo, se encarga de interactuar con el hardware directamente y sirve de almacén para todos los drivers que permiten el correcto funcionamiento del sistema operativo.
Si alguno de vosotros habéis programado, este apartado también le conoceréis con bastante bien. Por encima del kernel se incluyen las librerías, en nuestro caso éstas están programadas en C o C++ pero como en otros casos de lenguajes de programación nosotros no accederemos a ella de manera directa sino que lo haremos a través del framework.
Este es un tema que tiene un largo y extenso debate. Google decide que en vez de utilizar la máquina virtual que Java pone a su disposición, crea la suya propia, Dalvik. Existen un montón de rumores del porque Google crea una máquina virtual habiendo ya una y evitándose grandes costes de desarrollo. Pero alguna de las causas que nos hacen pensar que Google se embarcara en este proyecto podría ser para evitar temas relacionados con licencias, optimización de la máquina virtual creada por Java ME, etc.
Dalvik basada en registros y no en la pila, está optimizada para dispositivos móviles que, normalmente, tienen menos hardware y una necesidad de ahorro energético mayor que el resto de ordenadores.
Las aplicaciones de Android están escritas en Java, lo que ocurre es que la compilación se realiza en dos pasos: el primero hace que se llame a un compilador de Java y después se hace una llamada final para convertir el bytecode de Java a bytecode de Dalvik generando el ejecutable final.
El diseño de Dalvik permite que se puedan ejecutar varias máquinas virtuales de manera simultánea.
Esta última parte de la arquitectura de Android facilita el desarrollo y la programación de las distintas aplicaciones.
Estas librerías están escritas en Java y documentadas en JavaDoc. El diseño del framework está pensado para la reutilización de componentes, es decir, siempre que se sigan las reglas de seguridad que incorpora, cualquier aplicación puede publicar sus capacidades, para que luego cualquier otra aplicación pueda usarlas.
Con esto termino el primer bloque dedicado al mundo de Android, como ya dije en el inicio del articulo si los administradores y los usuarios del foro están interesados en este tema, dentro de poco podréis volver a leer sobre todo un mundo que hay detrás de este sistema operativo.
Hoy queremos hablaros de Docker un proyecto que cada día es más usado, porque permite…
Cada vez estamos más acostumbrados a usar código para generar la infraestructura (IaC), documentar nuestro…
Uno de los problemas que se presentan con una mayor frecuencia hoy en día, es…
Uno de los problemas que solemos tener los programadores, es que nos gusta estar a…
Docker es una de las herramientas más usadas por los desarrolladores, sin embargo, usarlo en…
Como seguramente sabrás el uso de JavaScript ha crecido exponencialmente en los últimos tiempos, sin…