Etiqueta: sistema operativo

Sistema operativo Android (segunda parte)

Sistema operativo Android (segunda parte)

En palabras de García Padilla, en la tesis de pregrado publicada el año 2011 con el título “Aplicación Android para Supermercados”, Android es un sistema operativo móvil basado en Linux, que junto con aplicaciones middleware está enfocado para ser utilizado en dispositivos móviles como Smartphone, tabletas, etc. Es desarrollado por un conglomerado de fabricantes y desarrolladores de hardware, software y operadores de servicio, la cual es liderada por Google. Los componentes principales del sistema operativo Android son: (1) Aplicaciones. Las aplicaciones base incluyen un cliente de correo electrónico, programa de mensaje de texto, calendario, mapas, navegador, contactos y otros. Todas las aplicaciones están escritas en lenguaje de programación Java. (2) Marco de trabajo de aplicaciones. Los desarrolladores tienen acceso completo a las mismas interfaces de programación de aplicaciones del marco de trabajo utilizado por las aplicaciones base. La arquitectura está diseñada para simplificar la reutilización de componentes. Cualquier aplicación puede publicar sus capacidades y cualquier otra aplicación puede luego hacer uso de esas capacidades, sujeto a reglas de seguridad del marco de trabajo. Este mismo mecanismo permite que los componentes sean remplazados por el usuario. (3) Bibliotecas. Android incluye un conjunto de bibliotecas de los lenguajes C y C++ usadas por varios componentes del sistema. Estas características se exponen a los desarrolladores a través del marco de trabajo de aplicaciones de Android. Algunas son: Implementación de la biblioteca C estándar, bibliotecas de medios, bibliotecas de gráficos, 3D y SQLite, entre otras. (4) Runtime de Android. Android incluye un conjunto de bibliotecas base que proporcionan la mayor parte de las funciones disponibles en las bibliotecas base del lenguaje Java. Cada aplicación Android corre su propio proceso, con su propia instancia de la máquina virtual Dalvik. Dalvik ha sido escrito de forma que un dispositivo puede correr múltiples máquinas virtuales de forma eficiente. Dalvik ejecuta archivos en el formato Dalvik ejecutable (.dex), el cual está optimizado para memoria mínima. La máquina virtual está basada en registros y ejecuta clases compiladas por el compilador de Java que se transformaron al formato .dex por la herramienta incluida “dx”. (5) Núcleo Linux. Android depende de Linux para los servicios base del sistema como seguridad, gestión de memoria, gestión de procesos, pila de red y modelo de controladores. El núcleo también actúa como una capa de abstracción entre el hardware y el resto de la pila de software.

En la tesis de Aranaz, publicada el año 2011 con el titulo “Desarrollo de aplicaciones para dispositivos móviles sobre la plataforma Android de Google”, se hace referencia a una visión global por capas acerca de la arquitectura de Android. Cada una de estas capas utiliza servicios ofrecidos por las anteriores, y ofrece a la vez los suyos propios a las capas de niveles superiores. La capa más inmediata es la que corresponde al núcleo de Android. El sistema operativo Android utiliza el núcleo de Linux 2.6 como una capa de abstracción para el hardware disponible en los dispositivos móviles. Esta capa contiene los drivers necesarios para que cualquier componente hardware pueda ser utilizado mediante las llamadas correspondientes. Siempre que un fabricante incluya un nuevo elemento de hardware, lo primero que se debe realizar para que pueda ser utilizado desde Android es crear las bibliotecas de control necesarias dentro de este kernel de Linux embebido en el propio Android. La elección de Linux 2.6 se debe principalmente a dos razones: La primera, su naturaleza de código abierto y libre se ajusta al tipo de distribución que se buscaba para Android; la segunda es que el kernel de Linux incluye de por sí numerosos drivers, además de contemplar la gestión de memoria, gestión de procesos, módulos de seguridad, comunicación en red y otras muchas responsabilidades propias de un sistemas operativo.

La siguiente capa se corresponde con las bibliotecas utilizadas por Android. Éstas han sido escritas utilizando el lenguaje C o el lenguaje C++ y proporcionan a Android la mayor parte de sus capacidades más características. Junto al núcleo basado en Linux, estas bibliotecas constituyen el corazón de Android. Entre las bibliotecas más importantes de este nivel, se pueden mencionar las siguientes: (1) La biblioteca libc incluye todas las cabeceras y funciones según el estándar del lenguaje C. Todas las demás bibliotecas se definen en este lenguaje. (2) La biblioteca Surface Manager es la encargada de componer los diferentes elementos de navegación de pantalla. Gestiona también las ventanas pertenecientes a las distintas aplicaciones activas en cada momento. (3) OpenGL/SL y SGL representan las bibliotecas gráficas y, por tanto, sustentan la capacidad gráfica de Android. OpenGL/SL maneja gráficos en tres dimensiones y permite utilizar, en caso de que esté disponible en el propio dispositivo móvil, el hardware encargado de proporcionar gráficos en tres dimensiones. (4) La biblioteca Media Libraries proporciona todos los códecs necesarios para el contenido multimedia soportado en Android, entre las cuales se cuenta: Vídeo, audio, imágenes estáticas y animadas, y otros. (5) FreeType, permite trabajar de forma rápida y sencilla con distintos tipos de fuentes. (6) La biblioteca SSL posibilita la utilización de dicho protocolo para establecer comunicaciones seguras. (7) A través de la biblioteca SQLite, Android ofrece la creación y gestión de bases de datos relacionales, pudiendo transformar estructuras de datos en objetos fáciles de manejar por las aplicaciones. (8) La biblioteca WebKit proporciona un motor para las aplicaciones de tipo navegador, y forma el núcleo del actual navegador incluido por defecto en la plataforma Android. Al mismo nivel que las bibliotecas de Android se sitúa el entorno de ejecución. Éste lo constituyen las bibliotecas de núcleo, que son librerías con multitud de clases de Java, y la máquina virtual Dalvik.

 

