Universidade Federal de Mato Grosso
 Campus Universitário do Araguaia
      Ciência da Computação




                                      Leonardo da Silva Sousa
Tópicos
   Android: o que é?
   Arquitetura do Android;
   Camada 1: applications;
   Camada 2: middleware;
   Camada 3: Linux Kernel;
   Dalvick Virtual Machine;
   Transformando um código Java em um executável DVM;
   Arquitetura de uma Aplicação;
   Componentes uma Aplicação;
   AndroidManifest
Android: o que é?
 Plataforma para dispositivos móveis baseada
 em Linux com interface de programação em
 Java.

 Desenvolvida pela Open Handset Alliance
 (OHA), liderada pela Google.
Android: o que é?
 Inclui um sistema operacional, um
 middleware e uma chave para as aplicações.

 Dalvick Virtual Machine (DVM).


 Android    SDK: um compilador, um
 depurador de código e um emulador de
 dispositivos.
Arquitetura do Android
 A arquitetura por trás do sistema operacional
 Android é representada através de uma pilha.

 Três camadas: na parte superior encontram-
 se as applications (app), na camada
 intermediária o middleware e na base
 encontra-se o Linux Kernel.
Arquitetura do Android
Camada 1: applications
 A primeira camada é formada por uma lista
 de aplicações padrões que executam no
 sistema operacional.

 Nesta camada também ficará as aplicações
 desenvolvidas por terceiros.
Camada 2: middleware
 A segunda camada é formada pelo:


framework      da     aplicação    (aplication
 framework)

o conjunto de bibliotecas (libraries);


 ambiente de execução (runtime Android).
Application Framework
 Conjunto de componentes pré-instalados
 nos dispositivos.

 Permite   que novas estruturas       sejam
 utilizadas para futuras aplicações.

 Prioriza a reutilização de código.
Application Framework
Libraries
 Bibliotecas nativas do Android.


 Essas bibliotecas são pré-instaladas pelo o
 fabricante.

 São todas escritas em        linguagem   de
 programação C ou C++
Libraries
Android Runtime
 É nesta subcamada que se encontra as
 principais bibliotecas Java e a máquina
 virtual Dalvick (DVM).

 Diferentes tanto do JSE quanto do JME.


 Várias sobreposições:   facilidade       aos
 programadores que conhecem Java.
Camada 3: Linux Kernel
 Conjunto de drives que formam o Linux Kernel.


 Atua como uma camada de abstração entre o
 hardware e o software.

 Responsável       por      serviços  como
 segurança, gerenciamento de memória e de
 processos, rede e controle de drives.
Dalvick Virtual Machine
 Máquina     virtual   Java   otimizada   para
 dispositivos móveis.

 Programador tem acesso total à linguagem de
 programação Java apesar de alguns pacotes e
 APIs do JSE não serem suportados.

 O código Java é compilado com um compilador
 Java padrão e depois são interpretados pela
 Dalvick.
Transformando um código Java em
um executável DVM
Arquitetura de uma Aplicação
 A arquitetura de uma aplicação Android ao
 contrário de uma aplicação para desktop é
 baseado em      componentes que se
 comunicam entre si, isso é feito usando
 Intents.

 Intents é um objeto mensagem que serve
 para comunicação entre as aplicações ou
 para iniciar uma nova aplicação.
Componentes uma Aplicação
 São cada bloco que uma aplicação é divida.


Activities: representa uma única tela com o
 usuário. Ex: gerenciador de email.

Services: é um componente que executa em
 background. Ex: player de música.
Componentes uma Aplicação
Content Providers: gerencia o compartilha-
 mento de dados.

Responsável por permitir que uma aplicação
 acesse os dados de um banco dados, de um
 sistema de arquivos, na web ou em qualquer
 outro sistema de armazenamento que a
 aplicação possa acessar.
Componentes uma Aplicação
Broadcast Receivers: responsável por receber
 e reagir à broadcast.

 Um exemplo de broadcast é quando o
 sistema anuncia que a bateria está acabando.
AndroidManifest
 Antes da aplicação iniciar a execução é
 necessário que o sistema conheça todos os
 componentes que a aplicação necessitará para
 sua execução.

 Essas informações são encontradas no arquivo
 “AndroiManifest.xml”

