Conceitos Fundamentais e Arquitetura do Android
Classificado em Computação
Escrito em em
português com um tamanho de 7,38 KB
O que é o Android?
- Plataforma open-source completa de desenvolvimento para aplicativos móveis.
- Sistema operacional baseado no Linux.
Open Handset Alliance (OHA)
- Definir uma plataforma única e aberta para celulares para satisfazer os consumidores com o produto final.
- Criar uma plataforma moderna e flexível para o desenvolvimento de aplicações corporativas.
- Atualmente, esta aliança é a responsável por manter o sistema Android.
Principais Funcionalidades
- Sistema operacional Linux.
- Máquina virtual Dalvik.
- Código aberto.
- Navegador (*Browser*) integrado.
- Gráficos 2D e 3D otimizados.
- SQLite para armazenamento de dados.
- Suporte para áudio, vídeo e vários formatos (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF).
- GMS, Bluetooth, EDGE, 3G, WiFi.
Arquitetura do Android
Camada Applications
- Nesta camada encontram-se aplicações fundamentais, como Email, SMS, calendário, mapas, navegador (*browser*), entre outras.
Camada Applications Framework
- Nesta camada encontram-se os principais recursos para facilitar a criação de aplicativos Android (como, por exemplo, botões e caixas de texto).
Camada Libraries
- O Android possui uma série de bibliotecas, criadas em C/C++ que são utilizadas nos componentes da camada Application Framework.
Camada Android Runtime
- Nesta camada é detectado o ambiente de execução ou Virtual Machine, no caso, o Dalvik. O Dalvik é responsável pela execução das classes Java da sua aplicação.
Camada Linux Kernel
- O Android é baseado no Linux versão 2.6 para a execução dos serviços básicos, como segurança, gerenciamento de memória e de processos.
- Esta camada faz a ponte entre o hardware e as diversas camadas da sua aplicação.
Diretórios Essenciais
- assets: Utilizado para colocar recursos extras do seu aplicativo, como páginas HTML, arquivos de texto, fontes TrueType, arquivos de áudio, etc.
- bin: Ficam os arquivos gerados no momento da construção (*build*) do projeto, como o pacote .apk (pacote instalável do aplicativo no Android).
O Arquivo AndroidManifest.xml
- Arquivo XML que contém as configurações necessárias para a execução do aplicativo.
- O AndroidManifest.xml merece atenção especial, pois é onde definimos informações importantes, como:
- O nome do pacote padrão do projeto;
- A configuração dos componentes usados no aplicativo;
- A versão da API do Android que o aplicativo irá suportar;
- A versão do próprio aplicativo;
- E várias outras configurações.
Encapsulamento
- Tem como objetivo centralizar o controle das informações dos objetos, facilitando a manutenção e a detecção de erros.
Activity
- Define uma tela na aplicação.
- Controla seu estado.
- Permite a passagem de parâmetros de uma tela para outra.
- Define métodos que serão chamados quando o usuário interagir (ex: pressionar um botão).
Ciclo de Vida da Activity
Uma Activity pode se encontrar nos seguintes estados:
- Executando.
- Temporariamente interrompida em segundo plano.
- Completamente destruída.
Métodos Principais do Ciclo de Vida
onCreate(bundle)- Obrigatório. Este método é chamado uma única vez. Nele, deve-se criar uma View e chamar o método
setContentView(view). onStart()- É executado assim que o método
onCreate()ouonRestart()for finalizado. Ocorre quando a View está se tornando visível ao usuário. onRestart()- Método chamado quando uma Activity foi parada temporariamente e está sendo reiniciada. Este método chama
onStart()automaticamente.
View
- Tem o papel de exibir elementos visuais.
- Pode ser um simples elemento gráfico (botão, checkbox, imagem) ou uma View complexa que atua como gerenciador de layout.
setContentView(view)
- O método
setContentView(view)faz a ligação entre a Activity e a View, recebendo como parâmetro a View que será exibida na tela. - Sua chamada deve ser feita sempre no método
onCreate(bundle).
Intent
- Uma Intent é uma mensagem enviada por um componente de um aplicativo ao núcleo do Android.
- O objetivo é informar ao Sistema Operacional (SO) que se deseja realizar uma ação, ou seja, uma mensagem informando a intenção de se realizar algo no sistema.
- Através da Intent, podemos pedir para o Android chamar um determinado componente do nosso aplicativo ou um componente de outro aplicativo instalado no dispositivo.
Tipos de Intent
Intent Explícita
- Nesta forma, devemos informar exatamente o nome da Activity que queremos chamar.
- O código fica altamente acoplado, o que pode causar problemas se for necessário alterar a Activity a ser invocada.
Intent Implícita
- Nesta forma, é passada apenas uma string informando o nome definido para o componente que desejamos invocar.
- Este nome é definido através de um **IntentFilter**.
- Tem a grande vantagem de desacoplar o código, pois não é necessário saber o nome da classe do componente.
Actions Comuns
- ACTION_CALL: Inicia o aplicativo de telefone/chamada.
- ACTION_MAIN: Responsável por definir a Activity inicial da aplicação.
- ACTION_VIEW: Chama, por exemplo, o navegador a partir de um endereço (URL).
SQLite (Persistência de Dados)
SQLiteDatabase- Classe que permite a implementação SQL. É robusta o suficiente para atender a todas as necessidades de um aplicativo.
Cursor- Interface para ter acesso aos resultados de uma consulta ao banco de dados. Esta classe disponibiliza métodos para navegar entre as linhas do resultado.
SQLiteOpenHelper- Utilizado para gerenciar o banco de dados, ou seja, fazer a criação e a atualização do banco de dados do seu aplicativo.
onCreate()- Método chamado automaticamente quando é feita a primeira conexão com o banco.
onUpdate()- Método chamado quando a versão do banco de dados é modificada.
execSQL()- Utilizado para executar qualquer SQL que não retorna resultados (
INSERT,UPDATE,DELETE,CREATE TABLE,DROP TABLE). insert(),update()edelete()- Métodos auxiliares para manipulação de dados.