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?

  1. Plataforma open-source completa de desenvolvimento para aplicativos móveis.
  2. Sistema operacional baseado no Linux.

Open Handset Alliance (OHA)

  1. Definir uma plataforma única e aberta para celulares para satisfazer os consumidores com o produto final.
  2. Criar uma plataforma moderna e flexível para o desenvolvimento de aplicações corporativas.
  3. Atualmente, esta aliança é a responsável por manter o sistema Android.

Principais Funcionalidades

  1. Sistema operacional Linux.
  2. Máquina virtual Dalvik.
  3. Código aberto.
  4. Navegador (*Browser*) integrado.
  5. Gráficos 2D e 3D otimizados.
  6. SQLite para armazenamento de dados.
  7. Suporte para áudio, vídeo e vários formatos (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF).
  8. 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

  1. assets: Utilizado para colocar recursos extras do seu aplicativo, como páginas HTML, arquivos de texto, fontes TrueType, arquivos de áudio, etc.
  2. 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

  1. Arquivo XML que contém as configurações necessárias para a execução do aplicativo.
  2. 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() ou onRestart() 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() e delete()
Métodos auxiliares para manipulação de dados.

Entradas relacionadas: