Android estructura del Sistema Operativo

6
Android: Es un sistema operativo móvil, queriendo esto decir que está orientado a dispositivos portátiles o móviles como lo son los smartphones, tablets, smart TVs, entre otros; Es desarrollado por Google Inc. Con la ayuda de la Open Handset Alliance, basado en el Kernel (Núcleo) de Linux bajo una licencia de código abierto. ¿Cómo nace Android?: La primera aparición de Android se hace en 2003 con la fundación de Android Inc. en Palo Alto, Estados Unidos. Esta compañía se fundó con el propósito de crear un sistema operativo móvil de código abierto basado en el núcleo de Linux. En 2005 Google Inc. adquiere esta empresa siendo esta la nueva responsable del desarrollo de Android. En 2007 se funda la Open Handset Alliance, un consorcio con el propósito de crear estándares abiertos para dispositivos móviles, la cual pasaría a formar parte del proyecto Android con lo que la primera versión de este sistema operativo vería la luz. A partir de ahí se seguiría desarrollando este sistema operativo hasta la actualidad.

Transcript of Android estructura del Sistema Operativo

Page 1: Android estructura del Sistema Operativo

Android:

Es un sistema operativo móvil, queriendo esto decir que está orientado a dispositivos

portátiles o móviles como lo son los smartphones, tablets, smart TVs, entre otros; Es

desarrollado por Google Inc. Con la ayuda de la Open Handset Alliance, basado en el

Kernel (Núcleo) de Linux bajo una licencia de código abierto.

¿Cómo nace Android?:

La primera aparición de Android se hace en 2003 con la fundación de Android Inc. en

Palo Alto, Estados Unidos. Esta compañía se fundó con el propósito de crear un sistema

operativo móvil de código abierto basado en el núcleo de Linux.

En 2005 Google Inc. adquiere esta empresa siendo esta la nueva responsable del

desarrollo de Android. En 2007 se funda la Open Handset Alliance, un consorcio con el

propósito de crear estándares abiertos para dispositivos móviles, la cual pasaría a formar

parte del proyecto Android con lo que la primera versión de este sistema operativo vería

la luz. A partir de ahí se seguiría desarrollando este sistema operativo hasta la actualidad.

Page 2: Android estructura del Sistema Operativo

Estructura de Android:

El sistema operativo Android está organizado en varias capas, siendo la más baja el

núcleo y la más alta las aplicaciones.

Núcleo: Esta capa es el Kernel de Linux, provee servicios genéricos tales como el

manejo de la seguridad (permisos), manejo de procesos, manejo de memoria, sistema de

archivos, E/S y los controladores del hardware. Además de estos servicios del Kernel de

Linux mencionados, también provee servicios específicos de Android como lo son el

manejo de energía (batería), el low memory killer (liberador de memoria), entre muchos

otros.

Page 3: Android estructura del Sistema Operativo

Librerías nativas: Es una variedad de librerías escritas en C y C++ usadas por el sistema

para la creación de procesos e hilos, cálculos, asignación de memoria, actualización de la

visualización, reproducción de audio y video, modelado de gráficos 3D, manejo de bases

de datos y para la representación y visualización de páginas web.

Runtime de Android: Esta capa está compuesta por un conjunto de librerías escritas en

JAVA que facilitan la programación de nuevas aplicaciones; Y por una maquina virtual. Las

aplicaciones de Android están escritas en JAVA, por lo cual se necesita una maquina virtual

que ejecute estos programas, pero, dadas las limitaciones de hardware que poseen los

dispositivos hacia los cuales está dirigido Android, no es posible utilizar la maquina virtual

de JAVA por lo que Google desarrollo una maquina virtual llamada Dalvik la cual permite

ejecutar sus aplicaciones en dispositivos móviles.

Page 4: Android estructura del Sistema Operativo

Entorno de aplicación: Esta se conforma por una gran cantidad de software reusable

