loading...

viernes, 2 de diciembre de 2011

Entendiendo Android. ¿Que es Android?

¿Qué es Android?

Android es una pila de software para dispositivos móviles que incluye las aplicaciones de un sistema operativo, middleware y clave.

El SDK de Android proporciona las herramientas y los APIs necesarios para comenzar a desarrollar aplicaciones en la plataforma Android usando el lenguaje de programación Java.

 

Características

  • Marco de la aplicación permitiendo la reutilización y sustitución de componentes
  • Dalvik máquina virtual optimizada para dispositivos móviles
  • Navegador integrado basado en el código abierto WebKit motor
  • Gráficos optimizados impulsado por una costumbre de la biblioteca de gráficos 2D, gráficos 3D basado en la especificación OpenGL ES 1.0 (aceleración de hardware opcional)
  • SQLite para el almacenamiento de datos estructurados
  • Apoyo a los medios de audio comunes, videos y formatos de imagen (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  • Telefonía GSM (dependiente del hardware)
  • Bluetooth, EDGE, 3G y WiFi (dependiente del hardware)
  • Cámara, GPS, brújula y el acelerómetro (dependiente del hardware)
  • Entorno de desarrollo incluyendo un emulador de dispositivo, herramientas para la depuración, la memoria y de perfiles de rendimiento, y un plugin para el IDE de Eclipse

Android Arquitectura

El siguiente diagrama muestra los componentes principales del sistema operativo Android. Cada sección se describe con más detalle a continuación.

Arquitectura del sistema Android

Aplicaciones

Android se venderá con un conjunto de aplicaciones básicas, como un cliente de correo electrónico, programa de SMS, calendario, mapas, navegador, contactos, y otros.Todas las aplicaciones se escriben usando el lenguaje de programación Java.

Applicación Framework

Al proporcionar una plataforma de desarrollo abierto, Android ofrece a los desarrolladores la capacidad de crear aplicaciones muy ricas e innovadoras. Los desarrolladores son libres para tomar ventaja del hardware del dispositivo, información de acceso a la ubicación, ejecutar servicios en segundo plano, configurar alarmas, añadir las notificaciones de la barra de estado, y mucho, mucho más.

Los desarrolladores tienen acceso completo a la API, de un mismo marco utilizado por las aplicaciones básicas. La arquitectura de la aplicación está diseñada para simplificar la reutilización de componentes, y cualquier aplicación puede publicar sus capacidades y cualquier otra aplicación podrá entonces hacer uso de esas capacidades (sujeto a restricciones de seguridad impuestas por el marco). Este mismo mecanismo permite que los componentes se sustituye por el usuario.

Detrás de todas las aplicaciones es un conjunto de servicios y sistemas, incluyendo:

  • Un amplio conjunto y extensible de Visitas que se pueden utilizar para construir una aplicación, incluyendo listas, rejillas, cajas de texto, botones, e incluso un navegador web integrable
  • Los proveedores de contenido que permiten a las aplicaciones acceder a datos de otras aplicaciones (por ejemplo, contactos), o para compartir sus propios datos
  • A Resource Manager , que proporciona acceso a los recursos no son de código tales como cadenas localizadas, gráficos y archivos de diseño
  • Un Administrador de notificaciones que permite a todas las aplicaciones para mostrar alertas personalizadas en la barra de estado
  • Un gestor de actividad que gestiona el ciclo de vida de las aplicaciones y proporciona una navegación común backstack

Para más detalles y un tutorial de una aplicación, consulte el tutorial de Bloc de notas .

Bibliotecas

Android incluye un conjunto de C / C + + librerías utilizadas por los diversos componentes del sistema Android. Estas capacidades están expuestos a los desarrolladores a través del framework de aplicaciones Android. Algunas de las bibliotecas del núcleo son los siguientes:

  • System C library - una implementación derivados de BSD de la biblioteca del sistema estándar de C (libc), en sintonía para Linux embebido basado en los dispositivos
  • Media Libraries - sobre la base de OpenCORE PacketVideo, la reproducción de apoyo a las bibliotecas y la grabación de muchas de audio y formatos de vídeo populares, así como archivos de imágenes estáticas, incluyendo MPEG4, H.264, MP3, AAC, AMR, JPG y PNG
  • Surface Manager - administra el acceso al subsistema de pantalla y sin problemas en 2D y 3D compuestos capas gráficas de múltiples aplicaciones
  • LibWebCore - un motor de navegador web moderno que alimenta tanto el navegador de Android y una vista web embebido
  • SGL - el motor de base de gráficos 2D
  • Librerías 3D - una implementación basada en OpenGL ES 1.0 API, las bibliotecas utilizar aceleración 3D por hardware (donde esté disponible) o la incluyen, rasterizador altamente optimizada de software 3D
  • FreeType - mapa de bits y representación de la fuente de vectores
  • SQLite - un motor de base de datos relacional potente y ligera disponible para todas las aplicaciones
  •  

Android Runtime

Android incluye un conjunto de bibliotecas básicas que proporciona la mayor parte de la funcionalidad disponible en las bibliotecas del núcleo del lenguaje de programación Java.

Cada aplicación Android se ejecuta en su propio proceso, con su propia instancia de la máquina virtual de Dalvik. Dalvik ha sido escrito para que un dispositivo puede ejecutar varias máquinas virtuales de manera eficiente. La máquina virtual Dalvik ejecuta archivos ejecutables en el Dalvik (. Dex) el formato que está optimizado para memoria mínima. El VM es basado en registros, y corre clases compiladas por un compilador del lenguaje Java que se han convertido en el formato. Dex por la incluyó "dx" de la herramienta.

La máquina virtual Dalvik se basa en el kernel de Linux para la funcionalidad subyacente, como la gestión de memoria threading y de bajo nivel.

Linux Kernel

Android se basa en la versión 2.6 de Linux para los servicios del núcleo del sistema como la seguridad, la gestión de memoria, gestión de procesos, la pila de red, y el modelo de controlador. El núcleo también actúa como una capa de abstracción entre el hardware y el resto de la pila de software.



No hay comentarios:

Publicar un comentario