viernes, 20 de julio de 2012

¿ Que es Android ?


Pregunta de entrevista laboral, pregunta de "charla de cafe", pregunta entre amigos... "Que es Android?" . Bueno, aca una respuesta, desde todos los puntos de vista.


Introducción

Android es una solución completa de software de código libre para teléfonos y dispositivos móviles.
Está basado en una versión modificada del kernel de Linux.
Utiliza Dalvik como máquina virtual la cual fue diseñada por Dan Bornstein, está optimizada para rquerir poca memoria y diseñada para permitir ejecutar varias instancias de la máquina virtual simultáneamente, delegando en el sistema operativo subyacente el soporte de aislamiento de procesos, gestión de memoria e hilos.
Se distribuye bajo una licencia Apache, versión 2 (requiere la conservación del aviso de copyright y el disclaimer, pero no es una licencia copyleft, ya que no requiere la redistribución del código fuente cuando se distribuyen versiones modificadas.), una licencia libre permisiva que permite la integración con soluciones de código propietario.
Permite un acceso fácil a prácticamente todas las funcionalidades hardware de los dispositivos en los que esté instalado.
Provee a los desarrolladores de librerías que permiten la creación ágil y rápida de aplicaciones.

Historia

* Julio de 2005 Google compra Android, Inc.
* Diciembre de 2006, existen rumores sobre la posibilidad de que Google está desarrollando un teléfono bajo su propia marca, gPhone.
* Noviembre de 2007, nace la Open Handset Alliance un consorcio de 65 equipos de software y compañías de telecomunicaciones, entre ellas Google, Motorola,HTC, Vodafone, etc. dedicadas a la promoción de estándares abiertos para dispositivos móviles.
* Enero – Abril 2008, se inicia el Android Developer Challenge, una competición que proporcionará 10 millones de dólares en premios para promocionar el desarrollo de aplicaciones basadas en Android.
*Agosto de 2008 se anuncia la aparición del Android Market que finalmente será lanzado al público el 22 de octubre de ese mismo año.
* Octubre de 2008, el código fuente de Android está disponible como Open Source bajo licencia Apache.
* 22 de Octubre de 2008 aparece el primer teléfono que utilizaba la tecnología Android, el HTC Dream (T-Mobile G1).
* Febrero de 2009, aparece la primera versión del SDK de Android 1.1.

Caractetísticas

Verdadera plataforma de desarrollo libre y gratuita.
- Acuerdo de desarrollo “no pay to play”.
- Herramientas disponibles gratutitamente (Eclipse)
y sin restricciones acerca del SO elegido para
desarrollar.
Arquitectura basada en componentes que puede ser
extendida con facilidad.
Servicios incluidos “out-of-the-box” :
- Basados en localización
- Multimedia
- Base de datos SQLite

Arquitectura Android

arquitectura android
arquitectura android

Bibliotecas nativas

Android incluye un collección de librería en C/C++
usados por varios componentes.
- Surface Manager: controla el acceso al subsistema de
visualización y facilita la creación capas de gráficos en 2D y 3D.
- Media Libraries: permite reproducir y grabar populares
formatos de audio y video.
- FreeType: bitmap y vector render para fuentes.
- SQLite: potente y ligero motor de base de datos relaciona
disponible para todas las
aplicaciones.
- WebKit : librerías sobre las
que se basa Safari.

Android Runtime

Cada aplicación Android corre su propio proceso, con su propia instancia de la MV Dalvik.
Dalvik permite el uso eficiente de dichas instancias. Ejecuta ficheros en el formato .dexoptimizado para el consumo mínimo de memoria.
La VM es register-based y corre clases de uncompilador Java que genera los ficheros .dexa través del herramienta “dx”.
La VM Dalkin delega en el Linux kernel toda la funcionalidad subyacente, como el manejo de hilos de proceso y la gestión de la memoria low-level.

Application Framework

Android incluye una serie de aplicaciones internas incluyendo un cliente de email, un programa de SMS, calendario, mapas, navegador, contactos, y otros. Todas las aplicaciones están escritas con Java.
Por debajo de todas las aplicaciones hay una serie de servicios y sistemas, entre los que se incluyen:
- Una extensa colección de Views que pueden ser usuadas para construir una aplicación, incluyendo listas, grids, cajas de texto, botones e incluso un navegador web o un mapa emebebido.
- Content Provider que permiten a las aplicaciones acceder a los datos de otras aplicaciones, como los contactos, o compartir su propia información.
- Resource Manager provee acceso a otros recursos non-code como pueden ser gráficos, mensajes dependientes de la localización o ficheros que definene el layout.
- Notification Manager permite a todas las aplicaciones mostrar mensajes personalizados en la barra de estado del dispositivo.
- Activity Manager maneja el ciclo de vida de las aplicaciones y provee una navegación común hacia ambos sentidos.

No hay comentarios:

Publicar un comentario