Você está na página 1de 37

Universidade Federal do Maranho UFMA

Programa de Ps-graduao em Engenharia de Eletricidade PPGEE


rea de Concentrao: Cincia da Computao
Disciplina: Introduo a Computao Mvel
Professor: Dr. Francisco Jos da Silva e Silva

PLATAFORMA ANDROID
Ariel Soares Teles
arielsoaresteles@gmail.com

Agenda

Conceitos

Principais Caractersticas Tcnicas

Arquitetura

Blocos de Construo (de uma aplicao)

Ciclo de Vida (Aplicao e Atividade)

Como desenvolver para Android?

Exemplo Simples de Aplicao

Referncias

23/09/2010

Plataforma Android

O que o Android?

uma plataforma de software de cdigo aberto que


inclui um sistema operacional para dispositivos
mveis baseado em Linux;
uma plataforma completa para dispositivos mveis,
e inclui:

Sistema Operacional (Kernel GNU Linux)

Middleware

Aplicaes

Android surgiu da parceria da Google com a Open


Handset Alliance (OHA), aliana onde figuram os
principais atores do mercado mvel mundial.

23/09/2010

Plataforma Android

Open Handset Alliance

Criada e fundada pela Google, nasceu para o


desenvolvimento e implementao do Android em
terminais mveis;
Atualmente formada por mais de 30 organizaes do
setor mvel, com o objetivo de acelerar as inovaes nas
comunicaes mveis e oferecer a seus consumidores um
melhor servio;
Dentre as empresas que a formam esto:

Fabricantes de Dispositivos Mveis Samsung, LG, HTC, Motorola...

Fabricantes de Componentes Texas Instruments, Intel, Nvidia...

Fabricantes de Software PV, Ebay, Esmertec...

Operadoras Mveis de todo mundo T-Mobile. Italia Telecom, China Mobile...

Empresas de Comercializao Aplix, Noser, Systems...

23/09/2010

Plataforma Android

Filosofia de Desenvolvimento

Android nasceu com uma filosofia de cdigo aberto;


A ideia que programadores de todo o mundo contribuam
de maneira livre e constante com o seu desenvolvimento;
liberado tambm para que os fabricantes desenvolvam
aplicaes especficas para seus telefones;
importante ressaltar que no pelo fato da licena ser
de cdigo aberto que os desenvolvedores no cobrem
pelos programas que venham a desenvolver.

23/09/2010

Plataforma Android

Principais Caractersticas Tcnicas

Baseado em Linux, onde todos os servios bsicos, como


gerenciamento de drivers, memria e segurana, esto
baseados nesse SO de cdigo aberto;
Dalvik o nome da mquina virtual onde executam as
aplicaes;

Ela otimizada para requerer pouca memoria e poder usar


vrias instancias simultaneamente sem que o dispositivo fique
lento;
Os executveis tem uma extenso .dex, que uma verso
otimizada do .class;
A linguagem em que se programa Java (estratgia da Google).

23/09/2010

Plataforma Android

Principais Caractersticas Tcnicas

Navegador web integrado, baseado no projeto open source


Webkit o mesmo do iPhone e Nokia srie 60;

Ele de cdigo aberto;


Atua como base para varias aplicaes que existem atualmente no
mercado, como o navegador Safari.

Utiliza o SQLite para armazenamento de dados estruturados;

J vem includo na SDK;

Pode acessar totalmente as suas classes;

possvel utilizar tambm outros BDs.

Bluetooth, EDGE, 3G e WiFi: foco nas principais tecnologias de


transmisso de dados sem fio;
Cmera e GPS: Ter o celular como uma ferramenta para interao
com redes sociais;

23/09/2010

Plataforma Android

Principais Caractersticas Tcnicas

Biblioteca de grficos otimizada para


dispositivos mveis: biblioteca para grficos 2d
e 3d baseada na especificao OpenGL ES
1.0;
Suporte multimdia: compatibilidade com os
principais formatos existentes, dentre eles:
mpeg4, mp3, aac, amr, jpg, png e gif.
Telefonia com tecnologia GSM: As aplicaes
podem manipular operaes telefnicas, caso
o fabricante permita esse acesso;

23/09/2010

Plataforma Android

Principais Caractersticas Tcnicas

Framework de desenvolvimento de aplicaes:

Reutilizao de cdigo;
Facilidade de acesso a recursos exclusivos e
manuteno;

Ambiente de desenvolvimento com plugin para


Eclipse, incluindo:

23/09/2010

Emulador;
Ferramentas para debug e superviso de memria
e desempenho.
Plataforma Android

23/09/2010

Plataforma Android

10

Arquitetura do Android

A arquitetura da plataforma Android dividida


em quatro camadas:

Kernel GNU Linux;

Bibliotecas.

Framework para aplicaes;

As prprias aplicaes;

23/09/2010

Alm da poro runtime, necessria para a


execuo dos aplicativos no dispositivo.

Plataforma Android

11

23/09/2010

Plataforma Android

12

Linux Kernel

A camada mais baixa da arquitetura, Kernel Linux, a


