Buscar

Android - Aula 1 - Dispositivos Móveis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 100 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 100 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 100 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Erisvaldo Gadelha Saraiva Júnior 
Faculdade de Tecnologia de João Pessoa (FATEC-JP) 
Especialização em Desenvolvimento para Dispositivos Móveis 
Disciplina: Tecnologias para Dispositivos Móveis 
Android 
E-mail: erisvaldojunior@gmail.com 
Site: http://erisvaldojunior.com 
Twitter: @erisvaldojunior 
 
 
 
Empreendedor Yupi Studios 
(http://yupistudios.com); 
 
Desenvolvedor Mobile (LAViD); 
 
Mestrando em Informática (UFPB); 
 
Analista de Sistemas (Cehap). 
 
 
 
 
Sobre mim 
Sobre a Yupi Studios 
www.yupistudios.com 
Games (MinerMan) 
Aplicativos (Pump Me Up!) 
Soluções Corporativas (Cardápio Digital) 
O
rg
an
iz
e
 w
it
h
 S
e
ct
io
n
s 
O que será exposto na aula? 
 
 
 
 
 
 
Conceitos Introdutórios; 
 
Mercado Mobile; 
 
Expor as Tecnologias e Tendências; 
 
Introduzir o Android e preparar o 
ambiente de desenvolvimento. 
 
 
 
C
o
n
ce
it
o
s 
In
tr
o
d
u
tó
ri
o
s 
Era da Computação Ubíqua 
 
C
o
n
ce
it
o
s 
In
tr
o
d
u
tó
ri
o
s 
Computação Móvel / Pervasiva / Ubíqua 
 
C
o
n
ce
it
o
s 
In
tr
o
d
u
tó
ri
o
s 
Computação Móvel / Pervasiva / Ubíqua 
 
C
o
n
ce
it
o
s 
In
tr
o
d
u
tó
ri
o
s 
Computação em Nuvem (Cloud Computing) 
 
C
o
n
ce
it
o
s 
In
tr
o
d
u
tó
ri
o
s 
Computação em Nuvem (Cloud Computing) 
 
C
o
n
ce
it
o
s 
In
tr
o
d
u
tó
ri
o
s 
Realidade Aumentada 
 
Roteiro da Aula 
Entendendo o Mundo da Mobilidade 
 
VISÃO GERAL 
DO MERCADO 
 
 PLATAFORMAS E 
TENDÊNCIAS 
 
 
 
 
A PLATAFORMA 
ANDROID 
 
 
 VISÃO GERAL DO 
MERCADO 
Números do Mercado Mobile no Brasil e no Mundo 
O
rg
an
iz
e
 w
it
h
 S
e
ct
io
n
s 
O Mercado Mobile 
 
 
 
Mercado brasileiro de telefonia móvel; 
 
Números do mercado internacional; 
 
Mercado de jogos (Brasil e mundo). 
Celulares no Brasil (2007 a 2009) 
Market Share das operadoras no Brasil (2007 a 2009) 
Mercado brasileiro de celulares (2010) 
 
202 milhões e 944 mil celulares 
Crescimento de 16,7%; 
104,7 celulares a cada 100 habitantes. 
 
 
 
Operadoras 
Vivo - 29,7% 
Claro - 25,4% 
TIM – 25,1% 
Oi – 19,4% 
 
 
Celulares no mundo (2000 a 2009) 
Principais mercados de celular no mundo (2008 e 2009) 
Operadoras de telefonia no mundo (2008 e 2009) 
Market Share dos fabricantes (2005 a 2007) 
Market Share dos fabricantes (2009 e 2010) 
Mercado americano de jogos para dispositivos móveis 
Mercado mundial de jogos para dispositivos móveis 
Gartner 
 
 
 
 
 
Plataformas e Tendências 
Plataformas de Mobilidade e Tendências do Mercado 
SOs para Desenvolvimento (no Presente) 
iOS Android 
RIM SYMBIAN 
PALM OS Windows Mobile MAEMO 
iOS (Apple) 
iPod, iPhone (2007) e iPad (2010); 
 
Baseado no Mac OS X (Objective-C); 
 
Kit de desenvolvimento exclusivo para 
Mac OS; 
 
Aplicativos exclusivamente na Apple 
App Store. 
Android (Open Handset Alliance, liderada pelo Google) 
Plataforma aberta baseada em Linux; 
 
Android Development Tools (ADT) 
Plugin para Eclipse; 
 
Desenvolvimento em Java (Linux / 
Windows / Mac OS); 
 
1º smartphone: HTC G1 (2008); 
1º tablet: Samsung Galaxy Tab (2010). 
Plataformas para Desenvolvimento (no Presente) 
JavaME 
Flash Lite 
PyS60 
BREW 
JavaME 
Quase 2 bilhões de aparelhos; 
 
Grande comunidade de 
desenvolvedores; 
 
Atingiu 95% dos aparelhos em 2007. 
Comparativo entre JavaME e Flash Lite 
Comparativo entre Tecnologias 
SOs para Desenvolvimento (Apostas para o Futuro) 
Windows 
Phone 7 
MeeGo BADA 
O
rg
an
iz
e
 w
it
h
 S
e
ct
io
n
s 
Mercado Mobile em 2010 (Divisão dos SOs) 
 
Segundo a AdMob, dados de 2010, o Android ocupa a segunda 
posição entre os sistemas operacionais para smartphone no mundo, 
possuindo 26% do mercado e atrás apenas do iOS, que detém 40%. 
 
 
O
rg
an
iz
e
 w
it
h
 S
e
ct
io
n
s 
Mercado Mobile em 2010 (Crescimento dos SOs) 
 
Um aspecto interessante, porém, é o crescimento do Android no 
mercado. O SO vem em uma ascendente contínua, ao contrário do 
iOS, que vem oscilando, e do Symbian OS, que perdeu mercado. 
 
 
O
rg
an
iz
e
 w
it
h
 S
e
ct
io
n
s 
Mercado Mobile em 2010 (Divisão dos Fabricantes) 
 
A AdMob também mostra que a Apple (aparelhos iOS) possui a maior fatia 
de smartphones do mercado. A Nokia (aparelhos Symbian e Maemo) 
detém a segunda posição. 
 
 
O
rg
an
iz
e
 w
it
h
 S
e
ct
io
n
s 
Android deve superar iOS em breve 
 
Várias pesquisas e especialistas apontam que o Android deve se tornar 
mais popular que o iOS nos próximos anos. 
 
 
 
 
 
 
 
 
 
 
Android deve superar sistema operacional do iPhone em 2012, diz estudo. 
http://www.tecnologia3g.com.br/site/pt/page/noticias_detalhe.asp?cod=261 
 
Android é a plataforma que mais cresce, diz consultoria 
http://tecnologia.ig.com.br/noticia/2010/11/03/android+e+a+plataforma+que
+mais+cresce+diz+consultoria+9956087.html 
 
Co-fundador da Apple (Steve Wozniak) acredita que Android ganhará corrida 
entre smartphones 
http://olhardigital.uol.com.br/produtos/digital_news/co-fundador-da-apple-
acredita-que-android-ganhara-corrida-entre-smartphones/14935 
 
Demanda por desenvolvedores Android cresceu 710% em um ano 
http://imasters.com.br/noticia/18931/carreira/demanda_por_desenvolvedore
s_android_cresceu_710_em_um_ano/ 
 
 
 
 
 
 
 
Lojas de Aplicativos para Dispositivos Móveis (App Stores) 
Modelo Antigo (antes das App Stores) 
Desenvolvedor / 
Pequena Empresa 
Publisher / Grande Empresa Operadoras 
A porcentagem final para o desenvolvedor independente ou 
pequena empresa acabava sendo menor que 20% do total. 
Lojas de Aplicativos para Dispositivos Móveis (App Stores) 
Novo Modelo (era das App Stores) 
Desenvolvedor / 
Empresa 
Loja de aplicativos do 
Fabricante ou Operadora 
A porcentagem final para o desenvolvedor independente ou 
empresa agora gira em torno de 70% do total. 
A
p
p
 S
to
re
s 
Apple App Store 
 
Loja de aplicativos para iOS (iPod, iPhone e iPad) gerenciada 
pela Apple e disponível através dos próprios aparelhos. 
 
 Lançada em julho de 2008; 
 
340 mil aplicativos e 10 bilhões de downloads até 
janeiro de 2011; 
 
Disponível em cerca de 90 países; 
 
Share de 70% Desenvolvedor e 30% Apple; 
 
Desenvolvedor paga inscrição e anuidade no valor 
de U$ 99,00. 
A
p
p
 S
to
re
s 
Google Android Market 
 
Loja de aplicativos para Android gerenciada pela Google e 
disponível através dos próprios aparelhos. 
 
 Lançado em outubro de 2008; 
 
Mais de 200 mil aplicativos e 3 bilhões de 
downloads até janeiro de 2011; 
 
Disponível em cerca de 48 países; 
 
Share de 70% Desenvolvedor e 30% Google; 
 
Desenvolvedor paga taxa única de inscrição no 
valor de U$ 25,00. 
O
rg
an
iz
e
 w
it
h
 S
e
ct
io
n
s 
Comparativo Android Market X Apple App Store 
 
Dados referentes ao ano de 2009, quando a distância entre 
Android Market e a Apple App Store ainda era muito grande. 
 
 
O
rg
an
iz
e
 w
it
h
 S
e
ct
io
n
s 
Comparativo Android Market x Apple App Store 
 
A média de downloads da Apple App Store é superior a do Android 
Market, bem como a porcentagem de usuários que compram aplicações 
(dados de 2009). 
 
 
A
p
p
 S
to
re
s 
Nokia Ovi Store 
 
Loja de aplicativos para dispositivos Nokia (Symbian, QT, Flash 
Lite e JavaME) e disponível através dos próprios aparelhos. 
 
 
Lançada em maio de 2009; 
 
50 mil aplicativos e média de 3 milhões de 
downloads por dia (janeiro de 2011); 
 
Disponível em mais de 200 países; 
 
Share de 70% Desenvolvedor e 30% Nokia; 
 
Desenvolvedor paga taxa única de inscrição 
de apenas 1 (um) euro. 
Comparação entre App Stores (custo para desenvolvedores) 
Relação de App Stores (distimo.com) 
A
p
p
 S
to
re
s 
In-App Payment é uma tendência 
 
Jogos e aplicativos são gratuitosà priori, embora vários 
recursos possam ser comprados dentro do próprio aplicativo. 
 
 
 
 
 
 
 
A plataforma Android 
Introdução ao Android, Arquitetura e Layouts 
Definição do Android 
Pilha de Software para Dispositivos Móveis que 
inclui um Sistema Operacional, um Middleware e 
aplicações-chave. 
 
O Android SDK provê ferramentas e APIs para o 
desenvolvimento de aplicações na plataforma 
Android usando a linguagem de programação Java. 
Recursos do Android 
 
 
 
 
 
 
 
• Biblioteca Gráfica 2D e Suporte a 3D (OpenGL ES 1.0); 
 
• SQLite; 
 
• Suporte a Mídias diversas (MPEG-4, H.264, MP3, AAC, AMR, JPG, PNG, 
GIF); 
 
• Bluetooth, EDGE, 3G e WiFi (dependente do hardware); 
 
• Câmera, GPS, Bússola e Acelerômetro (dependente do hardware); 
 
• Para desenvolvedores: Android Development Tools (ADT) Plugin para 
Eclipse. 
 
 
 
 
 
 
 
História do Android 
Julho de 2005: Google comprou a 
startup Android; 
 
Novembro de 2007: Google anunciou a 
Open Handset Alliance (OHA) e o 
Android; 
 
Ainda nesse mês, liberou a primeira 
versão do Android SDK. 
História do Android 
Outubro de 2008: Android se torna 
Open Source; 
 
Ainda nesse mês, lançado o primeiro 
smartphone com Android: o HTC G1; 
 
Lançado o primeiro Android Developer 
Phone (ADP), baseado no G1. 
História do Android 
Julho de 2009: HTC Hero, concorrente 
direto do iPhone; 
 
Novembro de 2009: Motorola Droid, 1 
milhão de unidades em pouco mais de 
dois meses; 
 
Chegou no Brasil como Motorola 
Milestone e foi sucesso de vendas. 
História do Android 
Em 2010, dezenas de ótimos 
smartphones Android foram lançados; 
 
Setembro de 2010: Samsung Galaxy Tab, 
primeiro tablet a concorrer com o iPad; 
 
Dezembro de 2010: Quarto ADP 
lançado, o Samsung Nexus S. 
Versões do Android 
AndroidManifest.xml 
Android 1.1 (fevereiro de 2009) 
•Alarm Clock 
•API Demos 
•Browser 
•Calculadora 
•Camera 
•Contatos 
•Dev Tools 
•Dialer 
•Email 
•Maps (e StreetView) 
•Mensagem 
•Música 
•Imagens (Galeria) 
•Configurações 
Android 1.5 Cupcake (maio de 2009) 
Grande evolução na interface (UI), 
adicionando as seguintes novidades: 
 
•Gravação de vídeos 
•Bluetooth A2DP 
•Conexão Bluetooth Automática 
•Upload de vídeos para YouTube e Picasa 
•Copiar e Colar 
Android 1.6 Donut (setembro de 2009) 
O HTC Hero trazia essa versão, que incluia o 
novo Android Market, além das seguintes 
melhorias: 
 
•Integração de câmera, gravação de vídeos e 
galeria 
•Busca por gestos e voz 
•Integração de aplicativos 
•Grande melhoria no Text-To-Speech 
Android 2.0/2.1 Eclair (outubro de 2009) 
Uma das versões mais usadas até hoje. 
 
•Desempenho otimizado 
•Mais opções de tamanho e resolução de tela 
•UI bastante melhorada 
•Suporte ao Exchange 
•Live wallpapers 
•Teclado virtual melhorado 
•Bluetooth 2.1 
•Google Maps 3.1.2 
Android 2.2 Froyo (maio de 2010) 
 
•Suporte completo ao Flash 10.1 
•Desempenho bastante otimizado (até 5x) 
•Hotspot para até 8 aparelhos 
•Home Screen melhorada (atalhos dedicados) 
•Melhoria do Exchange 
•Melhoria da câmera 
•Salvar aplicativos no cartão de memória 
•Discagem por bluetooth 
Android 2.3 Gingerbread (dezembro de 2010) 
 
•Melhoria do Copiar e Colar 
•Interface melhorada 
•Suporte a NTFC 
•Teclado multitouch 
•Suporte a SIP 
•Gerenciador de Downloads 
•Suporte a câmera frontal e vídeo-conferência 
A
p
p
 In
ve
n
to
r 
fo
r 
A
n
d
ro
id
 
Google App Inventor for Android 
 
Criação de aplicações para Android visualmente, sem a 
necessidade de escrever código. 
 
 
A
p
p
 In
ve
n
to
r 
fo
r 
A
n
d
ro
id
 
Google App Inventor for Android 
 
Orientado a blocos, basta definir as suas propriedades visuais e 
as suas ações para determinados eventos. 
 
 
A
p
p
 In
ve
n
to
r 
fo
r 
A
n
d
ro
id
 
Google App Inventor for Android 
Arquitetura do Android 
Arquitetura do Android 
Applications 
Conjunto de aplicações-chave nativas do Android, incluindo um cliente 
de e-mail, gerenciador de SMS, calendário, mapa, navegador, 
gerenciador de contatos e outros. Todas essas aplicações foram escritas 
em Java. 
 
 
 
Application Framework 
 
Desenvolvedores tem acesso completo às mesmas APIs que as 
aplicações-chave. O framework provê um conjunto de Views que podem 
ser utilizados para construir a interface da aplicação, incluindo listas, 
tabelas, caixas de texto, botões e até mesmo um browser embutido. 
Disponibiliza também Content Providers que permitem o acesso a dados 
de outras aplicações (como o gerenciador de Contatos). Há, ainda, o 
Resource Manager (provê acesso a recursos como imagens e arquivos 
de layout), o Notification Manager (permite que a aplicação mostre 
avisos personalizados) e o Activity Manager (gerencia o ciclo de vida da 
aplicação e a sua navegação). 
 
 
Arquitetura do Android 
Libraries 
Conjunto de bibliotecas C/C++ utilizadas por vários componentes do 
Android. Essas bibliotecas provêem recursos que são expostos aos 
desenvolvedores através de sua camada sobrejacente: Application 
Framework. 
 
 
 
Android Runtime 
 
Cada aplicação no Android roda em um processo diferente no Linux e 
para cada processo é criada uma instância da máquina virtual Dalvik. 
Essa máquina virtual foi criada de forma que um dispositivo possa 
executar múltiplas instâncias de forma eficiente. 
 
As classes compiladas da aplicação são transformadas para o formato 
.dex (Dalvik Executable), otimizado para uma mínima utilização de 
memória. A Dalvik VM interage diretamente com o kernel Linux para 
execução de funcionalidades subjacentes como tratamento de 
concorrência e gerenciamento de memória. 
 
 
As aplicações são escritas em Java e o seu código compilado, 
juntamente com os recursos que a aplicação utilizada, são 
empacotados em um arquivo .apk pela ferramenta aapt. É 
esse arquivo .apk que é usado para distribuir a aplicação e 
instalá-la nos dispositivos Android; 
 
Por padrão, cada aplicação é executada como um processo 
separado, com ID único e máquina virtual própria, isolando o 
seu código das demais aplicações. 
 
 
 
 
Noções sobre aplicações Android 
Componentes da Aplicação 
Um recurso fundamental do Android é o reuso de componentes. Caso uma 
aplicação precise disponibilizar uma lista de imagens com scrolling e outra 
aplicação apresenta tal componente e o disponibilizou para as demais, pode-
se invocar esse componente. 
 
Devido a essa organização dos aplicativos em componentes, as aplicações 
Android não possuem um único ponto de entrada (não há um método main(), 
por exemplo). Ao invés disso, as aplicações apresentam componentes 
essenciais que o sistema pode instanciar e executar quando necessário. Esses 
componentes podem ser de quatro tipos: 
Activities (apresenta uma interface visual para o usuário) 
 
Services (roda em segundo plano por um período de tempo indeterminado) 
 
Broadcast Receivers (recebe e reage a eventos do sistema) 
 
Content providers (dados do aplicativo disponíveis para os demais) 
Ativando e desativando componentes 
Content Providers são ativados por meio de uma requisição de um 
ContentResolver. Os demais componentes (Activities, Services e Broadcast 
Receivers) são ativados por mensagens assíncronas denominadas intents. Trata-
se de um objeto da classe Intent que armazena o conteúdo da mensagem. Para 
activities e services, o objeto apresenta o nome da ação que está sendo 
requisitada bem como o endereço do dado em que atuará, além de outras coisas. 
No caso de uma Activity, por exemplo, pode conter uma requisição para 
apresentar uma imagem ao usuário ou permitir que o usuário edite algum texto. 
Já para Broadcast Receivers, o objeto Intent pode anunciar que um botão da 
câmera foi pressionado, por exemplo. 
 
Content Provider e BroadCast Receiver não precisam ser desativados, uma vez 
que permanecem ativos somente enquanto estão respondendo requisições. 
Já Activities e Services podem permanecer em execução por um longo 
períodode tempo, daí a necessidade de finalizá-los através dos métodos 
finish() e stopSelf(), respectivamente. 
Activities 
O componente mais comum de uma aplicação é um Activity. É implementado 
como uma subclasse de Activity e uma aplicação pode conter uma ou mais 
activities. Cada qual representa uma interface visual e uma delas é marcada 
como sendo a inicial que deve ser apresentada quando a aplicação é iniciada. 
Mover-se de uma Activity para outra consiste em fazer com que a Activity atual 
invoque a próxima. 
Cada Activity possui uma janela padrão para 
desenhar. Normalmente a janela ocupa a tela 
toda mas também pode ser menor e flutuar 
sobre outras janelas. Uma Activity pode 
conter janelas adicionais, como por exemplo 
um dialog que exige uma resposta do usuário 
ou mostra um aviso quando um dado item é 
selecionado. 
O visual da janela é composto 
por uma hierarquia de views, 
objetos derivados da classe 
base View. As views também 
são responsáveis por 
responder às ações do usuário 
direcionadas ao seu espaço. 
Activities e Tasks 
Conforme dito anteriormente, uma Activity pode iniciar outra, inclusive uma que 
pertença a outro aplicativo. Por exemplo: uma aplicação deseja mostrar o mapa 
de algum local. Já existe uma Activity que o faz, então tudo o que a sua Activity 
precisa fazer é chamar o método startActivity() passando como parâmetro o 
objeto da classe Intent com as informações necessárias. O mapa será mostrado e, 
quando o usuário pressionar a tecla voltar, sua Activity será mostrada novamente 
na tela. 
Para o usuário, isso é transparente. O Android mantém ambas as activities na 
mesma Task. Uma Task, para o usuário, é como se fosse uma aplicação. 
Tecnicamente é um grupo de Activities relacionadas que foram adicionadas 
em uma pilha. A base da pilha é a primeira Activity que é mostrada quando a 
Task é iniciada, enquanto que o topo é a Activity que está sendo executada no 
momento, ou seja, que está recebendo o foco das ações do usuário. 
Ciclo de vida de uma Activity 
Basicamente, uma Activity possui 
três estados: 
Ativo: quando a Activity está 
no topo da pilha (visível na 
tela e recebendo as ações do 
usuário); 
 
Pausado: quando a Activity 
perdeu o foco mas 
permanece visível ao usuário. 
Ou seja, há outra Activity no 
topo que é transparente ou 
não ocupa toda a tela; 
 
Parado: quando a Activity 
está ofuscada por outra. 
Mantém o estado mas pode 
ser eliminada pelo sistema 
em caso de falta de memória. 
Ciclo de vida de uma Activity 
Services 
Diferentemente de activities, os services não possuem interface e executam em 
segundo plano por um período de tempo indeterminado. Cada serviço é uma 
classe que herda de Service. 
Um exemplo clássico de Service é um tocador 
de músicas. A aplicação deve consistir de uma 
ou mais activities que permitem ao usuário 
selecionar as músicas e começar a tocá-las. 
Contudo, a execução das músicas em si não 
faz parte da Activity mas sim de um Service, 
uma vez que o usuário espera que a música 
continue a ser tocada após sair da tela. 
Ciclo de vida de um Service 
Broadcast Receivers 
Componente que recebe e reage a anúncios de broadcast, geralmente oriundos 
do sistema. Cada receiver é uma classe que herda de BroadCastReceiver. 
Mudança no fuso horário, anúncio de bateria 
fraca e mudança da linguagem por parte do 
usuário são exemplos de anúncios que podem 
ser capturados por Broadcast Receivers. 
 
Uma aplicação pode conter quantos 
receptores quiser. Os receptores podem 
iniciar uma Activity ou utilizar o 
NotificationManager para alertar o usuário 
(acender a luz do aparelho, vibrar, executar 
um som, etc). 
Ciclo de vida de Broadcast Receivers 
Quando uma mensagem de broadcast chega ao receptor, o Android invoca o 
método onReceive(), passando como parâmetro um objeto Intent contendo a 
mensagem. 
O Broadcast Receiver fica ativo apenas enquanto está executando esse método. 
Content Providers 
Componente que torna um conjunto específico de dados da aplicação disponível 
para outras aplicações. Cada provider é uma classe que herda de ContentProvider 
e disponibiliza um conjunto padrão de métodos para que outras aplicações 
possam recuperar e armazenar dados do tipo que o provedor controla. 
 
As aplicações não podem acessar 
os métodos de um Content 
Provider diretamente. Para isso, 
elas precisam de um objeto 
ContentResolver, o qual pode 
conversar com qualquer Content 
Provider. 
Su
p
o
rt
e
 a
 M
ú
lt
ip
la
s 
Te
la
s 
Como o Android suporta múltiplas telas? 
 
Desde o Android 1.6, a plataforma provê suporte a múltiplos 
tamanhos de tela e resoluções, adequando-se aos muitos tipos e 
tamanhos de dispositivos com Android. 
 
Assim, a partir do Android 1.6, a plataforma divide a infinidade de 
tamanhos de tela e resoluções suportadas em: 
 
• Um conjunto de três tamanhos: large, normal e small; 
• Um conjunto de três densidades: hdpi (high), mdpi (medium) e ldpi (low). 
 
Dessa forma, a aplicação pode prover layouts e imagens para qualquer 
um desses três conjuntos, sem a necessidade de trabalhar com o 
tamanho físico real da tela do aparelho. 
 
Em tempo de execução, o Android carrega o conjunto adequado de 
recursos, baseado no dispositivo em questão. 
 
 
 
 
 
 
 
Su
p
o
rt
e
 a
 M
ú
lt
ip
la
s 
Te
la
s 
Su
p
o
rt
e
 a
 M
ú
lt
ip
la
s 
Te
la
s 
Su
p
o
rt
e
 a
 M
ú
lt
ip
la
s 
Te
la
s 
Organização de pastas de layout e imagens para uma aplicação que, em tese, 
suporta todos os tamanhos de telas e resoluções. 
Views e ViewGroups em Android 
Em Android, todos os componentes de interface gráfica são representados por 
subclasses de android.view.View que representam os componentes gráficos 
como TextView, Button, TextEdit, RadioButton, CheckBox, etc. Além da classe 
android.view.ViewGroup, que representa um container de views e também de 
ViewGroups. Ela é a classe base para componentes de layouts, como 
LinearLayout, RelativeLayout, AbsoluteLayout, FrameLayout, TableLayout, etc. 
H
ie
ra
rq
u
ia
 d
e
 c
la
ss
e
s 
d
e
 U
I 
Layouts e Layout Params em Android 
 
Para que os componentes possam ser acomodados de acordo com o layout de 
seu pai, os mesmos devem manter uma relação de obediência. Sendo assim, cada 
filho deve configurar os seus parâmetros de layouts, por meio da classe 
ViewGroup.LayoutParams, que permite que estes determinem suas propriedades 
de posição e tamanho referente ao layout de seus pais. 
 
 
LinearLayout 
O layout básico, padrão quando da geração de um .XML de layout no Android, é o 
LinearLayout. Como o próprio nome diz, ele dispõe os componentes linearmente 
em uma unica direção definida pelo atributo android:layout_orientation. 
LinearLayout e LayoutParams 
 
 
 
 
android:layout_gravity: similar ao float do CSS, o 
gravity define a posição do conteúdo do 
LinearLayout na tela, podendo-se usar top, 
bottom, left, right, center, center_vertical, 
center_horizontal, etc. Pode-se usar combinações 
através do conector “|”. Por exemplo: “bottom | 
right”. 
 
android:layout_weight: indica quanto do espaço 
extra no LinearLayout será alocado para a visão 
associada aos LayoutParams. Ou seja, pode-se 
dividir a tela entre os layouts atribuindo a cada 
um deles um peso que define qual deles terá 
maior espaçamento e, casa todos tenham o 
mesmo peso, a tela é dividida igualmente. 
 
 
Aplicação de peso (weight) em 
um componente do LinearLayout 
LinearLayout (Código) 
FrameLayout 
 
 
Arranja seus filhos de acordo com uma pilha de componentes que são 
adicionados, sendo que o topo da pilha contém o objeto que foi adicionado por 
último. Pode-se usar quando se tem várias imagens e uma é sobreposta pela 
outra (como um slide de imagens) conforme vão sendo adicionadas. 
 
 
Sobreposição de componentes 
com FrameLayout 
Criando uma pilha de 
componentes com FrameLayout 
FrameLayout (Código) 
 
 
Nota: O FrameLayout é usado comumente a partir de uma de suas subclasses, 
tais como ImageSwitcher,ViewAnimator, ViewSwitcher, ScrollView, TabHost, etc. 
 
 
AbsoluteLayout 
 
 
Implementa um plano cartesiano e posiciona os componentes em coordenadas X, 
Y de forma absoluta. 
 
 
Posicionando componentes no 
AbsoluteLayout 
AbsoluteLayout (Código) 
RelativeLayout 
 
 
Os componentes são ajustados através de relacionamentos entre si ou ao seu pai. 
 
 
RelativeLayout (Código) 
TableLayout 
 
Comporta seus filhos em linhas e colunas. Cada filho é representado por um 
TableRow (uma espécie de LinearLayout na horizontal) que permite que uma ou 
ais células sejam adicionadas horizontalmente, sendo que cada célula pode 
conter um único View. 
 
 
TableLayout (Código) 
 
What’s Your Message? 
 
OBRIGADO!

Outros materiais