martes, 9 de agosto de 2011

Sistema Operativo Android.



Android

Android

Parte de la familia Linux

Android robot.svg
Android.svg

Información general

Modelo de desarrollo

FOSS

Lanzamiento inicial

21 de octubre de 2008

Última versión estable

2.3.5 Gingerbread (Teléfonos)
3.2 Honeycomb (Tablets)
14 de julio de 2011; hace 26 días y liberado1

Escrito en

C (núcleo),2 C++ (algunas bibliotecas de terceros), Java (UI)

Núcleo

Linux

Tipo de núcleo

Monolítico

Plataformas soportadas

ARM, x86,3 MIPS,4 IBM POWER5 6

Licencia

Apache 2.0 y GNU GPL 27

Estado actual

En desarrollo

Idiomas

Multilingüe

En español

Sí.

Android es un sistema operativo basado en Linux diseñado originalmente para dispositivos móviles, tales como teléfonos inteligentes, pero que posteriormente se expandió su desarrollo para soportar otros dispositivos tales como tablets, reproductores MP3, netbooks, PCs e incluso televisores.


Fue desarrollado inicialmente por Android Inc., una firma comprada por Google en 2005. Es el principal producto de la Open 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.

Android tiene una gran comunidad de desarrolladores escribiendo aplicaciones para extender la funcionalidad de los dispositivos. A la fecha, se han sobrepasado las 250.000 aplicaciones disponibles para la tienda de aplicaciones oficial de Android: Android Market, 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 de Samsung. Android Market 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 de malware, 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. Actualmente Android posee aproximadamente el 32,9% de cuota de mercado a escala mundial de los teléfonos inteligentes, por delante de Symbian OS que posee una cuota aproximada del 30,6%. En tercer lugar se sitúa iOS con una cuota de mercado del 16%.

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 API gráfica OpenGL 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++.


Historia

Adquisición por parte de Google

En julio de 2005, Google adquirió Android Inc., una pequeña compañía de Palo Alto, California fundada en 2003.21 Entre los cofundadores de Android que se fueron a trabajar a Google están Andy Rubin (co-fundador de Danger),22 Rich Miner (co-fundador de Wildfire Communications, Inc.),23 Nick Sears (alguna vez VP en T-Mobile),24 y Chris White (quien encabezó el diseño y el desarrollo de la interfaz en WebTV).25 En ese entonces, poco se sabía de las funciones de Android Inc. fuera que desarrollaban software para teléfonos móviles.21 Esto dió 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 kernel de Linux que fue promocionado como 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.26 27 28

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.29 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.30

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.31 32

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.9 Junto con la formación de la Open Handset Alliance, la OHA estrenó su primer producto, Android, un plataforma para dispositivos móviles construidas en la versión 2.6 del kernel 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 y Vodafone.33 34

Historial de actualizaciones

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. Sin embargo, esa situación cambiará con un anuncio que hizo oficial Google en el que comunicó que los fabricantes se comprometerán a aplicar actualizaciones al menos 18 meses desde su salida al mercado35

Los nombres en código están en orden alfabético.

1.0

Liberado el 23 de septiembre de 200836

1.1

Liberado el 9 de febrero de 200937

1.5 (Cupcake)
Basado en el kernel de Linux 2.6.27

El 30 de abril de 2009, la actualización 1.5 (Cupcake) para Android fue liberada.38 39 Hubo varias características nuevas y actualizaciones en la interfaz de usuario en la actualización 1.5:40

  • Posibilidad de grabar y reproducir videos a través del modo camcorder
  • Capacidad de subir videos a YouTube e imágenes a Picasa directamente desde el teléfono
  • Un nuevo teclado con predicción de texto
  • Soporte para Bluetooth A2DP y AVRCP
  • Capacidad de conexión automática para conectar a auricular Bluetooth a cierta distancia
  • Nuevos widgets y carpetas que se pueden colocar en las pantallas de inicio
  • Transiciones de pantalla animadas

1.6 (Donut)
Basado en el kernel de Linux 2.6.2941

El 15 de septiembre de 2009, el SDK 1.6 (Donut) fue liberado.42 43 Se incluyó en esta actualización:41

  • Una experiencia mejorada en el Android Market
  • Una interfaz integrada de cámara, filmadora y galería
  • La galería ahora permite a los usuarios seleccionar varias fotos para eliminarlas
  • Búsqueda por voz actualizada, con respuesta más rápida y mayor integración con aplicaciones nativas, incluyendo la posibilidad de marcar a contactos
  • Experiencia de búsqueda mejorada que permite buscar marcadores, historiales, contactos y páginas web desde la pantalla de inicio.
  • Actualización de soporte para CDMA/EVDO, 802.1x, VPN y text-to-speech
  • Soporte para resoluciones de pantalla WVGA
  • Mejoras de velocidad en las aplicaciones de búsqueda y cámara
  • Framework de gestos y herramienta de desarrollo GestureBuilder
  • Navegación gratuita turn-by-turn de Google

