Android

Una introducción al sistema operativo que viene causando tanto revuelo desde hace ya tiempo.

Como seguramente ya sabes Android es un sistema operativo basado en un núcleo o kernel de Linux, el cual fue modificado principalmente para  ser arrancado en dispositivos móviles, independientemente de que cuenten con pantalla táctil o no. Inicialmente fue desarrollado por Android Inc. Empresa que Google respaldó económicamente para más tarde adquirir en septiembre de 2005.
Oficialmente el sistema operativo Android fue presentado en 2007 de la mano de la fundación del Open Handset Alliance que es un consorcio de compañías de hardware, software y telecomunicaciones que busca el desarrollar los estándares abiertos para los dispositivos móviles. El primer móvil con el sistema operativo Android fue el HTC Dream y se vendió en octubre de 2008.

USO EN DISPOSITIVOS

El sistema operativo desarrollado por Google es el más utilizado por compañías como Samsung, Amazon y  HTC, gracias a la sencillez de su personalización. De acuerdo con un estudio de la analista de aplicaciones móviles Localytics, los teléfonos inteligentes de 4,3 pulgadas y con un resolución de pantalla de 800 x 480 píxeles son los más populares entre los usuarios, en este mismo segmento se incorporan los celulares chinos que aun que cuentan con una tecnología inferior a los modelos de marca destacan por una gran personalización y funcionalidades casi ilimitadas.
En la categoría de tabletas con Android, el Kindle Fire de Amazon y el Nook de Barnes & Noble son los más demandados, en parte seguramente, por su bajo costo, dado que ninguno cuesta más de 250 dólares.
Para llegar a estas conclusiones, fue necesario el análisis de los tamaños de pantalla y de resolución y el tipo de dispositivo utilizado a partir del uso de aplicaciones. Según las especificaciones de los programas descargados en el Android Market, fue posible establecer cuáles eran los teléfonos y las tabletas más demandadas.
El número de activaciones de terminales con Android crece día a día, debido a la gran cantidad de fabricantes que incorporan el sistema operativo móvil desarrollado por Google. Sin embargo, como señala el sitio PortalTic, esto puede llegar a ser un problema para los desarrolladores de aplicaciones, que tienen que trabajar en versiones de una misma plataforma que se adapten a los distintos tamaños.

La arquitectura de Android

La palabra arquitectura sé refiere a cómo se encuentra estructurado este sistema operativo Android, en el caso específico del sistema  Android su arquitectura está compuesta por varias capas que facilitan al desarrollador la creación e integración de aplicaciones mediante el uso de librerías, así el desarrollador no necesita conocer como programar a bajo nivel para acceder a las funcionalidades necesarias para que una aplicación haga uso de los componentes de hardware de los dispositivos Android. Debido a que cada una de las capas utiliza elementos de la capa inferior para realizar sus funciones, a este tipo de arquitectura se le denomina pila. En el siguiente diagrama muestro la arquitectura de Android:
Diagrama
Visto esto podemos pasar a analizar cada una de las capas.
Kernel de Linux: es el núcleo del sistema operativo Android y se basa en un kernel de Linux en su versión 2.6 como cualquier distribución de Linux, con la salvedad que fue adaptado a las características del hardware móvil en el que se ejecutará Android.
Este núcleo trabaja fusionando el hardware con el resto de las capas de la arquitectura, así el desarrollador no accede directamente a esta capa, sino que utiliza las librerías disponibles en las capas superiores. De esta forma se evita el hecho de conocer las características precisas de cada teléfono, pues para cada elemento de hardware del teléfono existe un controlador (o driver) y el kernel nos permite utilizarlo desde el software, si necesitamos hacer uso de las bocinas, el sistema operativo se encarga de utilizar las que incluya el teléfono.
El kernel también se encarga de gestionar todos los recursos del teléfono (energía, memoria, etc.) y del sistema operativo en sí: procesos, elementos de comunicación (networking) y demás.
Librerías: La siguiente capa se llama librerías o biblioteca de sistema y se encuentra justo encima del kernel, escrita en C o C++ esta contiene toda la información específica del hardware del dispositivo. El objetivo de las librerías es proporcionar agilidad a las aplicaciones para tareas cotidianas o repetitivas, así se evita el recodificarlas cada vez y garantizando la eficiencia de la aplicación. Normalmente son creadas por el fabricante, el cual se encarga de instalarlas en el dispositivo antes de ponerlo a la venta.
Entre las librerías incluidas en el sistema Android encontramos:
·         El motor gráfico OpenGL: encargado de crear los graficos q se muestran en pantalla.
·         Bibliotecas multimedia. que contienen formatos de audio, imagen y video.
·         El navegador o Webkit: que nos permite la gestión cliente servidor para las funciones d coneccion web.
·         El cifrado de comunicaciones SSL: que nos permite proteger las trasmiciones del webkit.
·         Fuentes de texto FreeType: encargadas de mostrar la tipografía utilizada por el mismo sistema y las aplicaciones.
·         Base de datos SQLite: almacena la información usada por el sistema operativo y las aplicaciones, haciendo en parte de registro de sistema y en parte base de datos de aplicación.

