Fue
desarrollado inicialmente por Android Inc.,
una firma comprada por Google en 2005. Es el principal producto de laOpen Handset Alliance, un conglomerado de
fabricantes y desarrolladores de hardware, software y operadores de servicio. Las
unidades vendidas de teléfonos inteligentes con Android se ubican en el primer
puesto en los Estados Unidos, en el segundo y tercer
trimestres de 2010, con
una cuota de mercado de 43,6% en el tercer trimestre. A nivel mundial
alcanzó una cuota de mercado del 50,9% durante el cuarto trimestre de 2011, más
del doble que el segundo sistema operativo (iOS de Apple, Inc.) con más cuota.
Tiene una
gran comunidad de desarrolladores escribiendo aplicaciones para extender la
funcionalidad de los dispositivos. A la fecha, se han sobrepasado las 700.000
aplicaciones (de las cuales, dos tercios son gratuitas) disponibles para la
tienda de aplicaciones oficial de Android: Google Play,
sin tener en cuenta aplicaciones de otras tiendas no oficiales para Android,
como pueden ser la App Store de Amazon o
la tienda de aplicaciones Samsung Apps de Samsung. Google Play es
la tienda de aplicaciones en línea administrada por Google, aunque existe la
posibilidad de obtener software externamente. Los programas están escritos en
el lenguaje de programación Java. No obstante, no
es un sistema operativo libre demalware, aunque la mayoría de ello es descargado de sitios de
terceros.
El anuncio
del sistema Android se realizó el 5 de noviembre de 2007 junto con la creación
de la Open Handset Alliance, un consorcio de 78
compañías de hardware, software y telecomunicaciones dedicadas al desarrollo de
estándares abiertos para dispositivos móviles. Google liberó la mayoría
del código de Android bajo la licencia Apache,
una licencia libre y de código
abierto.
La
estructura del sistema operativo Android se compone de aplicaciones que se
ejecutan en un framework Java de aplicaciones orientadas a objetos sobre
el núcleo de las bibliotecas de Java en una máquina
virtual Dalvik con compilación en tiempo de ejecución.
Las bibliotecas escritas en lenguaje C incluyen un administrador
de interfaz gráfica (surface manager),
un framework OpenCore, una base de datos relacional SQLite, una
Interfaz de programación de API gráficaOpenGL ES 2.0 3D,
un motor de renderizado WebKit, un motor gráfico SGL, SSL y una biblioteca estándar de C Bionic. El
sistema operativo está compuesto por 12 millones de líneas de código,
incluyendo 3 millones de líneas de XML, 2,8 millones de líneas de lenguaje C,
2,1 millones de líneas de Java y 1,75 millones de líneas de C++.
Etimología
Tanto el
nombre Android (androide en español) como Nexus One hacen
alusión a la novela de Philip K.
Dick ¿Sueñan los androides con ovejas
eléctricas?, que posteriormente fue adaptada al cine como Blade Runner.
Tanto el libro como la película se centran en un grupo de androides
llamados replicantes del modelo Nexus-6.
El logotipo
es el robot "Andy".
Adquisición por parte de Google
En julio de
2006, Google adquirió Android Inc., una pequeña compañía de Palo Alto,
California fundada en 2003. Entre los cofundadores de Android que se fueron a
trabajar a Google están Andy Rubin (co-fundador de Danger), Rich Miner (co-fundador de Wildfire
Communications, Inc.), Nick Sears (alguna vez VP en T-Mobile), y
Chris White (quien encabezó el diseño y el desarrollo de la interfaz en WebTV). En
aquel entonces, poco se sabía de las funciones de Android Inc. fuera de que
desarrollaban software para teléfonos móviles. Esto dio pie a 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 núcleo 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. Reportes de BBC y The
Wall Street Journal señalaron que Google quería sus servicios de búsqueda y
aplicaciones en teléfonos móviles y estaba muy empeñado en ello. Medios
impresos y en línea pronto reportaron que Google estaba desarrollando un
teléfono con su marca.
En
septiembre de 2007, «InformationWeek» difundió un estudio de Evalueserve que
reportaba que Google había solicitado diversas patentes en el área de la
telefonía móvil.
Open Handset
Alliance
El 5 de
noviembre de 2007 la Open Handset Alliance, un consorcio de varias compañías
entre las que están Texas
Instruments, Broadcom Corporation, Nvidia, Qualcomm,Samsung Electronics, Sprint Nextel, Intel, LG, Marvell Technology Group, Motorola,
y T-Mobile;
se estrenó 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, Android, una plataforma para dispositivos móviles
construida sobre la versión 2.6 de Linux.
El 9 de
diciembre de 2008, se anunció que 14 nuevos miembros se unirían al proyecto
Android, incluyendo PacketVideo, ARM Holdings, Atheros Communications,Asustek, Garmin, Softbank, Sony Ericsson, Toshiba, Vodafone y ZTE.
Historial de actualizaciones
Artículo principal: Anexo:Historial de versiones de
Android.
Android ha
visto numerosas actualizaciones 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ó.
Los nombres
en código están en orden alfabético.
Características
Características
y especificaciones actuales:
Diseño de dispositivo
|
La
plataforma es adaptable a pantallas de mayor resolución, 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, HSDPA, HSPA+ yWiMAX.
|
Mensajería
|
SMS y MMS son formas de
mensajería, incluyendo mensajería de texto y ahora la Android Cloud to Device
Messaging Framework (C2DM) es 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 WebKit, emparejado con el motor JavaScript V8 de Google
Chrome. El navegador por defecto de Ice Cream Sandwich obtiene una puntuación
de 100/100 en el test Acid3.
|
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 dipositivos móviles que funcionan con batería
y que tienen memoria y procesador limitados. El soporte para J2ME puede ser
agregado mediante aplicaciones de terceros como el J2ME MIDP Runner.
|
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
|
Streaming
RTP/RTSP (3GPP PSS, ISMA), descarga progresiva de HTML (HTML5 <video>
tag). 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,, sensores de
luz, gamepad, termómetro, aceleración por GPU 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.
|
Google Play
|
Google Play 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.
|
Multi-táctil
|
Android
tiene soporte nativo para pantallas capacitivas con soporte multi-táctil 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).46 Más
tarde, Google publicó una actualización para el Nexus One y
el Motorola Droid que activa el soporte
multi-táctil de forma nativa.
|
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;49 y
el marcado por voz junto con el envío de contactos entre teléfonos lo fueron
en la versión 2.2.</ref> Los cambios incluyeron:
|
Videollamada
|
Android
soporta videollamada 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 (Como por
ejemplo iOS, en el que la multitarea se limita a servicios internos del
sistema y no a aplicaciones externas) 5)
|
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 inferiores mediante aplicaciones disponibles
en Google Play (por
ejemplo PdaNet). Para permitir a un PC usar la conexión de datos del móvil
android se podría requerir la instalación de software adicional.
|
Arquitectura
Los componentes
principales del sistema operativo de Android (cada sección se describe en
detalle):
Aplicaciones: las aplicaciones base incluyen un cliente de correo electrónico, programa de SMS, calendario, mapas, navegador, contactos y otros. Todas las aplicaciones están escritas en lenguaje de programación Java.
Aplicaciones: las aplicaciones base incluyen un cliente de correo electrónico, programa de SMS, calendario, mapas, navegador, contactos y otros. Todas las aplicaciones están escritas en lenguaje de programación Java.
Marco de trabajo de aplicaciones: los desarrolladores tienen acceso completo a los
mismos APIs del framework usados 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
framework). Este mismo mecanismo permite que los componentes sean reemplazados
por el usuario.
Bibliotecas: Android
incluye un conjunto de bibliotecas de C/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: System C library (implementación biblioteca C estándar),
bibliotecas de medios, bibliotecas de gráficos, 3D y SQLite, entre otras.
Runtime de Android: Android
incluye un set 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 Executable (.dex), el cual está optimizado para
memoria mínima. La Máquina Virtual está basada en registros y corre clases
compiladas por el compilador de Java que han sido transformadas al formato.dex
por la herramienta incluida "dx".
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.