Plataforma Android

  • 1.
    Universidade Federal deMato Grosso Campus Universitário do Araguaia Ciência da Computação Leonardo da Silva Sousa
  • 2.
    Tópicos  Android: o que é?  Arquitetura do Android;  Camada 1: applications;  Camada 2: middleware;  Camada 3: Linux Kernel;  Dalvick Virtual Machine;  Transformando um código Java em um executável DVM;  Arquitetura de uma Aplicação;  Componentes uma Aplicação;  AndroidManifest
  • 3.
    Android: o queé?  Plataforma para dispositivos móveis baseada em Linux com interface de programação em Java.  Desenvolvida pela Open Handset Alliance (OHA), liderada pela Google.
  • 4.
    Android: o queé?  Inclui um sistema operacional, um middleware e uma chave para as aplicações.  Dalvick Virtual Machine (DVM).  Android SDK: um compilador, um depurador de código e um emulador de dispositivos.
  • 5.
    Arquitetura do Android A arquitetura por trás do sistema operacional Android é representada através de uma pilha.  Três camadas: na parte superior encontram- se as applications (app), na camada intermediária o middleware e na base encontra-se o Linux Kernel.
  • 6.
  • 7.
    Camada 1: applications A primeira camada é formada por uma lista de aplicações padrões que executam no sistema operacional.  Nesta camada também ficará as aplicações desenvolvidas por terceiros.
  • 8.
    Camada 2: middleware A segunda camada é formada pelo: framework da aplicação (aplication framework) o conjunto de bibliotecas (libraries);  ambiente de execução (runtime Android).
  • 9.
    Application Framework  Conjuntode componentes pré-instalados nos dispositivos.  Permite que novas estruturas sejam utilizadas para futuras aplicações.  Prioriza a reutilização de código.
  • 10.
  • 11.
    Libraries  Bibliotecas nativasdo Android.  Essas bibliotecas são pré-instaladas pelo o fabricante.  São todas escritas em linguagem de programação C ou C++
  • 12.
  • 13.
    Android Runtime  Énesta subcamada que se encontra as principais bibliotecas Java e a máquina virtual Dalvick (DVM).  Diferentes tanto do JSE quanto do JME.  Várias sobreposições: facilidade aos programadores que conhecem Java.
  • 14.
    Camada 3: LinuxKernel  Conjunto de drives que formam o Linux Kernel.  Atua como uma camada de abstração entre o hardware e o software.  Responsável por serviços como segurança, gerenciamento de memória e de processos, rede e controle de drives.
  • 15.
    Dalvick Virtual Machine Máquina virtual Java otimizada para dispositivos móveis.  Programador tem acesso total à linguagem de programação Java apesar de alguns pacotes e APIs do JSE não serem suportados.  O código Java é compilado com um compilador Java padrão e depois são interpretados pela Dalvick.
  • 16.
    Transformando um códigoJava em um executável DVM
  • 17.
    Arquitetura de umaAplicação  A arquitetura de uma aplicação Android ao contrário de uma aplicação para desktop é baseado em componentes que se comunicam entre si, isso é feito usando Intents.  Intents é um objeto mensagem que serve para comunicação entre as aplicações ou para iniciar uma nova aplicação.
  • 18.
    Componentes uma Aplicação São cada bloco que uma aplicação é divida. Activities: representa uma única tela com o usuário. Ex: gerenciador de email. Services: é um componente que executa em background. Ex: player de música.
  • 19.
    Componentes uma Aplicação ContentProviders: gerencia o compartilha- mento de dados. Responsável por permitir que uma aplicação acesse os dados de um banco dados, de um sistema de arquivos, na web ou em qualquer outro sistema de armazenamento que a aplicação possa acessar.
  • 20.
    Componentes uma Aplicação BroadcastReceivers: responsável por receber e reagir à broadcast.  Um exemplo de broadcast é quando o sistema anuncia que a bateria está acabando.
  • 21.
    AndroidManifest  Antes daaplicação iniciar a execução é necessário que o sistema conheça todos os componentes que a aplicação necessitará para sua execução.  Essas informações são encontradas no arquivo “AndroiManifest.xml”