Em posts anteriores, eu fiz um tutorial em duas partes (Java Básico Parte 01 e Java Básico Parte 02) explicando o básico sobre a linguagem Java utilizada para desenvolver aplicativos Android.
Porém, não podemos esquecer que o sistema Android tem suas particularidades, ou seja, é preciso entender como ela funciona e não apenas entender sobre Java.
Neste post, vou explicar alguns dos principais recursos do sistema Android que é necessário um desenvolvedor saber bem como utiliza-las.
Os 04 Pilares Principais do Sistema Android
Um aplicativo Android tem 04 pilares principais, que fazem com que ele funcione como você o vê no seu celular, incluindo todas as suas funcionalidades ( baixar noticias pela Internet e mostrar na tela do celular, avisar o usuário de uma nova mensagem, tirar uma foto com a câmera e enviar para os amigos, entre outras milhões de funções que um aplicativo pode ter).
A figura e as descrições abaixo mostram os 04 pilares, responsáveis por executar todas essas tarefas.
Activity
Uma Activity representa uma única tela como uma interface de usuário. Por exemplo, um aplicativo de e-mail pode ter uma Activity que mostra uma lista de novos e-mails, outra para compor um e-mail e outra para ler e-mails. Se um aplicativo tiver mais de uma Activity, uma delas deverá ser marcada como principal quando o aplicativo for iniciado.
Uma Activity é implementada como uma subclasse da classe Activity da seguinte maneira:
public class MainActivity extends Activity { }
Services
Um Service é um componente que é executado em segundo plano para executar operações de longa duração. Por exemplo, um Service pode reproduzir música em segundo plano enquanto o usuário está em um aplicativo diferente ou pode buscar dados na rede sem bloquear a interação do usuário com uma Activity.
Um Service é implementado como uma subclasse da classe Service da seguinte maneira:
public class MyService extends Service { }
Content Providers
Um Content Provider fornece dados de um aplicativo para outros sob solicitação. Tais pedidos são tratados pelos métodos da classe ContentResolver. Os dados podem ser armazenados no sistema de arquivos, no banco de dados ou em qualquer outro lugar.
Um Content Provider é implementado como uma subclasse da classe ContentProvider e deve implementar um conjunto padrão de APIs que permita que outros aplicativos executem transações.
public class MyContentProvider extends ContentProvider { public void onCreate(){} }
Broadcast Receivers
Os Broadcast Receivers simplesmente respondem a mensagens de broadcast de outros aplicativos ou do sistema. Por exemplo, os aplicativos também podem permitir que outros aplicativos saibam que alguns dados foram baixados para o dispositivo e estão disponíveis para uso, portanto, esse é um receptor de transmissão que interceptará essa comunicação e iniciará a ação apropriada.
Um Broadcast Receivers é implementado como uma subclasse da classe BroadcastReceiver e cada mensagem é transmitida como um objeto Intent.
Arquitetura do Android
Já tendo explicado o funcionamento interno de um aplicativo, vou explicar um pouco da arquitetura do sistema Android.
Para facilitar, vamos visualizá-la como uma piramide, detalhando da base até ao topo.
Aplicativos
São os aplicativos e jogos desenvolvidos utilizando a linguagem Java, conforme explicado anteriormente. Alguns exemplos como Facebook, Instagram, Gmail e etc.
Você vai encontrar também os aplicativos Android que já vem com o sistema operacional. Exemplos de tais aplicativos são Contatos, Livros, Navegadores, Jogos etc.
Frameworks, Serviços e Bibliotecas
Esta camada fornece muitos serviços de nível superior para aplicativos na forma de classes Java. Os desenvolvedores de aplicativos podem fazer uso desses serviços em seus aplicativos.
A estrutura do Android inclui os seguintes serviços principais:
- Activity Manager: Controla todos os aspectos do ciclo de vida e da pilha de Activities do aplicativo.
- Provedores de Conteúdo: Permite que os aplicativos publiquem e compartilhem dados com outros aplicativos.
- Gerenciador de Recursos: Fornece acesso a recursos incorporados não codificados, como seqüências de caracteres, configurações de cores e layouts de interface do usuário.
- Gerenciador de Notificações: Permite que os aplicativos exibam alertas e notificações para o usuário.
- Sistema de Visualização: Um conjunto extensível de visualizações usado para criar interfaces com o usuário do aplicativo.
Além das bibliotecas e frameworks externos que podemos incluir em nossos aplicativos.
Bibliotecas e Serviços Nativos
No topo do kernel do Linux, há um conjunto de bibliotecas incluindo o WebKit, mecanismo de navegador da Web de código aberto, bibliotecas nativas, banco de dados SQLite que é um repositório útil para armazenamento e compartilhamento de dados de aplicativos, bibliotecas para reproduzir e gravar áudio e vídeo, bibliotecas SSL responsáveis pela segurança da Internet, etc.
Linux
Na parte inferior das camadas está o Linux. Isso fornece um nível de abstração entre o hardware do dispositivo e contém todos os drivers de hardware essenciais, como câmera, teclado, tela, etc.
Além disso, o kernel lida com todas as coisas que o Linux é realmente bom, como rede e uma vasta gama de drivers de dispositivos, que tira a dor de interface com hardware periférico.
Conclusão
É muito importante que o desenvolvedor Android conheça e saiba usar bem os recursos do sistema. Com um melhor aproveitamento dos recursos é possível desenvolver aplicativos de alta qualidade e aproveitar melhor os dispositivos, como tablets, celulares, TV’s, smart watches e etc.
Deixe suas duvida aqui nos comentários que irei responder todas. As suas duvidas podem ser as duvidas de outras pessoas.
Até mais!!!