As aplicações de Android correm sobe uma máquina virtual de Java, de nome Dalvik. Uma das particularidades desta máquina virtual, é que as aplicações estão limitadas a uma Sandbox de execução, ou seja, o seu espaço de memória é privado. Este sistema é muito semelhante ao comportamento as aplicações nativas do sistema operativo subjacente do Android, o GNU/Linux.
Uma das consequências disto, é que a troca de informação entre aplicações excluí logo à partida a partilha de informação através de memória partilhada. O que resta, é a troca de mensagens entre aplicações.
O Android fornece vários mecanismos para envio de mensagens entre aplicações, alguns são mais apropriados que outros, dependendo do cenário de utilização. Temos por exemplo os BroadcastReceivers, que se tratam de classes que recebem informação que é enviada para o sistema operativo, e este trata de re-transmitir a informação para as várias aplicações que se registaram como “Receivers” para esse tipo de informação.