2.0 / 2.1 (Eclair)
Basado en el kernel de Linux 2.6.2944

El 26 de octubre de 2009, el SDK 2.0 (Eclair) fue liberado.45 Los cambios incluyeron:46

  • Velocidad de hardware optimizada
  • Soporte para más tamaños de pantalla y resoluciones
  • Interfaz de usuario renovada
  • Nuevo interfaz de usuario en el navegador y soporte para HTML5
  • Nuevas listas de contactos
  • Una mejor relación de contraste para los fondos
  • Mejoras en Google Maps 3.1.2
  • Soporte para Microsoft Exchange
  • Soporte integrado de flash para la cámara
  • Zoom digital
  • MotionEvent mejorado para captura de eventos multi-touch47
  • Teclado virtual mejorado
  • Bluetooth 2.1
  • Fondos de pantalla animados

El SDK 2.0.1 fue liberado el 3 de diciembre de 2009.48

El SDK 2.1 fue liberado el 12 de enero de 2010.49

2.2 (Froyo)50
Basado en el kernel de Linux 2.6.3251

El 20 de mayo de 2010, el SDK 2.2 (Froyo) fue liberado.50 Los cambios incluyeron:51

  • Optimización general del sistema Android, la memoria y el rendimiento52
  • Mejoras en la velocidad de las aplicaciones, gracias a la implementación de JIT53
  • Integración del motor JavaScript V8 del Google Chrome en la aplicación Browser
  • Soporte mejorado de Microsoft Exchange (reglas de seguridad, reconocimiento automático, GAL look-up, sincronización de calendario, limpieza remota)
  • Lanzador de aplicaciones mejorado con accesos directos a las aplicaciones de teléfono y Browser
  • Funcionalidad de Wi-Fi hotspot y tethering por USB
  • Permite desactivar el tráfico de datos a través de la red del operador
  • Actualización del Market con actualizaciones automáticas52
  • Cambio rápido entre múltiples idiomas de teclado y sus diccionarios
  • Marcación por voz y compartir contactos por Bluetooth
  • Soporte para contraseñas numéricas y alfanuméricas
  • Soporte para campos de carga de archivos en la aplicación Browser54
  • Soporte para la instalación de aplicación en la memoria expandible
  • Soporte para Adobe Flash 10.155
  • Soporte para pantallas de alto número de Puntos por pulgada, tales como 4" 720p56

2.3 (Gingerbread)57
Basado en el kernel de Linux 2.6.35.7 Actual en smat58

El 6 de diciembre de 2010, el SDK 2.3 (Gingerbread) fue liberado.57 Los cambios incluyeron:58

  • Actualización del diseño de la interfaz de usuario
  • Soporte para pantallas extra grandes y resoluciones WXGA y mayores56
  • Soporte nativo para telefonía VoIP SIP
  • Soporte para reproducción de videos WebM/VP8 y decodificación de audio AAC
  • Nuevos efectos de audio como reverberación, ecualización, virtualización de los auriculares y refuerzo de graves
  • Soporte para Near Field Communication
  • Funcionalidades de cortar, copiar y pegar disponibles a lo largo del sistema
  • Teclado multi-táctil rediseñado
  • Soporte mejorado para desarrollo de código nativo
  • Mejoras en la entrada de datos, audio y gráficos para desarrolladores de juegos
  • Recolección de elementos concurrentes para un mayor rendimiento
  • Soporte nativo para más sensores (como giroscopios y barómetros)
  • Un administrador de descargas para descargar archivos grandes
  • Administración de la energía mejorada y control de aplicaciones mediante la administrador de tareas
  • Soporte nativo para múltiples cámaras
  • Cambio de sistema de archivos de YAFFS a ext459

3.0 / 3.1 / 3.2 (Honeycomb)60

  • Mejor soporte para tablets61
  • Escritorio 3D con widgets rediseñados
  • Sistema multitarea mejorado
  • Mejoras en el navegador web predeterminado, entre lo que destaca la navegación por pestañas, autorelleno de formularios, sincronización de favoritos con Google Chrome y navegación privada
  • Soporte para videochat mediante Google Talk
  • Mejor soporte para redes Wi-Fi
  • Añade soporte para una gran variedad de periféricos y accesorios con conexión USB: teclados, ratones,hubs, dispositivos de juego y cámaras digitales. Cuando un accesorio está conectado, el sistema busca la aplicación necesaria y ofrece su ejecución.
  • Los widgets pueden redimensionarse de forma manual sin la limitación del número de cuadros que tenga cada escritorio.
  • Se añade soporte opcional para redimensionar correctamente las aplicaciones inicialmente creadas para móvil para que se vean bien en Tablets