Guillermo Choque Aspiazu
www.eldiario.net
06 de Julio de 2015

Sistema operativo Android (primera parte)

Sistema operativo Android (primera parte)

En el estudio realizado el año 2003, por la Empresa Digia, reportado en el libro “Programación para la plataforma de las series 60 y Symbian”, se menciona que el sistema operativo destinado a correr en un dispositivo móvil necesita ser fiable y tener una gran estabilidad, ya que incidencias habituales y toleradas en computadoras personales como reinicios o caídas no tienen cabida en un dispositivo de estas características. Además, debe adaptarse adecuadamente a las consabidas limitaciones de memoria y procesamiento de datos, proporcionando una ejecución exacta y excepcionalmente rápida al usuario. Estos sistemas han de estar perfectamente probados y libres de errores antes de incorporarse definitivamente a la línea de producción. Las posibilidades que existen en una computadora estándar de realizar actualizaciones e incluso reinstalar mejores versiones del sistema para cubrir fallos o deficiencias son más limitadas en un dispositivo móvil. Es posible incluso que un aparato de esta naturaleza deba estar funcionando ininterrumpidamente durante semanas e incluso meses antes de ser apagado y reiniciado, a diferencia de lo que ocurre con una computadora personal. El consumo de energía es otro tema muy delicado: Es importante que el sistema operativo haga un uso lo más racional y provechoso posible de la batería, ya que esta es limitada y el usuario siempre exige una mayor autonomía. Todos estos aspectos de los dispositivos móviles, entre otros muchos, deben ser tomados en cuenta a la hora de desarrollar un sistema operativo competente en el mercado, atractivo para los fabricantes y que permita al usuario sacar máximo provecho de su terminal.

En la tesis de Jaime Aranaz, escrita el año 2011 con el título “Desarrollo de aplicaciones para dispositivos móviles sobre la plataforma Android de Google”, se menciona que Android constituye una pila de software pensada especialmente para dispositivos móviles y que incluye tanto un sistema operativo, como middleware y diversas aplicaciones de usuario. Representa la primera incursión seria de Google en el mercado móvil y nace con la pretensión de extender su filosofía a dicho sector. Todas las aplicaciones para Android se programan en lenguaje Java y son ejecutadas en una máquina virtual especialmente diseñada para esta plataforma, que ha sido bautizada con el nombre de Dalvik. En la página oficial del proyecto Android de código abierto, se menciona que el núcleo de Android está basado en Linux 2.6. La licencia de distribución elegida para Android es Apache 2.0, respetando las condiciones de la licencia, lo que lo convierte en software de libre distribución. A los desarrolladores se les proporciona de forma gratuita un kit de desarrollo de software y la opción de una extensión para el entorno de desarrollo Eclipse, que incluyen todas las interfaces necesarias para la creación de aplicaciones, así como un emulador integrado para su ejecución. Existe además disponible una amplia documentación de respaldo para este kit de desarrollo de software.

Aranaz, en la tesis mencionada, continúa aludiendo que el proyecto Android está capitaneado por Google y un conglomerado de otras empresas tecnológicas agrupadas bajo el nombre de “Open Handset Alliance”. Esta alianza incluye a fabricantes de dispositivos y operadores, con firmas tan relevantes como Samsung, LG, Telefónica, Intel o Texas Instruments, entre otras muchas. El objetivo principal de esta alianza empresarial es el desarrollo de estándares abiertos para la telefonía móvil como medida para incentivar su desarrollo y para mejorar la experiencia del usuario. La plataforma Android constituye su primera contribución en este sentido. Cuando en noviembre de 2007 Google anunció su irrupción en el mundo de la telefonía móvil a través de Android, reportada en la edición digital de “El Mundo” como noticia de la sección “El Navegante”, muchos medios especializados catalogaron este novedoso producto como un nuevo sistema operativo, libre y específico para teléfonos móviles. Sin embargo, los responsables del proyecto se han esforzado desde entonces en destacar que la motivación de Android es convertirse en algo más que un simple sistema operativo. Con Android se busca reunir en una misma plataforma todos los elementos necesarios que permitan al ingeniero de desarrollo, controlar y aprovechar al máximo cualquier funcionalidad ofrecida por un dispositivo móvil, entre las que se cuentan: Llamadas, mensajes de texto, cámara, agenda de contactos, conexión Wi-Fi, Bluetooth, aplicaciones ofimáticas, videojuegos, y otros, así como crear aplicaciones que sean verdaderamente portables, reutilizables y de rápido desarrollo.

En otras palabras, Android quiere mejorar y estandarizar el desarrollo de aplicaciones para cualquier dispositivo móvil y, por ende, acabar con la perjudicial fragmentación existente hoy día. Además de todo ello, otro aspecto básico para entender la aparición de Android es que pretende facilitar la integración de estos dispositivos con las posibilidades mayores cada día ofrecidas por la Web. Por ejemplo, una aplicación desarrollada en Android podría ser aquella que indicase al usuario, a través de Google Maps, la localización de sus diferentes contactos de la agenda y que avisase cuando éstos se encuentren a una distancia cercana o en una ubicación determinada. Mejorar el desarrollo y enriquecer la experiencia del usuario se convierte, por tanto, en la gran filosofía de Android y en su principal objetivo.

 

Guillermo Choque Aspiazu
www.eldiario.net
29 de Junio de 2015

Translate »