Android en un Sistema Operativo móvil, es una plataforma de Software basada en el núcleo de Linux. Fue diseñada en un principio para dispositivos móviles, además Android permite controlar dispositivos por medio de bibliotecas desarrolladas o adaptados por Google mediante el lenguaje de programación java. Sistema operativo de google, se ha convertido en uno de los más grandes y viene instalado en muchos de los Smarphone que aparece en el mercado. Actualmente es el más usado a nivel mundial.
Android cuenta con una cantidad de aplicaciones disponibles las cuales cada vez van aumentado, por ser una de las plataformas elegidas para el lanzamiento de nuevas aplicaciones. Está enfocado a la mensajería o al trabajo pero no al ocio ni al multimedia
Android es una plataforma de código abierto. Esto quiere decir, que cualquier desarrollador puede crear y desarrollar aplicaciones escritas con lenguaje C u otros lenguajes y compilarlas a código nativo de ARM (API de Android). Android ha sido quien ha publicado la mayoría del código fuente de Android bajo la licencia de Software Apache, abierto a cualquier desarrollador.
Android es el principal producto de la Open Handset Alliance, un fabricante y desarrollador de hardware, software y operadores de servicios. Google sin embargo, ha sido quien ha publicado la mayoría del código fuente de Android bajo la licencia de Software Apache, una licencia de software libre y de código abierto a cualquier desarrollador.
Otras de las características son:
En aquel entonces, se sabía poco de las funciones de Android Inc. fuera de que desarrollaban software para teléfonos móviles. Desde entonces que salieron rumores de que Google estaba planeando entrar en el mercado de los teléfonos móviles.
En Google, el equipo liderado por Rubin desarrolló una plataforma para dispositivos móviles basada en el kernel de Linux que fue promocionado a fabricantes de dispositivos y operadores con la promesa de proveer un sistema flexible y actualizable. Se informó que Google había alineado ya una serie de fabricantes de hardware y software y señaló a los operadores que estaba abierto a diversos grados de cooperación por su parte.
La especulación sobre que el sistema Android de Google entraría en el mercado de la telefonía móvil se incrementó en diciembre de 2006. Con los reportes de la cadena noticiera BBC y The Wall Street Journal señalaron que Google buscaba servicios de búsqueda y aplicaciones en teléfonos móviles. Poco después se dio a conocer que Google lanzaría un teléfono móvil con su nombre. En septiembre de 2007, se difundió un estudio que reportaba que Google había solicitado diversas patentes en el área de la telefonía móvil.
Inicialmente, Android fue desarrollada por Google Inc, poco después el 5 de noviembre de 2007 se une a la Open Handset Alliance con el fin de desarrollar estándares abiertos para dispositivos móviles. Junto con la formación de la Open Handset Alliance, la OHA estrenó su primer producto, el sistema operativo Android, una plataforma para dispositivos móviles construida sobre la versión 2.6 del kernel de Linux. Entre las compañías más reconocidas están:
Android ha sido criticado muchas veces por la fragmentación que sufren sus terminales al no ser soportado con actualizaciones constantes por los distintos fabricantes. Se creyó que esta situación cambiaría tras un anuncio de Google en el que comunicó que los fabricantes se comprometerán a aplicar actualizaciones al menos 18 meses desde su salida al mercado, pero esto al final nunca se concretó y el proyecto se canceló.
Entre las versiones se encuentran las siguientes:
o Android 1.0 o Release 1
En Noviembre del 2007 es lanzado por primera vez el Android Software Development Kit, un año después aparece Android 0.9 SDK en versión beta. Pasado un mes Google lanza la versión Android 1.0 (Release 1). La primera versión oficial de Android era muy diferente a las últimas versiones de la actualidad.
o Android 1.1
En marzo del 2009 es presentada la versión 1.1 de Android con algunas modificaciones estéticas y nuevas posibilidades, cómo la búsqueda por voz, nuevas aplicaciones en el Android Market, etc.
o Android 1.5 o Cupcake
En mayo de 2009 Google lanza la versión Android 1.5 que incluye grabación de video, soporte para Stereo Bluetooth, sistema de teclado personalizable en pantalla o reconocimiento de voz, capacidad para subir videos a YouTube, teclado a predicción de texto, transiciones de pantallas animadas y posibilidad de grabar y reproducir videos. Con esta versión muchas personas se inclinan por usar el sistema operativo para móviles de Google. Con esta versión, HTC Dream, HTC Hero, Motorola Backflip y muchos dispositivos de diferentes fabricantes optaron por equipar sus teléfonos con Android 1.5.
o Android 1.6 o Donut
El 15 septiembre del 2009 aparece Android 1.6, mejorando las búsquedas, añadiendo el indicador de uso de la batería, interfaz integrada de cámara, filmadora y galería de fotos, framework de gestos y herramientas de desarrollo GestureBuilder, entre otras mejoras. Esta versión superó la anterior y se convierte en la versión más utilizada
o Android 2.0 y 2.1 o Eclair
En el 2009 aparecer Motorola Droid con una nueva versión, Android 2.0, incluyendo varias nuevas herramientas y hasta aplicaciones precargadas que requerían un hardware más potente que la generación de móviles anteriores. Tiempo después el 12 de enero del 2010 es lanzada la versión 2.1 mediante el teléfono de Google, Nexus One. Esta nueva versión lleva capacidades 3D, live wallpapers, nueva lista de contactos, soporte integrado de flash para cámara, zoom digital, teclado virtual mejorado, soporte de bluetooth 2.1, mejoras en Google Maps, interfaz nueva de usuario en el navegador, soporte varios tamaños de pantalla y mucho más.
o Android 2.2 o Froyo
Liberado el 20 de mayo del 2010, incluye cambios como optimización de manejo de memoria y rendimiento, funcionalidad Wi-fi, cambio rápido entre varios idiomas y diccionarios, marcación por voz, posibilidad de contactos por bluetooth, soporte para contraseñas, soporte para instalación de memoria expandible, soporte para flash y mucho más.
o Android 2.3 o Gingerbread
Liberado en 6 de diciembre del 2010, incluyendo soporte para dispositivos móviles, actualizaciones de diseño, soporte para pantallas extra grandes, soporte para reproducción de video en diferentes formatos, nuevos efectos de audio y ecualización, funciones de cortar/copiar/pegar, mejoras en las entrada de audio y gráficos, se incluye un administrador de descargas, administración de energía mejorada y control de aplicaciones, soporte para múltiples cámaras y mucho más.
o Android 3.x o Honeycomb
Esta versión está orientada a tablets y libros electrónicos, añade mejor soporte para tablets, escritorio 3D, mejoras en el sistema multitarea, soporte para video chat, mejoras para redes Wi-fi, soporte para gran variedad de periféricos y accesorios con conexión USB y más
o Andoid 4.0 o Ice Cream Sanwich
Es la versión más actual del sistema operativo es una versión que unifica el uso en cualquier dispositivo, tanto en teléfonos, tablets, televisores, netbooks, etc. Incluye interfaz limpia y moderna, opción de utilizar los botones virtuales en la interfaz de usuario, en lugar de los botones táctiles capacitivos, mejora en la aceleración por hardware que aumenta notablemente su rapidez, su respuesta y la experiencia de usuario, multitarea mejorada, corrector de texto rediseñado y mejorado, captura de pantalla, la aplicación de la cámara tiene nuevas utilidades como es la posibilidad de hacer fotografías panorámicas de forma automática, se incluye Android Beam que permite compartir contenido entre teléfonos, reconocimiento facial y de voz del usuario y soporte nativo para el uso de Stylus (lápiz táctil), entre muchas más características nuevas.
Android está formada por varias capas que facilitan al desarrollador la creación de aplicaciones. Además, esta distribución permite acceder a las capas más bajas mediante el uso de librerías para que así el desarrollador no tenga que programar a bajo nivel las funcionalidades necesarias para que una aplicación haga uso de los componentes de hardware de los teléfonos. Cada una de las capas utiliza elementos de la capa inferior para realizar sus funciones, es por ello que a este tipo de arquitectura se le conoce también como pila.
La arquitectura interna de la plataforma Android, está básicamente formada por 5 componentes:
Núcleo Linux.
Android está basado en el kernel de Linux versión 2.6, similar al que puede incluir cualquier distribución de Linux, como Ubuntu, solo que adaptado a las características del hardware en el que se ejecutará Android, es decir, para dispositivos móviles.
El núcleo actúa como una capa de abstracción entre el hardware y el resto de las capas de la arquitectura. El desarrollador no accede directamente a esta capa, sino que debe utilizar las librerías disponibles en capas superiores. De esta forma también se evita el hecho de conocer las características de hardware de cada teléfono. Si se necesita hacer uso de la cámara, el sistema operativo se encarga de utilizar la que incluya el teléfono, sea cual sea. Para cada elemento de hardware del teléfono existe un controlador (o driver) dentro del kernel que permite utilizarlo desde el software.
El kernel también se encarga de 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.
Esta capa esta sobre el kernel y la componen las bibliotecas nativas de Android, también llamadas librerías. Están escritas en C o C++ y compiladas para la arquitectura hardware específica del teléfono. Normalmente están hechas por el fabricante, quien también se encarga de instalarlas en el dispositivo antes de ponerlo a la venta. El objetivo de las librerías es proporcionar funcionalidad a las aplicaciones para tareas que se repiten con frecuencia, evitando tener que codificarlas cada vez y garantizando que se llevan a cabo de la forma “más eficiente”.
Entre las librerías incluidas habitualmente encontramos OpenGL (motor gráfico), Bibliotecas multimedia (formatos de audio, imagen y video), Webkit (navegador), SSL (cifrado de comunicaciones), FreeType (fuentes de texto), SQLite (base de datos), entre otras.
El entorno de ejecución Android, no es una capa en su totalidad, porque está formada porque incorpora un set de librerías que aportan la mayor parte de las funcionalidades disponibles en las librerías base del lenguaje de programación Java. La Máquina Virtual está basada en registros, y corre clases compiladas por el compilador de Java.
El componente principal del entorno de ejecución de Android es la máquina virtual Dalvik. Las aplicaciones se codifican en Java y son compiladas en un formato específico para que esta máquina virtual las ejecute. La ventaja de esto es que las aplicaciones se compilan una única vez y de esta forma estarán listas para distribuirse con la total garantía de que podrán ejecutarse en cualquier dispositivo Android que disponga de la versión mínima del sistema operativo que requiera la aplicación.
Dalvik es una variación de la máquina virtual de Java, por lo que no es compatible con el bytecode Java. Java se usa únicamente como lenguaje de programación, y los ejecutables que se generan con el SDK de Android tienen la extensión .dex que es específico para Dalvik, y por ello no podemos correr aplicaciones Java en Android ni viceversa.
Framework de aplicaciones.
Esta capa está formada por todas las clases y servicios que utilizan directamente las aplicaciones para realizar sus funciones. La mayoría de los componentes de esta capa son librerías Java que acceden a los recursos de las capas anteriores a través de la máquina virtual Dalvik.
Todos los desarrolladores de aplicaciones Android, tienen acceso total al código fuente usado en las aplicaciones base. Esto ha sido diseñado de esta forma, para que no se generen cientos de componentes de aplicaciones distintas, que respondan a la misma acción, dando la posibilidad de que los programas sean modificados o reemplazados por cualquier usuario sin tener que empezar a programar sus aplicaciones desde el principio. En esta capa se encuentran:
En esta capa esta la aplicación principal del sistema: Inicio (Home) o lanzador (launcher), porque es la que permite ejecutar otras aplicaciones mediante una lista y mostrando diferentes escritorios donde se pueden colocar accesos directos a aplicaciones o incluso widgets, que son también aplicaciones de esta capa.
Android proporciona un entorno sumamente poderoso para programar aplicaciones que hagan cualquier cosa. Nada dentro de Android es inaccesible y se siempre con las aplicaciones de nuestro teléfono para optimizar cualquier tarea. El potencial de Android se sitúa en el control total que se le da al usuario para que haga de su teléfono un dispositivo a su medida.
Todas las aplicaciones creadas con la plataforma Android, incluirán como base un cliente de email (correo electrónico), calendario, programa de SMS, mapas, navegador, contactos, y algunos otros servicios mínimos. Todas ellas escritas en el lenguaje de programación Java.
Espero y les sea de utilidad!! :)
Android cuenta con una cantidad de aplicaciones disponibles las cuales cada vez van aumentado, por ser una de las plataformas elegidas para el lanzamiento de nuevas aplicaciones. Está enfocado a la mensajería o al trabajo pero no al ocio ni al multimedia
Android es una plataforma de código abierto. Esto quiere decir, que cualquier desarrollador puede crear y desarrollar aplicaciones escritas con lenguaje C u otros lenguajes y compilarlas a código nativo de ARM (API de Android). Android ha sido quien ha publicado la mayoría del código fuente de Android bajo la licencia de Software Apache, abierto a cualquier desarrollador.
Android es el principal producto de la Open Handset Alliance, un fabricante y desarrollador de hardware, software y operadores de servicios. Google sin embargo, ha sido quien ha publicado la mayoría del código fuente de Android bajo la licencia de Software Apache, una licencia de software libre y de código abierto a cualquier desarrollador.
Características
Entre las principales características de Android se encuentran:- Un solo framework de aplicaciones: permite el reemplazo y la reutilización de los componentes.
- Navegador integrado: basado en los motores open Source Webkit.
- SQlite: base de datos para almacenamiento estructurado que se integra directamente con las aplicaciones. .
- Multimedia: Soporte para medios con formatos comunes de audio, video e imágenes planas (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF). .
- Máquina virtual Dalvik: Base de llamadas de instancias muy similar a Java. .
- Telefonía GSM: dependiente del terminal. .
- Soporte de tecnologías de red como: Bluetooth, EDGE, 3G y Wifi dependiente del terminal. .
- Cámara, GPS, brújula y acelerómetro
- Soporte de pantalla Táctil.
Otras de las características son:
- Diseño de dispositivo La plataforma es adaptable a pantallas más grandes, VGA, biblioteca de gráficos 2D, biblioteca de gráficos 3D basada en las especificaciones de la OpenGL ES 2.0 y diseño de teléfonos tradicionales.
- Almacenamiento SQLite, una base de datos liviana, que es usada para propósitos de almacenamiento de datos.
- Conectividad Android soporta las siguientes tecnologías de conectividad: GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE y WiMAX.
- Mensajería SMS y MMS son formas de mensajería, incluyendo mensajería de texto parte del servicio de Push Messaging de Android.
- Navegador web El navegador web incluido en Android está basado en el motor de renderizado de código abierto, emparejado con el motor JavaScript V8 de Google Chrome.
- Soporte de Java Aunque la mayoría de las aplicaciones están escritas en Java, no hay una máquina virtual Java en la plataforma. El bytecode Java no es ejecutado, sino que primero se compila en un ejecutable Dalvik y corre en la Máquina Virtual Dalvik. Dalvik es una máquina virtual especializada, diseñada específicamente para Android y optimizada para dispositivos móviles que funcionan con batería y que tienen memoria y procesador limitados.
- Soporte multimedia Android soporta los siguientes formatos multimedia: WebM, H.263, H.264 (en 3GP o MP4), MPEG-4 SP, AMR, AMR-WB (en un contenedor 3GP), AAC, HE-AAC (en contenedores MP4 o 3GP), MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF y BMP.
- Soporte para streaming Descarga progresiva de HTML. Adobe Flash Streaming (RTMP) es soportado mediante el Adobe Flash Player. Se planea el soporte de Microsoft Smooth Streaming con el port de Silverlight a Android. Adobe Flash HTTP Dynamic Streaming estará disponible mediante una actualización de Adobe Flash Player.
- Soporte para hardware adicional Android soporta cámaras de fotos, de vídeo, pantallas táctiles, GPS, acelerómetros, giroscopios, magnetómetros, sensores de proximidad y de presión, termómetro, aceleración 2D y 3D.
- Entorno de desarrollo Incluye un emulador de dispositivos, herramientas para depuración de memoria y análisis del rendimiento del software. El entorno de desarrollo integrado es Eclipse (actualmente 3.4, 3.5 o 3.6) usando el plugin de Herramientas de Desarrollo de Android.
- Market El Android Market es un catálogo de aplicaciones gratuitas o de pago en el que pueden ser descargadas e instaladas en dispositivos Android sin la necesidad de un PC.
- Pantalla Multi-táctil Android tiene soporte nativo para pantallas multi-táctiles que inicialmente hicieron su aparición en dispositivos como el HTC Hero. La funcionalidad fue originalmente desactivada a nivel de kernel (posiblemente para evitar infringir patentes de otras compañías).
- Bluetooth El soporte para A2DF y AVRCP fue agregado en la versión 1.5 el envío de archivos (OPP) y la exploración del directorio telefónico fueron agregados en la versión 2.0 y el marcado por voz junto con el envío de contactos entre teléfonos lo fueron en la versión 2.2.
- Videollamada Android soporta video llamada a través de Google Talk desde su versión HoneyComb.
- Multitarea Multitarea real de aplicaciones está disponible, es decir, las aplicaciones que no estén ejecutándose en primer plano reciben ciclos de reloj, a diferencia de otros sistemas de la competencia en la que la multitarea es congelada
- Características basadas en voz La búsqueda en Google a través de voz está disponible como "Entrada de Búsqueda" desde la versión inicial del sistema.
- Tethering Android soporta tethering, que permite al teléfono ser usado como un punto de acceso alámbrico o inalámbrico (todos los teléfonos desde la versión 2.2, no oficial en teléfonos con versión 1.6 o superiores mediante aplicaciones disponibles en el Android Market, por ejemplo PdaNet). Para permitir a un PC usar la conexión 3G del móvil android se podría requerir la instalación de software adicional.
Historia
En julio de 2005, Google adquirió Android Inc., una pequeña compañía de Palo Alto, California fundada en 2003. Entre los cofundadores de Android están:- Andy Rubin (co-fundador de Danger),
- Rich Miner (co-fundador de Wildfire Communications, Inc.),
- Nick Sears (alguna vez VP en T-Mobile),
- Chris White (quien encabezó el diseño y el desarrollo de la interfaz en WebTV).
Primer LG con Android |
En Google, el equipo liderado por Rubin desarrolló una plataforma para dispositivos móviles basada en el kernel de Linux que fue promocionado a fabricantes de dispositivos y operadores con la promesa de proveer un sistema flexible y actualizable. Se informó que Google había alineado ya una serie de fabricantes de hardware y software y señaló a los operadores que estaba abierto a diversos grados de cooperación por su parte.
La especulación sobre que el sistema Android de Google entraría en el mercado de la telefonía móvil se incrementó en diciembre de 2006. Con los reportes de la cadena noticiera BBC y The Wall Street Journal señalaron que Google buscaba servicios de búsqueda y aplicaciones en teléfonos móviles. Poco después se dio a conocer que Google lanzaría un teléfono móvil con su nombre. En septiembre de 2007, se difundió un estudio que reportaba que Google había solicitado diversas patentes en el área de la telefonía móvil.
Inicialmente, Android fue desarrollada por Google Inc, poco después el 5 de noviembre de 2007 se une a la Open Handset Alliance con el fin de desarrollar estándares abiertos para dispositivos móviles. Junto con la formación de la Open Handset Alliance, la OHA estrenó su primer producto, el sistema operativo Android, una plataforma para dispositivos móviles construida sobre la versión 2.6 del kernel de Linux. Entre las compañías más reconocidas están:
Open Handset Alliance
Versiones
Android ha visto numerosas versiones desde su liberación inicial. Estas actualizaciones al sistema operativo base típicamente arreglan bugs y agregan nuevas funciones. Generalmente cada actualización del sistema operativo Android es desarrollada bajo un nombre en código de un elemento relacionado con postres.Android ha sido criticado muchas veces por la fragmentación que sufren sus terminales al no ser soportado con actualizaciones constantes por los distintos fabricantes. Se creyó que esta situación cambiaría tras un anuncio de Google en el que comunicó que los fabricantes se comprometerán a aplicar actualizaciones al menos 18 meses desde su salida al mercado, pero esto al final nunca se concretó y el proyecto se canceló.
Entre las versiones se encuentran las siguientes:
o Android 1.0 o Release 1
En Noviembre del 2007 es lanzado por primera vez el Android Software Development Kit, un año después aparece Android 0.9 SDK en versión beta. Pasado un mes Google lanza la versión Android 1.0 (Release 1). La primera versión oficial de Android era muy diferente a las últimas versiones de la actualidad.
o Android 1.1
En marzo del 2009 es presentada la versión 1.1 de Android con algunas modificaciones estéticas y nuevas posibilidades, cómo la búsqueda por voz, nuevas aplicaciones en el Android Market, etc.
o Android 1.5 o Cupcake
En mayo de 2009 Google lanza la versión Android 1.5 que incluye grabación de video, soporte para Stereo Bluetooth, sistema de teclado personalizable en pantalla o reconocimiento de voz, capacidad para subir videos a YouTube, teclado a predicción de texto, transiciones de pantallas animadas y posibilidad de grabar y reproducir videos. Con esta versión muchas personas se inclinan por usar el sistema operativo para móviles de Google. Con esta versión, HTC Dream, HTC Hero, Motorola Backflip y muchos dispositivos de diferentes fabricantes optaron por equipar sus teléfonos con Android 1.5.
o Android 1.6 o Donut
El 15 septiembre del 2009 aparece Android 1.6, mejorando las búsquedas, añadiendo el indicador de uso de la batería, interfaz integrada de cámara, filmadora y galería de fotos, framework de gestos y herramientas de desarrollo GestureBuilder, entre otras mejoras. Esta versión superó la anterior y se convierte en la versión más utilizada
o Android 2.0 y 2.1 o Eclair
En el 2009 aparecer Motorola Droid con una nueva versión, Android 2.0, incluyendo varias nuevas herramientas y hasta aplicaciones precargadas que requerían un hardware más potente que la generación de móviles anteriores. Tiempo después el 12 de enero del 2010 es lanzada la versión 2.1 mediante el teléfono de Google, Nexus One. Esta nueva versión lleva capacidades 3D, live wallpapers, nueva lista de contactos, soporte integrado de flash para cámara, zoom digital, teclado virtual mejorado, soporte de bluetooth 2.1, mejoras en Google Maps, interfaz nueva de usuario en el navegador, soporte varios tamaños de pantalla y mucho más.
o Android 2.2 o Froyo
Liberado el 20 de mayo del 2010, incluye cambios como optimización de manejo de memoria y rendimiento, funcionalidad Wi-fi, cambio rápido entre varios idiomas y diccionarios, marcación por voz, posibilidad de contactos por bluetooth, soporte para contraseñas, soporte para instalación de memoria expandible, soporte para flash y mucho más.
o Android 2.3 o Gingerbread
Liberado en 6 de diciembre del 2010, incluyendo soporte para dispositivos móviles, actualizaciones de diseño, soporte para pantallas extra grandes, soporte para reproducción de video en diferentes formatos, nuevos efectos de audio y ecualización, funciones de cortar/copiar/pegar, mejoras en las entrada de audio y gráficos, se incluye un administrador de descargas, administración de energía mejorada y control de aplicaciones, soporte para múltiples cámaras y mucho más.
o Android 3.x o Honeycomb
Esta versión está orientada a tablets y libros electrónicos, añade mejor soporte para tablets, escritorio 3D, mejoras en el sistema multitarea, soporte para video chat, mejoras para redes Wi-fi, soporte para gran variedad de periféricos y accesorios con conexión USB y más
o Andoid 4.0 o Ice Cream Sanwich
Es la versión más actual del sistema operativo es una versión que unifica el uso en cualquier dispositivo, tanto en teléfonos, tablets, televisores, netbooks, etc. Incluye interfaz limpia y moderna, opción de utilizar los botones virtuales en la interfaz de usuario, en lugar de los botones táctiles capacitivos, mejora en la aceleración por hardware que aumenta notablemente su rapidez, su respuesta y la experiencia de usuario, multitarea mejorada, corrector de texto rediseñado y mejorado, captura de pantalla, la aplicación de la cámara tiene nuevas utilidades como es la posibilidad de hacer fotografías panorámicas de forma automática, se incluye Android Beam que permite compartir contenido entre teléfonos, reconocimiento facial y de voz del usuario y soporte nativo para el uso de Stylus (lápiz táctil), entre muchas más características nuevas.
Arquitectura
Android está formada por varias capas que facilitan al desarrollador la creación de aplicaciones. Además, esta distribución permite acceder a las capas más bajas mediante el uso de librerías para que así el desarrollador no tenga que programar a bajo nivel las funcionalidades necesarias para que una aplicación haga uso de los componentes de hardware de los teléfonos. Cada una de las capas utiliza elementos de la capa inferior para realizar sus funciones, es por ello que a este tipo de arquitectura se le conoce también como pila.
La arquitectura interna de la plataforma Android, está básicamente formada por 5 componentes:
- Aplicaciones.
- Framewok de aplicaciones.
- Librerías.
- Runtime.
- Núcleo Linux.
Núcleo Linux.
Android está basado en el kernel de Linux versión 2.6, similar al que puede incluir cualquier distribución de Linux, como Ubuntu, solo que adaptado a las características del hardware en el que se ejecutará Android, es decir, para dispositivos móviles.
El núcleo actúa como una capa de abstracción entre el hardware y el resto de las capas de la arquitectura. El desarrollador no accede directamente a esta capa, sino que debe utilizar las librerías disponibles en capas superiores. De esta forma también se evita el hecho de conocer las características de hardware de cada teléfono. Si se necesita hacer uso de la cámara, el sistema operativo se encarga de utilizar la que incluya el teléfono, sea cual sea. Para cada elemento de hardware del teléfono existe un controlador (o driver) dentro del kernel que permite utilizarlo desde el software.
El kernel también se encarga de 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.
Librerías.
Esta capa esta sobre el kernel y la componen las bibliotecas nativas de Android, también llamadas librerías. Están escritas en C o C++ y compiladas para la arquitectura hardware específica del teléfono. Normalmente están hechas por el fabricante, quien también se encarga de instalarlas en el dispositivo antes de ponerlo a la venta. El objetivo de las librerías es proporcionar funcionalidad a las aplicaciones para tareas que se repiten con frecuencia, evitando tener que codificarlas cada vez y garantizando que se llevan a cabo de la forma “más eficiente”.
Entre las librerías incluidas habitualmente encontramos OpenGL (motor gráfico), Bibliotecas multimedia (formatos de audio, imagen y video), Webkit (navegador), SSL (cifrado de comunicaciones), FreeType (fuentes de texto), SQLite (base de datos), entre otras.
Runtime de Android.
El entorno de ejecución Android, no es una capa en su totalidad, porque está formada porque incorpora un set de librerías que aportan la mayor parte de las funcionalidades disponibles en las librerías base del lenguaje de programación Java. La Máquina Virtual está basada en registros, y corre clases compiladas por el compilador de Java.
El componente principal del entorno de ejecución de Android es la máquina virtual Dalvik. Las aplicaciones se codifican en Java y son compiladas en un formato específico para que esta máquina virtual las ejecute. La ventaja de esto es que las aplicaciones se compilan una única vez y de esta forma estarán listas para distribuirse con la total garantía de que podrán ejecutarse en cualquier dispositivo Android que disponga de la versión mínima del sistema operativo que requiera la aplicación.
Dalvik es una variación de la máquina virtual de Java, por lo que no es compatible con el bytecode Java. Java se usa únicamente como lenguaje de programación, y los ejecutables que se generan con el SDK de Android tienen la extensión .dex que es específico para Dalvik, y por ello no podemos correr aplicaciones Java en Android ni viceversa.
Framework de aplicaciones.
Esta capa está formada por todas las clases y servicios que utilizan directamente las aplicaciones para realizar sus funciones. La mayoría de los componentes de esta capa son librerías Java que acceden a los recursos de las capas anteriores a través de la máquina virtual Dalvik.
Todos los desarrolladores de aplicaciones Android, tienen acceso total al código fuente usado en las aplicaciones base. Esto ha sido diseñado de esta forma, para que no se generen cientos de componentes de aplicaciones distintas, que respondan a la misma acción, dando la posibilidad de que los programas sean modificados o reemplazados por cualquier usuario sin tener que empezar a programar sus aplicaciones desde el principio. En esta capa se encuentran:
- Activity Manager. Se encarga de administrar la pila de actividades de nuestra aplicación así como su ciclo de vida.
- Windows Manager. Se encarga de organizar lo que se mostrará en pantalla. Básicamente crea las superficies en la pantalla que posteriormente pasarán a ser ocupadas por las actividades.
- Content Provider. Esta librería es muy interesante porque crea una capa que encapsula los datos que se compartirán entre aplicaciones para tener control sobre cómo se accede a la información.
- Views. En Android, las vistas los elementos que nos ayudarán a construir las interfaces de usuario: botones, cuadros de texto, listas y hasta elementos más avanzados como un navegador web o un visor de Google Maps.
- Notification Manager. Engloba los servicios para notificar al usuario cuando algo requiera su atención mostrando alertas en la barra de estado. Un dato importante es que esta biblioteca también permite jugar con sonidos, activar el vibrador o utilizar los LEDs del teléfono en caso de tenerlos.
- Package Manager. Esta biblioteca permite obtener información sobre los paquetes instalados en el dispositivo Android, además de gestionar la instalación de nuevos paquetes. Con paquete nos referimos a la forma en que se distribuyen las aplicaciones Android, estos contienen el archivo .apk, que a su vez incluyen los archivos .dex con todos los recursos y archivos adicionales que necesite la aplicación, para facilitar su descarga e instalación.
- Telephony Manager. Con esta librería podremos realizar llamadas o enviar y recibir SMS/MMS, aunque no permite reemplazar o eliminar la actividad que se muestra cuando una llamada está en curso.
- Resource Manager. Con esta librería podremos gestionar todos los elementos que forman parte de la aplicación y que están fuera del código, es decir, cadenas de texto traducidas a diferentes idiomas, imágenes, sonidos o layouts. En un post relacionado a la estructura de un proyecto Android veremos esto más a fondo.
- Location Manager. Permite determinar la posición geográfica del dispositivo Android mediante GPS o redes disponibles y trabajar con mapas.
- Sensor Manager. Nos permite manipular los elementos de hardware del teléfono 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: Con esta librería podemos hacer uso de la(s) cámara(s) del dispositivo para tomar fotografías o para grabar vídeo.
- Multimedia. Permiten reproducir y visualizar audio, vídeo e imágenes en el dispositivo.
Aplicaciones.
Es la ultima capa que incluyen todas las aplicaciones del dispositivo, tanto las que tienen interfaz de usuario como las que no, las nativas (programadas en C o C++) y las administradas (programadas en Java), las que vienen preinstaladas en el dispositivo y aquellas que el usuario ha instalado.En esta capa esta la aplicación principal del sistema: Inicio (Home) o lanzador (launcher), porque es la que permite ejecutar otras aplicaciones mediante una lista y mostrando diferentes escritorios donde se pueden colocar accesos directos a aplicaciones o incluso widgets, que son también aplicaciones de esta capa.
Android proporciona un entorno sumamente poderoso para programar aplicaciones que hagan cualquier cosa. Nada dentro de Android es inaccesible y se siempre con las aplicaciones de nuestro teléfono para optimizar cualquier tarea. El potencial de Android se sitúa en el control total que se le da al usuario para que haga de su teléfono un dispositivo a su medida.
Todas las aplicaciones creadas con la plataforma Android, incluirán como base un cliente de email (correo electrónico), calendario, programa de SMS, mapas, navegador, contactos, y algunos otros servicios mínimos. Todas ellas escritas en el lenguaje de programación Java.
Ventajas
- Soporta los teléfonos más avanzados Dada la posibilidad de que Android pueda instalarse prácticamente en todo tipo de dispositivos, sean móviles, portátiles e incluso microondas, hace que Android siempre esté presente en los terminales más potentes del mercado siendo una apuesta importante por fabricantes y operadoras por la posibilidad de que independientemente del dispositivo, Android podrá adaptarse a la perfección a todo tipo de necesidades.
- Código abierto El hecho de que Android esté liberado con licencia Apache y código abierto lo convierte en un sistema operativo totalmente libre para que un desarrollador pueda modificar su código y mejorarlo. A través de esas mejoras puede publicar el nuevo código y con el ayudar a mejorar el sistema operativo para futuras versiones sin depender de fabricantes u operadoras. Al ser código abierto garantiza que, en caso de haber un bug o error, sea detectado y reparado con mayor presteza al no existir ninguna traba legal para indagar en su interior ni depender de nadie para pedir autorización a su cambio.
- Libertad Android da completa libertad al propietario de un dispositivo de instalar lo que quiera, no limitando la libertad del usuario ni imponiendo software propietario para poder instalar música, archivos, documentos directamente desde el cable USB como si fuera un disco externo La misma libertad tienen los desarrolladores o empresas pudiendo realizar aplicaciones o complementos como Flash, Opera o cualquier otro software sin tener que pedir permiso a nadie para ofrecerlo a los usuarios que libremente podrán instalarlo.
- Sin fronteras El desarrollo de Android no está determinado por operadoras, fabricantes o proveedores. Android es libertad en todos los aspectos permitiendo que todos puedan disfrutarlo. La libertad del código de Android ha hecho que en poco tiempo se implante en multitud de dispositivos electrónicos, desde móviles hasta ordenadores portátiles, netbooks, microondas, lavadoras, marcos digitales, navegadores GPS, relojes e incluso en navegadores de abordo de coches. Esto convierte a Android en un sistema operativo multifunción y completamente escalable que garantizará su crecimiento y expansión así como ayudará a fabricantes a tener un motor inteligente para sus fabricaciones.
- Comunidad Android cuenta con la comunidad más grande mundial de desarrolladores y el mayor movimiento de estos con multitud de eventos, concursos, competiciones y reuniones así como múltiples vías de comunicación como foros y chats oficiales para fomentar la participación y la colaboración para encontrar mejoras e ideas para futuras versiones. Por otro lado, las modificaciones o mejoras no dependen de un limitado equipo de desarrolladores de una empresa sino contarán con el apoyo, respaldo y participación de todos los desarrolladores del mundo.
- Coste y gustos Debido a que android se puede instalar en diferentes dispositivos, los usuarios pueden disfrutar de una amplia gama de dispositivos de diferentes precios y gamas para determinados poderes adquisitivos sin tener que forzar o limitar un sistema operativo o terminal a determinadas clases dando la opción de que toda persona pueda adquirir el terminal que más le guste así como de diferentes características o costes o incluso fabricantes.
- Batería Todos los terminales de Android deben tener siempre una batería extraíble dando la opción al usuario a poder sustituirla o llevar recargables en caso de que su batería se agote. De este modo se evita que el usuario tenga problemas en cuanto a su autonomía permitiendo que, aunque la batería haya acabado con su vida útil o considere que su batería es excesivamente pequeña pueda adquirir otra más potente o de reserva.
- Vistas personalizadas. Al ser abierto y libre, Android es completamente personalizable tanto por usuarios instalando fondos de pantalla, animaciones, widgets, skins o temas como para fabricantes con la posibilidad de crear sus propias capas como MotoBlu o HTC Sense permitiendo poder personalizar los teléfonos de la mejor manera posible y dando a elegir al usuario la interfaz más adecuada para su gusto evitando imponer un determinado estilo o interfaz.
- Multitarea Android tiene capacidad de hacer múltiples tareas a la vez con su sistema de multitarea inteligente es capaz de gestionar varias aplicaciones abiertas a la vez dejando en suspensión aquellas que no se utilicen y cerrarlas en caso de resultar ya inútiles para evitar un consumo de memoria.
Desventajas
A pesar de presentar muchas ventajas también tiene una serie de desventajas como:- 1. El hecho de tener varias aplicaciones abiertas con el sistema multitarea hace que el consumo de la batería aumente y como no todas las aplicaciones Android las cierra hay que instalar una aplicación para que las cierre, en el Market de Android hay una buena cantidad de aplicaciones para este fin.
- Duración de la batería: La batería en un celular Android se agota muy rápido. Utilizando las aplicaciones de manera moderada la batería puede llegar a durar dos días y medio. Pero para un usuario que usa mucho sus aplicaciones la batería no tiende a durar, esto se puede solucionar con algunas aplicaciones, sin embargo no vienen preinstaladas de fábrica, hace falta una aplicación externa al sistema Android para optimizar mejor la batería.
- Poco intuitivo: Para la mayoría el sistema operativo es muy complicado. Por ejemplo se vuelve complicado configurar el teléfono, esto te puede llevar mucho tiempo, y esto es generado por la interfaz de Android. Hay aplicaciones que ayudan en tareas que deberían ser sencillas como desinstalar otras aplicaciones pero no vienen instaladas en el sistema.
- La necesidad tediosa de instalar aplicaciones externas para solucionar problemas de uso normal: efectivamente el equipo funciona con solo encenderlo, pero sí de facilitar el uso se trata, se hace necesario instalar aplicaciones parte de las que vengan predefinidas.
- Android está fragmentado lo que provoca problemas de incompatibilidad con algunas aplicaciones de la Market que funcionan en determinadas versiones de Android. Oficialmente Android tiene la versión 2.1, la versión 2.2 y en breve la nueva versión 2.3. Pero cada modelo de teléfono celular se debe adaptar a Android de manera que no es exactamente la misma versión para un dispositivo u otro.
- No es un sistema operativo completo, Android es poco intuitivo al principio y que hay que configurar una buena cantidad de aplicaciones para que funcione correctamente, instalándolas es un Sistema Operativo muy potente, con una infinidad de opciones de uso.
Espero y les sea de utilidad!! :)
Referencias
- Rtve noticias [internet] www.rtve.es/noticias/20111110/utilizan-android.../474449.shtml, extraído el 12 de noviembre del 2012
- Wikipedia [internte], Historia - Características - Arquitectura, http://es.wikipedia.org/wiki/Android.
- Celumobile [internet], “razones para usar andoid”, www.celumobile.com/, Extraído el 12 de noviembre del 2012.
- Tudosisgeek [internet], “ventajas y desventajas de android”, www.tudosisgeek.com, Extraído el 12 de noviembre del 2012.
- “Symbian, el sistema operativo móvil” [Internet], http://www.gsmspain.com/glosario/?palabra=SYMBIAN, extraído el 14 de febrero del 2012.
- “Symbian OS” [Internet], http://es.wikipedia.org/wiki/Symbian_OS , extraído el 14 de febrero del 2012.
- “Windows Phone” [Internet], es.wikipedia.org/wiki/Windows_Phone, extraído el 14 de febrero del 2012
- “Conocer el sistema operativo Windows phone” [Internet], http://diginota.com/conocer-el-sistema-operativo-windows-phone-a-fondo/, extraído el 14 de febrero del 2012
- iOS Developer Library [internet], “iOS overview”, https://developer.apple.com/library/ios/#referencelibrary/GettingStarted/URL_iPhone_OS_Overview/_index.html, extraído el 14 de febrero del 2012.
- iOS Developer library [internet], “Core OS Layer”, https://developer.apple.com/library/ios/#documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/CoreOSLayer/CoreOSLayer.html#//apple_ref/doc/uid/TP40007898-CH11-SW1, extraído el 14 de febrero del 2012.
- iOS Developer library [internet], “Core Services Layer”, https://developer.apple.com/library/ios/#documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/CoreServicesLayer/CoreServicesLayer.html#//apple_ref/doc/uid/TP40007898-CH10-SW5, extraído el 14 de febrero del 2012.
- Androideity [internet], “Arquitectura de Android”, http://androideity.com/2011/07/04/arquitectura-de-android/,extraido, el 14 de febrero del 2012.
Excelente articulo Eve. correccion en linea: o Andoid 4.0 o Ice Cream Sanwich.
ResponderEliminarAndroid