responsvel por gerenciar:

Processos e threads;

Memria;

Arquivos e pastas

Redes;

Drivers dos dispositivos;

Energia.

Os drivers de dispositivo fornecidos incluem Display,


cmera, teclado, WiFi, memria Flash, udio, etc.

23/09/2010

Plataforma Android

13

Android Runtime

A base de desenvolvimento do Android Java,


porm no existe uma JVM e sim outra maquina
virtual, a Dalvik, otimizada para interpretar cdigos
em dispositivos mveis;
Ao compilar o bytecode (.class), este convertido
para o formato especfico da mquina virtual Dalvik,
o .dex (Dalvik Executable), que representa a
aplicao compilada;
Depois da aplicao Android ter sido compilada
gerado um arquivo nico, neste caso com a
extenso .apk (Android Package File).

23/09/2010

Plataforma Android

14

Native Libraries

A camada de Bibliotecas formada por um


conjunto de bibliotecas escritas em C/C++;
Tudo disponvel para os desenvolvedores
atravs do Framework de aplicaes;
Entre as mais importantes encontra-se o
SQLite, OpenGL, WebKit, FreeType, Secure
Sockets Layer (SSL) e as bibliotecas de mdia
que permitem reproduzir arquivos de udio,
vdeo e imagem.

23/09/2010

Plataforma Android

15

Java SDK

O Framework uma base para as aplicaes, onde os


desenvolvedores tem acesso completo;
Pensando na reutilizao dos componentes, uma aplicao
pode capturar funcionalidades de outra criada anteriormente
para o seu desenvolvimento;
Nele esto inclusos:

Telephony manager: gerncia de hardware do dispositivo;


View system: conjunto de telas (componentes grficos) para
desenvolver uma aplicao;
Content providers: dados que so compartilhados entre vrias
aplicaes, como por exemplo, a agenda;
Resource Manager: administrador de recursos que permite acessar a
recursos como Strings, grficos, arquivos de layout;

23/09/2010

Plataforma Android

16

Java SDK

23/09/2010

Notification Manager: administrador de notificaes


para mostrar alertas. As aplicaes podem adicionar
eventos numa barra de de notificaes;
Activity Manager: administrador de atividades. Este
gerencia o ciclo de vida das aplicaes e da
navegao entre elas;
Location Manager: servio de localizao. Permite o
celular receber avisos, notificaes, eventos, etc. de
um lugar especfico ou de sua localizao atual;
Servio XMPP. Envio de mensagens para aplicaes
entre terminais Android. Pode ser utilizado entre jogos
multiusurio, por exemplo.
Plataforma Android

17

Applications

Conjunto de aplicaes do Android, dentre as


bsicas encontra-se um navegador Web, um
cliente de e-mail, um calendrio, entre outras;
Todas feitas em linguagem Java.

23/09/2010

Plataforma Android

18

Blocos de Construo

Na hora de desenvolver aplicaes, estes so


construdos com baseados em blocos de
construo bsicos, onde se pode citar os mais
importantes:

Activity;

Intent e IntentReceiver;

Service;

Content Provider.

Nem todas aplicaes necessitam de todos os


blocos.

23/09/2010

Plataforma Android

19

Activity

o mais utilizado;
Uma definio para este bloco seria uma tarefa que executada
com a aplicao e tem uma interao com o usurio;
Se implementa extendendo a classe activity e cada uma delas
tem um processo de vida prprio;
Funcionamento:

A maioria das aplicaes tem telas mltiplas e cada vez que se adiciona
uma nova, a anterior retirada e guardada numa pilha;
Graas a essa pilha o usurio pode navegar para trs pelas activities
que esto ativas;
Se o Android considerar melhor, pode priorizar ou excluir uma activity
da pilha por questes de memria;
Exemplo: Mensagem SMS x Calculadora.

23/09/2010

Plataforma Android

20

Intent

Intent um pedido para realizar uma ao;


como fazer uma tentativa de algo ou dizer
quero fazer uma coisa;
um evento genrico de uma aplicao, criado
por ela mesma;
Pode ser um evento predefinido pelo Android,
como fazer chamada, abrir um navegador, enviar
um e-mail;
Intent necessrio para navegar entre as telas de
uma aplicao.

23/09/2010

Plataforma Android

21

IntentReceiver

Um IntentReceiver chamado para executar


uma aplicao, por um Intent de outra
aplicao que j est em execuo;
Diferentemente de um Intent, a aplicao no
tem que est em execuo para que execute
um IntentReceiver;

23/09/2010

Ou seja, o usurio no tem que est interagindo


com o programa no momento da chamada de um
IntentReceiver.
Plataforma Android

22

Service

Um servio equivalente a uma Daemon ou


servio de um sistema operacional tradicional;
executado em background sem necessidade
de interagir com o usurio.

23/09/2010

Plataforma Android

23

Content Provider

Um provedor de contedo usado quando os


dados de uma aplicao so compartilhados
com outras;
Essa classe implementa um conjunto de
mtodos padres para as aplicaes que
compartilham dados armazenados e extraem a
informao que contm no Content Provider.