que las aplicaciones necesitan tales como botones, iconos, cajas de entrada de texto,

entre otros elementos utilizados en las interfaces de usuario, la lista de aplicaciones

instaladas para facilitar la comunicación entre las aplicaciones, gestor de ventanas, gestor

de actividades, proveedor de contenido, gestor de ubicación, gestor de notificaciones,

entre otros.

Aplicaciones: Es un conjunto de aplicaciones propias de Android como la pantalla de

inicio, el marcador de teléfono, el navegador web, el lector de correo electrónico, etc.

Componentes de aplicación:

En Android cada aplicación está conformada por componentes, estos componentes son

los diferentes puntos desde los que el sistema puede ejecutar la aplicación, los hay de

cuatro tipos según el propósito que tenga en la aplicación:

Actividades (activities): Son pantallas con interfaz de usuario. Por ejemplo una

aplicación de correo electrónico puede tener una actividad que visualiza una lista de

correos recibidos, otra que edita un correo a ser enviado y otra que permite leer un

correo recibido.

Page 5: Android estructura del Sistema Operativo

Servicios (services): Son componentes que se ejecutan en segundo plano y no ofrecen

ninguna interfaz de usuario. Por ejemplo un servicio puede reproducir música mientras el

usuario está en otra aplicación.

Receptores de difusión (broadcast receivers): Estos componentes responden a

anuncios enviados a todo el sistema. Por ejemplo que la pantalla se apagó.

Proveedores de contenido (content providers): Estos se encargan de gestionar

información compartida con otras aplicaciones.

Gestión de procesos:

Cuando se inicia un componente de alguna aplicación, y esta aplicación no tiene ningún

otro componente ejecutándose, el sistema crea un nuevo proceso para esa aplicación con

un único hilo de ejecución, por defecto, todos los componentes de una misma aplicación

se ejecutan dentro de este mismo proceso y a medida que se inician más componentes se

anexan al proceso.

El sistema intenta mantener los procesos en memoria por el mayor tiempo posible,

pero si llega a necesitar memoria para procesos de mayor importancia, se verá en la

necesidad de matar procesos. Para determinar qué proceso ha de matar, el sistema le

asigna a cada proceso una prioridad, matando siempre el proceso con menor prioridad, en

caso de haber varios procesos con la misma prioridad se mata al menos recientemente

usado. Las prioridades son:

Primer plano: Estos son procesos que contienen la actividad con la que el usuario esta

interactuando en ese momento o contienen algún servicio del que dependa el proceso

que contiene a la actividad que interactúa con el usuario.

Visible: Estos son procesos que contienen alguna actividad que, aunque no está en

primer plano, es visible para el usuario, por ejemplo si se da el caso de que la actividad en

primer plano recién iniciada permita ver la actividad anterior justo tras ella, o bien

contiene algún servicio del que depende otro proceso visible.

Servicio: Son procesos que contienen servicios que, aunque no interactúan

directamente con el usuario, le incumben directamente al usuario, por ejemplo el

reproductor de música.

Page 6: Android estructura del Sistema Operativo

Segundo plano: Estos son procesos cuyos componentes no afectan a la experiencia del

usuario. Por lo general estos procesos son los matados mas comúnmente por lo que están

preparados para reanudarse en el punto en que quedaron una vez vuelven a iniciarse.

Vacio: Estos procesos no tienen componentes activos por lo que no ejecutan nada, la

única razón por la que se mantienen en memoria es para agilizar el inicio de futuros

componentes que necesiten ejecutarse en el.

La prioridad que se le asigna a un proceso siempre es la de su componente con mayor

prioridad, es decir, si su componente con mayor prioridad es Visible entonces la prioridad

del proceso será visible.

Puede darse el caso de que un proceso A sea dependiente de otro con menor prioridad

B, en estos casos la prioridad del proceso B tendría que igualar la prioridad del proceso A

ya que un proceso no puede tener menor prioridad que la de los procesos que dependen

de él.