Introdução

Alguns conceitos da arquitetura do Android

Android está dividido em algumas grandes camadas. Como funcionam essas camadas:
- 1 Application framework: Camada com a qual temos mais interação, no aplicativo principal. Usamos mais frequentemente como desenvolvedores. Parte mais visível ao usuário. Porta de entrada dos aplicativos
- 2 Binder IPC Proxies: Mecanismo de comunicação que permite que a estrutura do aplicativo cruze os limites e chame código de serviços do sistema Android. Isso permite que algumas APIs, por exemplo, estejam a mais alto nível para nós desenvolvedores, como chamadas para verificar bateria do celular
- 3 Android System Services: Serviços de sistema Android são os componentes modulares e focados, como, por exemplo, os gerenciadores de janelas, serviços de pesquisa, serviços de notificações do celular. Também são expostos pelas APIs do Binder IPC Proxies.
- Media Server: Serviços de mídia
- System Server: Serviços do sistema
- 4 HAL: Camada / Interface para os fornecedores de hardware. Possibilitam implementar algumas abstrações para o seu device e também implementar funcionalidades sem afetar ou modificar o sistema de nível superior. Essa camada, supondo que precisemos ter uma modificação do SO, que precisa atender uma camada específica como por exemplo a personalização de interface, é essa camada que faz isso
- 5 LINUX KERNEL: Seria o SO de fato, em sua própria essência. O desenvolvimento de drivers e dispositivos é similar ao Linux. O Android precisa ter um trabalho melhor com gerenciamento de memória para deixar o celular funcionando perfeitamente. O Android adapta o Linux para suas necessidades
O aplicativo (1) requisita alguma informação, passa para a camada 2, que chama a 3, podendo ser por exemplo um serviço de mídia (no Media Server) e daí retorna dessa cascata para o aplicativo (1)