(Ice Cream Sandwich)
(Número de versión desconocido)

  • Interfaz estilo Honeycomb, en cualquier dispositivo, homogeneidad entre teléfonos, televisiones, tablets, netbooks
  • Barra de estado redimensionable
  • Reconocimiento de voz del usuario
  • Reconocimiento facial, lo que haría que puedas cambiar la vista
  • Un único y nuevo framework para las aplicaciones

[editar] Características

Características y especificaciones actuales:62 63 64

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, la cual 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 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 obtiene una puntuación de 93/100 en el test Acid3.

Soporte de Java

Aunque las aplicaciones son escritas en Java, no hay una Máquina Virtual de Java en la plataforma. El código Java no es ejecutado. El código Java se compila en el 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.65

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.64

Soporte para streaming

Streaming RTP/RTSP (3GPP PSS, ISMA), descarga progresiva de HTML (HTML5

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 o 3.5) 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.

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).66 Más tarde, Google publicó una actualización para el Nexus One y el Motorola Droid que activa el soporte para pantallas multi-táctiles de forma nativa.67

Bluetooth

El soporte para A2DF y AVRCP fue agregado en la versión 1.5;40 el envío de archivos (OPP) y la exploración del directorio telefónico fueron agregados en la versión 2.0;46 y el marcado por voz junto con el envío de contactos entre teléfonos lo fueron en la versión 2.2.51

Videollamada

Android soporta videollamada atravé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 congelada68

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.69

Tethering

Android soporta tethering, el cual 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.70

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.
  • 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.

Curiosidades con los nombres

Las versiones de Android reciben nombre de postres en inglés. En cada versión el postre elegido empieza por una letra distinta siguiendo un orden alfabético:

  • Oficiales:
    • C: Cupcake (v1.5), magdalena glaseada.
    • D: Donut (v1.6), rosquilla.
    • E: Éclair (v2.0/v2.1), pastel francés conocido en España como pepito o canuto.
    • F: Froyo (v2.2), (abreviatura de «frozen yogurt») yogur helado.
    • G: Gingerbread (v2.3), pan de jengibre.
    • H: Honeycomb (v3.0/v3.1), panal.
    • I: IceCream Sandwich (sin número aún), sandwich de helado.

Desarrollo

Android, al contrario que otros sistemas operativos para dispositivos móviles como iOS o Windows Phone, se desarrolla de forma abierta y se puede acceder tanto al código fuente71 como al listado de incidencias72 donde se pueden ver problemas aún no resueltos y reportar problemas nuevos.

El que se tenga acceso al código fuente no significa que se pueda tener siempre la última versión de Android en un determinado móvil, ya que el código para soportar el hardware (controladores) de cada fabricante normalmente no es público, así que faltaría un trozo básico del firmware para poder hacerlo funcionar en dicho terminal, y porque las nuevas versiones de Android suelen requerir más recursos, por lo que los modelos más antiguos quedan descartados por razones de memoria (RAM), velocidad de procesador, etc.

Programación

En la actualidad existen más de 400.000 aplicaciones para Android y se estima que unos 550.000 teléfonos móviles se activan diariamente.

La tienda de aplicaciones Android conocida como «Android market» retribuye a los desarrolladores el 70% del precio de su aplicación. Asimismo, el desarrollo de aplicaciones para Android no requiere aprender lenguajes complejos de programación. Todo lo que se necesita es un conocimiento aceptable de Java y estar en posesión del kit de desarrollo de software o «SDK» provisto por Google el cual se puede descargar gratuitamente

Dispositivos con Android

Android está presente en una gran multitud de dispositivos, tanto teléfonos móviles, como tablets, como portátiles y próximamente en Televisiones

Aunque los comienzos de cualquier plataforma son siempre inciertos, no ha pasado mucho tiempo para que los fabricantes se hayan dado cuenta del auténtico potencial de esta plataforma. Actualmente es el sistema con el potencial de desarrollo más importante en el mundo de la telefonía móvil. El fabricante HTC entró de la mano de Google desarrollando el primer dispositivo en aparecer en el mercado y posteriormente muchos han sido los que han apostado por el nuevo entorno.

Etimología

Tanto el nombre Android 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.75

Cuota de las versiones

Plataforma↓

Nivel de API↓

Cuota de mercado↓

Android 3.1

12

0,3%

Android 3.0

11

0,3%

Android 2.3.3

10

8,1%

Android 2.3

9

1,1%

Android 2.2

8

64,6%

Android 2.1

7

21,2%

Android 1.6

4

2,5%

Android 1.5

3

1,9%

Demanda de Oracle

A través de un comunicado de prensa, Oracle anunció el 12 de agosto de 2010 una demanda contra Google por violación de propiedad intelectual en el uso de Java en el sistema operativo Android. La razón citada: «Al desarrollar Android, Google a sabiendas, infringió directa y repetidamente la propiedad intelectual de Oracle en relación a Java. Esta demanda busca remediar apropiadamente su infracción».88

Privacidad


No hay comentarios:

Publicar un comentario en la entrada