martes, 16 de septiembre de 2014
En el anterior Post vimos un poco la historia de Android hoy vamos a ver como se estructura internamente, sin morir en el intento.
Para empezar con Android es importante conocer como esta estructurado el sistema operativo, por ello debemos tener en cuenta que Android no es una distribución de Linux para dispositivos móviles, Android es un plataforma que se programa a través de Java , y por eso se desarrolla desde un punto de vista de Alto nivel, aún así la distribución permite acceder a las capas más bajas mediante el uso de librerías, como por ejemplo nos permite acceder a los componentes de hardware de los dispositivos, las diferentes capas se podrían clasificar.




Desde éste punto de vista Android posee varias propiedades interesantes:
  • Una API para acceder a los periféricos, GPS, cámara, etc.
  • Un conjunto de librerías gráficas para la programación 2D y 3D.
  • Un framework para aplicación que ofrece un conjunto de API con las que crearemos diferentes tipos de aplicaciones. También permite reutilizar y sustituir componentes proporcionados por la plataforma y por aplicaciones desarrolladas por terceros..
  • Soporte multimedia para formatos de imagen, vídeo y audio como Ogg Vorbis, MP3, MPEG-4,H.264 y PNG. Incluso hay uno especial para reproducir efectos sonoros.
La arquitectura de Android se constituye de una serie de componentes cada uno ellos se basa en los elementos de la capa inmediatamente inferior, a continuación un esquema de los principales componentes de Android.


Veamos las más importantes.

El kernel
Empezando desde la parte inferior de la pila, el Kernel de Linux es el responsable de suministrar los controladores básicos de los componentes de hardware, además es el encargado de la gestión de procesos, memoria , red, etc.
El núcleo actúa como una capa de abstracción entre el hardware y el resto de capas de la arquitectura. De esta forma también nos evitamos el hecho de quebrarnos la cabeza para conocer las características del dispositivo.


Entorno de Ejecución (Dalvik)
El entorno de ejecución se encuentra encima del Kernel y es el responsable ejecutar las aplicaciones. Cada una de ellas se ejecuta con su propio proceso a través de la máquina virtual Dalvik.
Como se puede observar en el diagrama anterior, el entorno no se considera una capa en si mimo, dado que también está formado por librerías.
La máquina virtual Dalvik es la responsable de ejecutar los programas en un formato bytecode DEX, dicho formato se desarrolló  para que apenas emplease memoria, comparado con los archivos .class clásicos de Java.
Además incorpora un recolector de basuras (GC) .

Las librerías del sistema
Son otra capa que se sitúa justo sobre el kerner y las componen las bibliotecas nativas de Android, este grupo de librerías C/C++, se encargan de las tareas de cálculo pesadas, como el dibujo de gráficos, la reproducción de audio y el acceso a la base de datos, y tienen como objetivo proporcionar funcionalidad a las aplicaciones para tareas que se repiten con frecuencia, evitando tener que codificarlas cada vez y garantizando que se llevan a cabo de la forma más eficiente, entre ellas nos podemos encontrar:
  • Skia Graphics Library (Skia).
  • OpenGL for embedded Systems.
  • etc.


Framework de aplicaciones
Es el responsable de asociar las librerías del sistema y el entorno de ejecución, los desarrolladores emplearán la API de Java para genera aplicaciones para este framework, y nos encontramos los siguientes:

  • Activity Manager. Se encarga de administrar la pila de actividades de nuestra aplicación así como su ciclo de vida.
  • Windows Manager. Se encarga de organizar lo que mostrará en pantalla.
  • Content Provider.  Es la responsable de crear una capa que encapsual los datos que se compartirán entre aplicaciones para tner control sobre como se accede al informaicón.
  • Views. Son los que nos ayudará a contruir las interfaces de usuario(botones, cuadros det texto, etc..)
  • Notification Manager. Engloba los servicios de notificar al usuario cuando algo requiera su atención, mediante alertas en la barra de estado, activando vibraciones, etc.
  • Package Manager. Permite obtener información sobre los paquetes instalados en el dispositivo, además de gestionar la instalación nuevos paquetes, entendiendo como paquete las aplicaciones Android que contienen el archivo .apk que a la vez incluye los archivos .dex con todos los recursos y archivos adicionales que necesite la aplicación.
  • Telephony Manager. Con esta libería podemos realizar llamadas o enviar y recibir SMS/MMS 
  • Location Manager. Permite determinar la posición geográfico del dispostivo Android, mediante GPS, etc.
  • Cámara. Para poder acceder a la camara o camáras, para tomar fotografías, etc.
  • Sensor Manager. Nos permite manipular los senosres del dispositivo, como el acelerómetro, de presión de proximidad, etc.
  • Resource Manager. Con esta librería podremos gestionar todos los elemnetos que forman parte de la aplicación y que están fuera del código.
  • Multimedia. Permiten reproducir y visualizar audio, video e imágenes en el dispositvo.


Aplicaciones
 Es la última capa que incluye todas las aplicaciones del dispositivo, tanto las que tienen interfaz de usuario como los que no.



En fin espero que haya sido interesante nos vemos con en la próxima y último post. 


0 comentarios:

Publicar un comentario