Entorno de ejecución: en el diagrama podemos apreciar que el entorno de ejecución no se cuenta como una capa en sí mismo, sino como dentro de una clase dentro de la misma capa dado que también está formado por las mismas librerías, en las cuales encontramos tanto las funcionalidades típicas de java como las propias de Android.
La máquina virtual Dalvik es el componente principal del entorno de ejecución, de ejecutar las aplicaciones que han sido previamente compiladas del código java original a un formato específico, esto representa una gran ventaja pues así a diferencia del java original pues asi las aplicaciones se compilan una sola vez y así estarán listas para distribuirse con la seguridad que se ejecutaran en cualquier dispositivo Android que posea al menos la versión minima del sistema operativo que requiera la aplicación.
El Dalvik en sí mismo es una variación de la máquina virtual de java original y es por esto que  el bytecode Java no es compatible, pues el lenguaje java solo se usa como lenguaje de programación dada la gran aceptación en el ambiente informático, después son compilados en el SDK de Android bajo la extensión espesifica “.dex” para que Dalvik lo pueda interpretar, y por ello no podemos ejecutar aplicaciones Java en Android ni viceversa.
Marco de aplicación (Framework): Esta capa está conformada en su mayoría por librerías java que acceden a los recursos de las capas anteriores por medio de la MV Dalvik. En esta capa encontraremos los servicios y las clases que interactúan con las funciones que ejecutan las aplicaciones, en la siguiente lista aclaro un poco las funciones de cada librería:
·         Administrador de actividades. Encargado de controlar el ciclo de vida y la pila de actividades de nuestra aplicación.
·         Administrador de ventanas. Crea y gestiona las instancias de aplicación que se mostraran en la pantalla.
·         Proveedor de contenidos. Esta librería controla la forma en la que se accesa a la información y encripta los datos que se compartirán entre aplicaciones.
·         vistas. Esta librería contiene los controles básicos que contienen las interfaces de usuario tales como: botones, etiquetas, cuadros de texto, listas y hasta elementos más avanzados como un navegador web o un visor de Google Maps.
·         Administrador de notificaciones. Esta librería nos permite controlar los sonidos, activa el vibrador, enciende los leds en caso de que el dispositivo cuente con ellos y en general engloba todos los servicios para notificar al usuario cuando algo requiera su atención.
·         Administrador de paquetes. Esta librería nos permite gestionar todo lo relacionado con la paquetería de nuestro dispositivo Android, tal como: su instalación, información general o específica  del paquete.  Al mencionar la palabra paquete nos referimos al archivo .apk, que contiene dentro de si los archivos “.dex” con todos los recursos y archivos adicionales que necesite la aplicación, para facilitar su descarga e instalación.
·         Administrador de telefonía. Como su nombre lo indica, esta librería nos permite gestionar las telecomunicaciones de nuestro dispositivo, es la encargada de la recepción y recibo de: llamadas, sms y mms. Un dato curioso es que no permite eliminar o remplazar la actividad que se muestra cuando se ejecuta una llamada.
·         Administrador de recursos. Con esta librería nos es posible gestionar los recursos que se encuentran fuera del código fuente de una aplicación, como imágenes, capas, sonidos y etiquetas que se pueden traducir en varios idiomas.
·         Administrador de ubicaciones. mediante GPS o redes disponibles ubica la posición geográfica del dispositivo Android para trabajar con mapas.
·         Administrador  de censores. Proporciona acceso a elementos de hardware del dispositivo tales como el acelerómetro, giroscopio, sensor de luminosidad, sensor de campo magnético, brújula, sensor de presión, sensor de proximidad, sensor de temperatura, etc.
·         Cámara: gracias a esta librería es posible para tomar fotografías o  grabar vídeo haciendo uso de las  cámaras disponibles en el dispositivo.
·         Multimedia. Controla el acceso al audio, vídeo e imágenes en el dispositivo, permitiendo así las funciones de preproducción a las que estamos acostumbrados.
Aplicaciones: en esta última capa se albergan todas las aplicaciones del dispositivo, tanto las aplicaciones de sistema,  las aplicaciones con interfaz de usuario, el menú de inicio (home) y también el propio lanzador (launcher), que es la aplicación con interfaz de usuario encargada de mostrarnos diferentes escritorios en los cuales podremos crear accesos directos a nuestras aplicaciones.

Visto esto notamos que Android en si es uno de los sistemas empotrados de más fácil manejo y accesibilidad, si bien a grandes rasgos no es más que un sistema operativo emulado dentro de un núcleo de abstracción, podemos apreciar el enorme poder que el escritorio Android trata de brindarle al usuario con el control total del dispositivo para personalizarlo a su medida.

No hay comentarios:

Publicar un comentario