La comunicación entre procesos de Android

Viendo ayer la comunicación entre procesos se ve que en Android se usa OpenBinder. Pero he mirado la lista de procesos y he visto que existe un daemon llamado dbus-daemon que también se está ejecutando.

Y yo me pregunto ¿por qué si Android usa OpenBinder como sistema de comunicación entre procesos, también está el sistema D-Bus para hacer lo mismo? ¿Por qué este sistema es redundante?

Logo Bluetooth

Pues parece ser, según me ha informado mi amigo Héctor, que la pila Bluetooth de Android está basada en Bluez, la implementación oficial de la pila Bluetooth en Linux. Y resulta que esta implementación utiliza D-Bus para comunicarse con el resto de los procesos, como se puede observar en el diagrama donde se explica su funcionamiento.

Espero que pronto implementen su propia pila Bluetooth o, al menos, que reimplementen la comunicación de la actual adaptándola a OpenBinder, porque lo que pasa con esto es que existe un proceso adicional e innecesario que lo único que hace es comsumir memoria, tiempo y de procesador y, sobre todo, batería. Y la verdad es que Android es un sistema bastante bien hecho y que está calando profundo como para que estén con estas cosas.

2 personas han comentado en “La comunicación entre procesos de Android”

  1. vmo dice:

    ¿Has visto Go?
    ttp://www.rethink-wireless.com/article.asp?article_id=2136

    Entre los autores están Ken Thompson, Rob Pike y Russ Cox.

    Tienes una charla de Rob Pike, de Google Tech Talks
    (1 hora):

    http://www.youtube.com/watch?v=rKnDgT73v8s

  2. Diego dice:

    Sí, lo había visto. De hecho tengo que echarle un vistazo porque por lo poco que he visto, aunque tiene sus carencias (a mi entender) ha solucionado el problema de la concurrencia y sincronización de hilos de una forma muy elegante.

    Quizás sea la próxima entrada :) .

Deja tu comentario:

Puedes usar las etiquetas XHTML <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

?

Please leave these two fields as-is: