martes, 17 de mayo de 2011

Android


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.

Android es un sistema operativo basado en Linux para dispositivos móviles, tales como teléfonos inteligentes o tablets. 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, existen cerca de 250.000 aplicaciones disponibles para Android.
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.
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 el 32,9% de cuota de mercado a escala mundial de los teléfonos inteligentes, por delante de Symbian OS que tiene 30,6%. En tercer lugar se sitúa Apple con 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

En julio de 2005, Google adquirió Android Inc., una pequeña compañía de Palo Alto, California.
Cofundadores de Android: Andy Rubin, Rich Miner, Nick Sears, y Chris White.
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.
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, 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.

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.


Versiones:

1.0
Liberado el 23 de septiembre de 2008
1.1
Liberado el 9 de febrero de 2009
1.5
Basado en el kernel de Linux 2.6.27. El 30 de abril de 2009, la actualización 1.5 para Android fue liberada. Hubo varias características nuevas y actualizaciones en la interfaz de usuario en la actualización 1.5

    * 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
Basado en el kernel de Linux 2.6.29. El 15 de septiembre de 2009, el SDK 1.6  fue liberado. Se incluyó en esta actualización:

    * 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
Basado en el kernel de Linux 2.6.29. El 26 de octubre de 2009, el SDK 2.0 fue liberado. Los cambios incluyeron:

    * 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-touch[48]
    * Teclado virtual mejorado
    * Bluetooth 2.1
    * Fondos de pantalla animados

El SDK 2.0.1 fue liberado el 3 de diciembre de 2009.

El SDK 2.1' fue liberado el 12 de enero de 2010.
2.2 (Froyo)
Basado en el kernel de Linux 2.6.32. El 20 de mayo de 2010, el SDK 2.2 (Froyo) fue liberado. Los cambios incluyeron:

    * Optimización general del sistema Android, la memoria y el rendimiento[53]
    * Mejoras en la velocidad de las aplicaciones, gracias a la implementación de JIT[54]
    * 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 thetering por USB
    * Permite desactivar el tráfico de datos a través de la red del operador
    * Actualización del Market con actualizaciones automáticas[53]
    * 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 Browser[55]
    * Soporte para la instalación de aplicación en la memoria expandible
    * Soporte para Adobe Flash 10.1[56]
    * Soporte para pantallas de alto número de Puntos por pulgada, tales como 4" 720p[57]

2.3 (Gingerbread)

Basado en el kernel de Linux 2.6.35.7 Actual en smat. El 6 de diciembre de 2010, el SDK 2.3 (Gingerbread) fue liberado. Los cambios incluyeron:

    * Actualización del diseño de la interfaz de usuario
    * Soporte para pantallas extra grandes y resoluciones WXGA y mayores[57]
    * 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 ext4[60]

3.0 / 3.1 (Honeycomb)

    * Mejor soporte para tablets
    * 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

4.0 (Ice Cream Sandwich)          

    * 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

Características y especificaciones actuales:

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.

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.[65]

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, 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 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 una patente de Apple relacionada con tecnología de pantallas táctiles).[67] 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.[68]

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.          
La versión principal de Android no soporta videollamada,[69] Sin embargo algunos dispositivos podrían tener una versión personalizada del sistema operativo que lo soporta, ya sea por la red del operador (como el Samsung i9000 Galaxy S) o sobre IP.

Multitarea.   
Multitarea real de aplicaciones está disponible

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, el cual permite al teléfono ser usado como un punto de acceso alámbrico o inalámbrico (Todos los teléfonos con 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 computador portátil usar la conexión 3G 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.
  • 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.

                                                   Diagrama de Android.
  • 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.



Desarrollo
                                                       Teléfono virtual con Android 1.5

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 fuente como al listado de incidencias 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 actualidad existen más de 250.000 aplicaciones para Android y se estima que unos 300.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

                                          Samsung Galaxy Spica con una versión de Android 2.1

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.

Datos 2010-2011
Fuentes: wiki, San Google,


No hay comentarios:

Publicar un comentario