23/09/2010

Plataforma Android

24

Ciclo de Vida de uma Aplicao

No Android o sistema que determina o cliclo de vida de


uma aplicao e no ela mesma;
Ou seja, ele determina sua durao baseado nas partes
da aplicao que esto rodando no momento e a
importncia destas para o usurio e na memria
disponvel;
Ele classifica os processos de maneira hierrquica de
acordo com sua importncia num determinado momento
para o sistema, da seguinte maneira:

Foreground process: processo em primeiro plano no qual o


usurio pode est interagindo, utiliza uma Activity e o sistema
s o mata em ltima opo alta prioridade;

23/09/2010

Plataforma Android

25

Ciclo de Vida de uma Aplicao

Visible process: um processo que utiliza uma Activity,


mas no est em primeiro plano, apesar de visvel;

Um exemplo sera uma tela lanada como dilogo, onde se


interage com ele, mas se continua vento a tela principal por trs.
Este tipo de processo tambm tem prioridade e s eliminado
em estados de memria muito crtico, igual um Foreground
process.

Background process: processo que utiliza uma Activity, mas


no est visvel na tela;

Ou seja, se esse processo for morto no ter uma repercusso


direta para o usurio.

23/09/2010

Plataforma Android

26

Ciclo de Vida de uma Aplicao

Empty process: processo que no utiliza nenhum


componente visualmente ativo;

O sistema os eliminar com frequncia e pode mant-los vivos


se haver memria suficiente para melhor o tempo de ativao
de outro componente dessa aplicao.

importante ressaltar que Activity, IntentReceiver e


Services influenciam de maneira importante no tempo de
execuo das aplicaes;

Possveis erros no uso deste podem fazer que processos


importantes para o usurio finalizem antes do tempo.

23/09/2010

Plataforma Android

27

Ciclo de Vida de uma Atividade (Activity)

Parecido com o ciclo de vida de uma aplicao,


porm trabalha com uma pilha de activities;
Nela o sistema empilha exclusivamente activities que
esto em execuo;
Quando se muda de uma Activity para outra, a nova
Activity que criada, colocada na parte superior da
pilha e passa a ser a Activity que executa nesse
momento, enquanto a anterior fica por baixo na pilha;
Com isso, deve-se preocupar para que a Activity
principal que est no topo da pilha no seja
eliminada (morta) da pilha.

23/09/2010

Plataforma Android

28

Ciclo de Vida de uma Atividade (Activity)

Uma Activity pode ter quatro estados, de acordo com sua


interao com o usurio:

Ativa ou em execuo: ocorre quando a Activity est em execuo


na parte superior da pilha, sendo a ltima Activity criada pela
aplicao e ltima que o sistema tentar eliminar;
Em pausa: ocorre quando a Activity deixa de ser a principal, mas
ainda continua visvel na tela. Isto possvel em activities
transparentes que deixam ver a inferior. Ela continua viva
mantendo toda informao do usurio;
Parada: diferencia de pausa por no ser visvel na tela. Continua
mantendo toda informao do usurio, mas pode ser eliminada
pelo sistema para liberar memria;
Eliminada: Activity morta caso o sistema necessite de memria ou
simplesmente porque a aplicao tenha pedido.

23/09/2010

Plataforma Android

29

23/09/2010

Plataforma Android

30

23/09/2010

Plataforma Android

31

Ciclo de Vida

Se pode ver que o ciclo de vida de uma


aplicao est diretamente relacionado com o
ciclo de vida de uma Activity, dando prioridade
para os processos que tem pelo menos uma
ativa;
Conclui-se ento que o Android considera com
prioridade aqueles processos que o usurio
est interagindo e faz o possvel para que no
seja afetado em estados crticos de memria.

23/09/2010

Plataforma Android

32

O que necessrio para desenvolver


para a plataforma Android?

JDK;

Eclipse;

Android SDK;

Plug-in ADT (Android Development Tools) para


o Eclipse;
Configurao de variveis de ambiente.

23/09/2010

Plataforma Android

33

Exemplo Simples

Localizador GPS

23/09/2010

Plataforma Android

34

Referncias

Rick Rogers, John Lombardo, Zigurd Mednieks, and


Blake Meike. Android Application Development. First
Edition. USA, Sebastopol, CA. OReilly Media, Inc., 2009.
Judit Balaguero Pea. Trabalho de Concluso de Curso:
Ingeniera Tcnica de Telecomunicaciones, especialidad
Telemtica. Estudio de la plataforma Android.
Orientador: Antoni Oller Arcas. 2008
Ed Burnette. Hello, Android: Introducing Googles
Mobile Development Platform. 3rd Edition. The
Pragmatic Bookshelf Raleigh, USA, 2010.
Sayed Hashimi, Satya Komatineni and Dave MacLean.
Pro Android 2. USA, 2010.

23/09/2010

Plataforma Android

35

Dvidas?
Perguntas?
Sugestes?

23/09/2010

Plataforma Android

36

Obrigado ! ! !

23/09/2010

Plataforma Android

37

Você também pode gostar