Com programas escritos em Java, as coisas são um pouco mais complexas, uma vez que a JVM (Java Virtual Machine ou Máquina Virtual de Java) introduz, no mínimo, uma camada a mais de abstração, conforme mostra a figura abaixo:

O Android, por sua vez, apresenta uma abordagem ainda mais rica e complexa, o que significa que mais camadas de abstração foram introduzidas neste tipo de ambiente. Programas Android oferecem suporte a múltiplos pontos de entrada, ao invés do tradicional ponto único (main). Portanto, programas Android devem prever que o sistema poderá inicializá-los em locais diferentes, dependendo do ponto em que se encontra o usuário e do que ele deseja fazer.

Desta forma, um programa Android pode ser considerado um grupo de componentes cooperantes que podem ser inicializados a partir de um ponto fora do fluxo normal de seu aplicativo.

Por exemplo, um componente para leitura de código de barras fornece uma função que muitos aplicativos podem integrar ao fluxo de suas interfaces. Em vez que depender do usuário para iniciar diretamente cada aplicativo, os próprios componentes invocam uns aos outros, realizando interações em nome do usuário por delegação.

Copyright © 2016 AIEC.