2. Android - Procesos
Un sistema Android está basado en el kernel de Linux para la determinación de
las políticas de planificación de los procesos. Algunos son procesos nativos
pero muchos serán los procesos que se ejecutan en una máquina virtual de
Java. En la mayoría de los casos, una aplicación Android se ejecuta en su
propio proceso de Linux. Este proceso es creado para la aplicación cuando la
arrancamos y seguirá corriendo hasta que no sea necesario y el sistema
reclame recursos para otras aplicaciones y se los de a éstas.
3. Android - Procesos
• Políticas de planificación en Android
Políticas Normales: Prioridad 0.
✓ SCHED_OTHER: El estándar de operación por turnos de tiempo compartido de las políticas.
✓ SCHED_BATCH: Para la ejecución "lote" al estilo de los procesos.
✓ SCHED_IDLE: Para ejecutar trabajos de muy baja prioridad en segundo plano.
Políticas de Tiempo Real: Los procesos pueden ser objeto de una prioridad inicial 19 a -20
(muy bajo a muy alta prioridad).
✓ SCHED_FIFO: Primero en entrar, primero en salir.
✓ SCHED_RR: Una política round-robin.
4. Android - Procesos
Android les asigna una prioridad a cada uno de ellos basándose en la siguiente jerarquía:
✓ Procesos en primer plano (Active process): Es la aplicación que contiene la actividad ejecutada en primer plano
en la pantalla del usuario y con la cuál está interactuando ahora mismo (Se ha llamado a su método onResume()).
Este tipo de procesos serán eliminados como último recurso si el sistema necesitase memoria.
✓ Procesos visibles (Visible process): Es un proceso que aloja una Activity que no se está ejecutando en primer
plano (es decir, su método onPause() ha sido llamado). Esto ocurre en situaciones dónde la aplicación muestra un
cuadro de diálogo para interactuar con el usuario. Este tipo de procesos no será eliminado en caso que sea
necesaria la memoria para mantener a todos los procesos del primer plano corriendo.
• Estado de un Proceso en Android
5. Android - Procesos
✓ Procesos de servicio (Started service process): Son aquellos que corren cuando un Service ha sido invocado. (Se
ha llamado a su método startService()). Estos procesos no son visibles hacen cosas en segundo plano que
normalmente son importantes para el usuario (conexión con servidores, actualización del GPS, reproductor de
música, etc.).
✓ Procesos en segundo plano (Background process): Es un proceso que contiene una Activity que actualmente
no es visible por el usuario (su método onStop() ha sido llamado) y que ya no tienen demasiada importancia. Por
ejemplo, los programas que arrancó el usuario hace tiempo y no los ha vuelto a usar, pasan a estar en
background.
✓ Procesos vacíos (Empty process): Es un proceso que no aloja ningún tipo de componente. Su razón de ser es el
de tener una caché disponible para la próxima aplicación que lance el usuario. Es común que el sistema elimine
este tipo de procesos con frecuencia para así poder obtener memoria disponible.
6. Android - Procesos
• Comunicación entre Procesos
✓ A través de variables de entorno: Solo es posible de padres a hijos.
✓ Mediantes señales: Solo indica que algo ha ocurrido y solo lleva como información de un
numero de señal.
✓ Mediante entrada salida: Es la forma mas corriente a nivel de Shell.
✓ Mediante técnicas IPC u otras: Semáforos, memorias compartida, colas de mensaje etc.
7. Android - Procesos
• Comunicación entre Procesos
Binder
Espacio del núcleo compartido por todos los
procesos.
Configuración Cuaderno Driver. ioctl()
la función del sistema.
Binder, Infraestructura de Android
Comunicación entre Procesos.
8. Android - Procesos
• Comunicación entre Procesos
Binder
Estructura de transferencia de datos de usuario entre procesos a través del
controlador Binder
C + + marco que traduce los datos traducidos a
RPC a través de controlador Binder.
9. Android - Procesos
• Comunicación entre Procesos
Remote Procedure Call (Llamada a Procedimiento Remoto)
Es un protocolo que permite a un programa de ordenador ejecutar código en
otra máquina remota sin tener que preocuparse por las comunicaciones entre
ambos.
10. Android - Procesos
• Comunicación entre Procesos
D-Bus: D-Bus es un mecanismo de comunicación entre procesos (IPC) consistente en tres capas:
✓Una biblioteca, libdbus, que permite a dos aplicaciones conectarse e intercambiar mensajes.
✓Un demonio ejecutable que funciona como bus de mensajes, construido sobre libdbus, al cual
pueden conectarse varias aplicaciones. El demonio puede encaminar mensajes desde una aplicación
a ninguna o más aplicaciones.
✓Bibliotecas adaptadas (wrappers en inglés) para su uso en frameworks concretos.
12. Android - Procesos
• Gobernadores de Android
Es quien dicta cuando el procesador debe trabajar más rápido o cuando
entrar en reposo, esto ayuda a mejorar la duración de la batería y también
alarga la vida útil del móvil.
✓ Min/Max.
✓ Interactivex.
✓Brazilianwax.
✓ Lazy.
✓ Smoothass.
✓ Savagenzend.