ARQUITECTURA DE ANDROID

Para comenzar, cabe destacar que Android además de ser una plataforma de Software, es un
Sistema Operativo como tal que está basado en el núcleo de Linux. Android fue pensado en un
principio para dispositivos móviles, ya que permite controlarlos por medio de bibliotecas
desarrolladas o adaptados por Google mediante el lenguaje de programación Java.

Luego de un breve concepto y la orientación que tiene el SO Android, prosigue describir la
Arquitectura interna que hace posible todo lo que vemos en Android. Ésta Arquitectura está
dividida principalmente en 5 componentes Principales:

      APLICACIONES
      FRAMEWORK DE APLICACIONES
      LIBRERÍAS
      RUNTIME
      KERNEL DE LINUX

La Arquitectura de Android se puede representar con la siguiente imagen:
   Aplicaciones: Entre 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.

   Framework 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.

   Librerías: Android incluye un conjunto de librerías 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), librerías de medios, librerías de gráficos, 3D,
    SQLite, entre otras. Están compiladas para la arquitectura de hardware específica del
    teléfono. Estas normalmente están hechas por el fabricante, quien también se encarga de
    instalarlas en el dispositivo antes de ponerlo a la venta.

   Runtime de Android: Android incluye un set de librerías base que proporcionan la
    mayor parte de las funciones disponibles en las librerías base del lenguaje Java. Cada
    aplicación Android corre su propio proceso, con su propia instancia de la máquina virtual
    Dalvik, la cual ha sido escrita 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".

   Kernel Linux: Android depende de Linux para los servicios base del sistema como
    seguridad, gestión de memoria, gestión de procesos, red y modelo de controladores. El
    núcleo también actúa como una capa de abstracción entre el hardware y el resto del
    software. Android utiliza la versión 2.6.x del núcleo de Linux. Es importante destacar que
    el núcleo actúa como una capa de abstracción entre el hardware y el resto de las capas de
    la arquitectura. El desarrollador no accede directamente a esta capa, sino que debe utilizar
    las librerías disponibles en capas superiores.




                                             1
¿ANDROID SIN JAVA?

Actualmente las aplicaciones Android están codificadas en el lenguaje Java y luego son compiladas
por la Maquina Virtual Dalvik que utiliza un formato específico que ésta ejecuta, por lo que sería
un poco complicado que Android trabajase sin ningún rastro de Java, más no imposible, ya que por
la demanda de Oracle sobre Google, han salido varios proyectos en los que se traduce el código
Java que contiene Android para trabajarlo en el lenguaje C# de .NET con el que todo sería
“puramente” libre.

En conclusión haciendo todas las traducciones necesarias Android si podría realizarse sin ningún
rastro de JAVA.




                                                2

Arquitectura android

  • 1.
    ARQUITECTURA DE ANDROID Paracomenzar, cabe destacar que Android además de ser una plataforma de Software, es un Sistema Operativo como tal que está basado en el núcleo de Linux. Android fue pensado en un principio para dispositivos móviles, ya que permite controlarlos por medio de bibliotecas desarrolladas o adaptados por Google mediante el lenguaje de programación Java. Luego de un breve concepto y la orientación que tiene el SO Android, prosigue describir la Arquitectura interna que hace posible todo lo que vemos en Android. Ésta Arquitectura está dividida principalmente en 5 componentes Principales:  APLICACIONES  FRAMEWORK DE APLICACIONES  LIBRERÍAS  RUNTIME  KERNEL DE LINUX La Arquitectura de Android se puede representar con la siguiente imagen:
  • 2.
    Aplicaciones: Entre 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.  Framework 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.  Librerías: Android incluye un conjunto de librerías 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), librerías de medios, librerías de gráficos, 3D, SQLite, entre otras. Están compiladas para la arquitectura de hardware específica del teléfono. Estas normalmente están hechas por el fabricante, quien también se encarga de instalarlas en el dispositivo antes de ponerlo a la venta.  Runtime de Android: Android incluye un set de librerías base que proporcionan la mayor parte de las funciones disponibles en las librerías base del lenguaje Java. Cada aplicación Android corre su propio proceso, con su propia instancia de la máquina virtual Dalvik, la cual ha sido escrita 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".  Kernel Linux: Android depende de Linux para los servicios base del sistema como seguridad, gestión de memoria, gestión de procesos, red y modelo de controladores. El núcleo también actúa como una capa de abstracción entre el hardware y el resto del software. Android utiliza la versión 2.6.x del núcleo de Linux. Es importante destacar que el núcleo actúa como una capa de abstracción entre el hardware y el resto de las capas de la arquitectura. El desarrollador no accede directamente a esta capa, sino que debe utilizar las librerías disponibles en capas superiores. 1
  • 3.
    ¿ANDROID SIN JAVA? Actualmentelas aplicaciones Android están codificadas en el lenguaje Java y luego son compiladas por la Maquina Virtual Dalvik que utiliza un formato específico que ésta ejecuta, por lo que sería un poco complicado que Android trabajase sin ningún rastro de Java, más no imposible, ya que por la demanda de Oracle sobre Google, han salido varios proyectos en los que se traduce el código Java que contiene Android para trabajarlo en el lenguaje C# de .NET con el que todo sería “puramente” libre. En conclusión haciendo todas las traducciones necesarias Android si podría realizarse sin ningún rastro de JAVA. 2