Buscar

Topicos especiais de programação III

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 15 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 15 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 15 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

79
Re
vi
sã
o:
 M
ac
ili
a/
Ro
se
 -
 D
ia
gr
am
aç
ão
: J
ef
fe
rs
on
 -
 2
1/
10
/1
5
TÓPICOS ESPECIAIS DE PROGRAMAÇÃO ORIENTADA A OBJETOS
Unidade III
5 INTRODUÇÃO AO ANDROID
Nesta unidade, iremos nos familiarizar com alguns conceitos interessantes que envolvem programação 
e estruturação do trabalho utilizando Android. Serão abordados temas como inicialização de ambiente e 
desenvolvimento inicial com a linguagem Java para aplicativos Android.
5.1 Fundamentos e paradigmas de programação para dispositivos móveis
A computação móvel, termo usado para descrever as tecnologias que permitem que as pessoas 
tenham acesso a serviços e informações em qualquer lugar e a qualquer hora, independentemente da 
sua localização, sem a necessidade de conexão física, está adquirindo maior popularidade à medida que 
dispositivos móveis se tornam disponíveis e oferecem facilidades de uso.
A computação móvel é caracterizada por três principais propriedades: mobilidade, portabilidade e 
conectividade.
Portabilidade: a portabilidade é definida como a capacidade de ser facilmente transportável. 
Se, por um lado, o dispositivo móvel deve ser pequeno e leve (incluindo acessórios) para ser 
portátil, por outro, essa portabilidade tem como consequência certas limitações, como capacidade 
de memória, armazenamento, poder de processamento e tamanho da tela. A portabilidade está 
relacionada com as limitações do dispositivo móveis. Ou seja, quanto maior a portabilidade, 
maiores serão as limitações de recursos do dispositivo móvel e, consequentemente, maior será 
sua mobilidade.
Mobilidade: quando em movimento, o dispositivo móvel pode alterar sua localização e seu 
ponto de conexão com a rede. Na computação móvel, mobilidade se refere ao uso de dispositivos 
móveis portáteis funcionalmente poderosos que ofereçam a capacidade de realizar facilmente um 
conjunto de funções de aplicação, sendo também capazes de se conectar, obter dados e fornecê‑los 
a outros usuários e sistemas.
Conectividade: a função primária de um dispositivo móvel é conectar as pessoas e/ou sistemas 
e transmitir e receber informações. Os dispositivos móveis podem operar de três formas: a) sempre 
conectados a uma rede; b) podem estar conectados de forma intermitente a uma rede; c) podem operar 
inteiramente sem conexão a uma rede.
80
Re
vi
sã
o:
 M
ac
ili
a/
Ro
se
 -
 D
ia
gr
am
aç
ão
: J
ef
fe
rs
on
 -
 2
1/
10
/1
5
Unidade III
 Observação
A preocupação com itens como portabilidade, mobilidade e 
conectividade é uma premissa importante para a composição de um 
projeto de desenvolvimento de aplicativos móveis. Garantir a eficiência 
desses itens é ter certeza da execução satisfatória do projeto.
5.1.1 Dispositivos móveis
Com o crescente avanço tecnológico na produção de dispositivos computacionais móveis, bem 
como da computação móvel, empresas começam a incentivar o trabalho em casa (home office) e esses 
dispositivos começam a fazer parte da infraestrutura de TI das organizações.
Atualmente existe uma variedade de dispositivos móveis que oferecem uma gama enorme de 
serviços aos seus usuários, sendo atualmente os mais conhecidos o smartphone, o tablet e o notebook.
5.1.2 Desafios técnicos para dispositivos móveis
A mobilidade e os crescentes avanços computacionais introduzem vários desafios. A habilidade 
para ser portátil traz várias limitações aos dispositivos móveis. Estas limitações incluem baixo poder de 
processamento, capacidade de bateria, tamanho de tela e quantidade de memória.
Segurança e opções de conectividade sem fio são fatores que também devem ser levados em 
consideração no desenvolvimento de aplicações móveis. No entanto, a entrada de dados é um fator 
problemático na interação dos usuários com os dispositivos móveis.
Os dispositivos móveis possuem telas e, muitas vezes, teclados, pequenos e limitados. Dos diferentes 
métodos para entrada de dados (de texto) em dispositivos móveis, todos requerem aprendizagem e 
alguns deles têm uma curva maior de aprendizagem que outros.
Desse modo, as opções de entrada de dados, que não são apropriadas para entradas rápidas e extensas, 
devem ser levadas em consideração para o desenvolvimento de uma aplicação para dispositivos móveis.
5.1.3 Usabilidade e os dispositivos móveis
A usabilidade é um dos fatores mais importantes no desenvolvimento de aplicações móveis. A 
interface de usuário de um dispositivo móvel é o meio de comunicação entre o usuário e os elementos 
funcionais do dispositivo e aplicações. Os dispositivos móveis ganham cada vez mais funcionalidades. 
No entanto, a usabilidade dos dispositivos móveis não fica restrita à interface com o usuário. Segundo 
Souza, Costa e Spinola (2006), as características do usuário, do ambiente e dos dispositivos móveis são 
fatores que influenciam a interação e devem ser considerados tanto no processo de projeto de interface 
quanto na avaliação de usabilidade.
81
Re
vi
sã
o:
 M
ac
ili
a/
Ro
se
 -
 D
ia
gr
am
aç
ão
: J
ef
fe
rs
on
 -
 2
1/
10
/1
5
TÓPICOS ESPECIAIS DE PROGRAMAÇÃO ORIENTADA A OBJETOS
 Saiba mais
Souza, Costa e Spinola (2006) apresentam algumas das melhores 
práticas para projetar aplicações móveis com usabilidade. Para maior 
aprofundamento, leia:
SOUZA, L. S.; COSTA, I.; SPINOLA, M. M. Projetos de interface com o 
usuário de software de dispositivos móveis: requisitos de usabilidade 
e fatores impactantes. In: SIMPÓSIO DE ENGENHARIA DE PRODUÇÃO 
(SIMPEP), n. 13., 2006, Bauru. Anais… Bauru: Unesp, 2006. Disponível em: 
<http://www.simpep.feb.unesp.br/anais/anais_13/artigos/851.pdf>. Acesso 
em: 13 out. 2015.
5.1.4 Aplicações móveis
Embora o desenvolvimento de software para dispositivos móveis apresente desafios diferentes das 
típicas aplicações convencionais, as características dos projetos de TI tradicionais, como pressões por 
prazos cada vez menores e a contínua busca na redução de custos, estão mantidas.
Ao definirmos os requisitos de um projeto de software para dispositivos móveis, é muito importante 
levar em consideração a variedade de hardware (processadores, memórias, tamanho da tela etc.) e de 
software (sistemas operacionais e seus recursos) encontrados em dispositivos móveis.
Segundo Souza, Costa e Spinola (2006), as aplicações para dispositivos móveis também precisam passar 
por um processo de desenvolvimento de software, que incluem especificação, projeto, implementação e 
validação de software, atendendo aos atributos essenciais dos produtos de software, como a facilidade 
de manutenção, a confiança, a eficiência e a facilidade de uso.
Camada desktop
Camada serviço Camada negócio
Camada desktop
Figura 74 – Arquitetura de plataforma móvel
82
Re
vi
sã
o:
 M
ac
ili
a/
Ro
se
 -
 D
ia
gr
am
aç
ão
: J
ef
fe
rs
on
 -
 2
1/
10
/1
5
Unidade III
 Observação
O modelo de desenvolvimento em camadas está presente no 
desenvolvimento de aplicativos móveis para garantir uma boa distribuição 
do código, bem como o desenvolvimento segregado, aplicando‑se 
metodologias ágeis para o desenvolvimento.
5.2 Android
Atualmente o Android vem ganhando força no cenário tecnológico, muito devido ao elevado 
crescimento da distribuição mundial dos smartphones e tablets. O Android é uma plataforma que 
foi construída baseada no Linux, concentrado em dispositivos móveis, desenvolvido pela Google em 
parceria com algumas empresas da Open Handset Alliance (OHA). No início do desenvolvimento do 
projeto, o Android era um projeto da Android Inc., uma empresa que tinha como principal vertente o 
desenvolvimento de softwares embarcados e que, em meados do ano de 2005, foi adquirida pela Google, 
com a intenção de ingressar no mercado de desenvolvimentode aplicativos para telefonia móvel.
 Saiba mais
Para um estudo mais aprofundado sobre Linux, recomendamos o 
seguinte artigo:
PISA, P. A evolução do Linux. TechTudo, 23 maio 2012. Disponível em: 
<http://www.techtudo.com.br/artigos/noticia/2012/05/a‑evolucao‑do‑ 
linux.html>. Acesso em: 19 out. 2015.
A Google então trabalhou na continuidade na plataforma Android com o intuito de disponibilizar 
no mercado de telefonia móvel uma plataforma “padrão para dispositivos móveis”, ou seja, de maneira 
independente do fabricante de hardware. Atualmente muitas empresas, como HTC, Samsung e Motorola, 
assim como outras encapsuladas no mercado de telefonia móvel, comercializam diversos modelos de 
tablets e smartphones com a plataforma Android. Dessa forma, proporciona a possibilidade para que 
diversos usuários possam definir a escolha de um hardware mais barato, por exemplo, ou até mesmo 
levar em consideração a escolha de um smartphone com uma câmera melhor, com resolução mais alta 
ou até mesmo priorizar a capacidade de processamento. Todos os recursos levantados até esse momento 
colocam como premissa vantagens de se obter um smartphone com a plataforma Android, visto que 
usuários finais podem escolher um dispositivo que atenda melhor a suas necessidades.
A utilização da linguagem Java para o desenvolvimento de aplicativos foi um dos pontos que 
tornaram o Android um dos líderes no mercado de dispositivos móveis. Pensar na utilização do Java 
para desenvolvimento foi uma das maiores ideias da Google, considerando que atualmente é uma das 
83
Re
vi
sã
o:
 M
ac
ili
a/
Ro
se
 -
 D
ia
gr
am
aç
ão
: J
ef
fe
rs
on
 -
 2
1/
10
/1
5
TÓPICOS ESPECIAIS DE PROGRAMAÇÃO ORIENTADA A OBJETOS
linguagens mais utilizadas no mundo, sendo muito madura e robusta, colocando também em pauta a 
linguagem orientada a objetos, um fator de extrema importância.
Para desenvolver aplicativos para o Android, programadores Java necessitam buscar o aprendizado 
em características particulares da plataforma (conhecer as APIs disponíveis, o ciclo de vida das aplicações 
etc.), absorvendo todo seu conhecimento da linguagem, sem ter a preocupação de aprender novas 
sintaxes ou novos paradigmas de programação, exercendo a aplicação de lógica de programação para o 
estudo da linguagem Java.
Outro ponto de destaque da Google para o trabalho com a plataforma Android foi de lançá‑la de 
maneira gratuita. Isto foi um grande atrativo para os fabricantes, que voltaram os olhos para o Android 
e viram uma enorme vantagem em embarcá‑lo em seus dispositivos móveis. Além de reduzir o custo de 
manter um Sistema Operacional para seus dispositivos, os fabricantes poderiam adquirir uma vantagem 
da padronização da plataforma, permitindo que um usuário final pudesse comprar dispositivos de 
diferentes fabricantes sem ter grandes dificuldades no seu uso, uma vez que já estará familiarizado com 
a plataforma.
Vale ressaltar mais um ponto importante na aquisição da plataforma Android pela Google: a 
concepção de trabalho com o código‑fonte aberto, sendo este aspecto colocado como carro‑chefe, 
um dos itens mais relevantes na plataforma Android. Disponibilizar em sua plataforma o código‑fonte 
aberto fez com que fabricantes pudessem embarcá‑lo em smartphones, tablets, smart TVs, aparelhos 
multimídia, controle‑remoto, dispositivos de leitura de livros digitais etc. O código‑fonte aberto traz 
também como benefício a possibilidade do fabricante customizar o Android, deixando‑o ainda mais 
atraente para seus usuários finais.
Por fim, a plataforma Android torna‑se flexível com sua grande facilidade de personalização, 
possibilitando que aplicações nativas sejam alteradas por aplicações segmentadas de terceiros que 
possam atrair ainda mais os olhos de usuários mais exigentes. Ainda pode ser possível, por exemplo, 
modificar uma aplicação nativa de realização de chamadas, a aplicação de contatos, a aplicação de 
mensagens SMS, e assim por diante.
5.3 Open Handset Alliance
A Open Handset Alliance (OHA) é uma aliança formada em 2007 que agrega diversas empresas que 
têm como missão definir padrões abertos para telefonia móvel. Algumas das empresas que compõem 
essa aliança são:
• LG;
• Samsung;
• HTC;
• Motorola;
84
Re
vi
sã
o:
 M
ac
ili
a/
Ro
se
 -
 D
ia
gr
am
aç
ão
: J
ef
fe
rs
on
 -
 2
1/
10
/1
5
Unidade III
• Google;
• Intel.
Em meados de 2007, atuando no mesmo ano de sua formação, a OHA fez um pronunciamento 
sobre a sua plataforma open source Android, baseada no sistema operacional Linux. Desde então, vários 
fabricantes iniciaram a comercialização de dispositivos com o Android, como a HTC, que, por sua vez, 
acabando lançando o seu primeiro celular com Android, o T‑Mobile G1 (também conhecido no cenário 
de telefonia móvel como HTC Dream).
5.4 Versões do Android
O Android, por definição, tem uma estrutura de versionamento com base em dois pilares:
• Plataform Version: que é conhecido comercialmente como a versão da plataforma Android. 
Geralmente esse nome é visualizado nos dispositivos moveis para o usuário final.
• API Level: número inteiro, iniciado com 1 (um) e efetuado um autoincremento a cada versão 
disponibilizada do Android. Identificação utilizada somente para fins de desenvolvimento de 
aplicativos Android.
Quadro 4 – Estrutura de versionamento do Android
Plataform Version API Level
Android 4.1 16
Android 4.0.3 15
Android 4.0 14
Android 3.2 13
Android 3.1 12
Android 3.0 11
Android 2.3.3 10
Android 2.3.1 9
Android 2.2 8
Android 2.1 7
Android 2.0.1 6
Android 2.0 5
Android 1.6 4
Android 1.5 3
Android 1.1 2
Android 1.0 1
85
Re
vi
sã
o:
 M
ac
ili
a/
Ro
se
 -
 D
ia
gr
am
aç
ão
: J
ef
fe
rs
on
 -
 2
1/
10
/1
5
TÓPICOS ESPECIAIS DE PROGRAMAÇÃO ORIENTADA A OBJETOS
 Saiba mais
A versão mais atualizada, lançada no momento da concepção deste 
livro‑texto, é a versão Android 6.0 – Marshmallow. Para realizar um 
estudo dessa versão, acesse:
RINALDI, C. Android 6.0 Marshmallow: review e todas as funções. 
AndroidPIT, 7 out. 2015. Disponível em: <http://www.androidpit.com.br/
android‑m‑dispositivos‑data‑lancamento‑funcoes>. Acesso em: 14 out. 2015.
A API Level pode ser utilizada apenas por desenvolvedores de aplicativos para Android. Fabricantes 
que embarcam o Android em seu hardware devem agregar de maneira completa essa API.
Os desenvolvedores da equipe Android zelam sempre pela dinâmica e pelo entendimento da 
importância de manter compatíveis versões anteriores para cada nova versão, ou seja, criar possibilidades 
para que um aplicativo desenvolvido na API Level 10, por exemplo, seja compilado na API Level 16. 
Mesmo com toda essa preocupação, nem sempre isso se torna possível, visto que em algumas das novas 
versões pode acontecer de uma funcionalidade alocada no aplicativo legado deixe de existir. Porém, 
sempre que isso acontecer, a Google deixa tudo estritamente documentado para que o desenvolvedor 
sempre fique atualizado de novas versões.
5.5 Arquitetura do Android
Aplicações Android precisam de uma arquitetura que possibilite o trabalho de processamento 
de informações, bem como a segregação de bibliotecas, drivers e informações que agregam o seu 
funcionamento pleno.
Manter uma arquitetura distribuída e sólida garante a eficiência no processo de alocação de 
informações, bem como garantir informações primordiais, como garantia de chaves de segurança, 
alocação de espaço para a base de dados, definição de drivers que poderão ser utilizados na aplicação e 
a distribuição de funcionalidades na camada de aplicações.
Quadro 5 – Arquitetura do Android
Linux Kernel
Driver de visualização Driver de câmera Cartão de memória Driver de compilação
Driverpara teclado Driver para rede sem fio Driver de áudio Gerenciador de memória
Bibliotecas – Libraries
Gerenciador Surface Media Framework SQLite
OpenGL – ES FreeType WebKit
SGL SSL Libc
86
Re
vi
sã
o:
 M
ac
ili
a/
Ro
se
 -
 D
ia
gr
am
aç
ão
: J
ef
fe
rs
on
 -
 2
1/
10
/1
5
Unidade III
Android Runtime
Biblioteca de Códigos Nativos
DVM
Framework de aplicações
Gerenciador de atividades Gerenciador Windows Chave de conexão Sistema de visualização de solução
Gerenciador de pacotes Gerenciador de dados de telefone
Gerenciador de recursos do 
telefone
Gerenciador de localização do 
telefone (GPS)
Gerenciador de notificações do 
telefone
Camada de aplicações
Home Agenda Aplicativos Navegador
5.5.1 Linux Kernel
Efetuando um estudo particionado da arquitetura Android, o primeiro nível apresentado é o Linux kernel:
Quadro 6 – Primeiro nível que compõe a Arquitetura do Android, denominada Linux Kernel
Linux Kernel
Driver de visualização Driver de câmera Cartão de memória Driver de compilação
Driver para teclado Driver para rede sem fio Driver de áudio Gerenciador de memória
O Android roda em uma versão alterada do kernel 2.6 do Linux, customizada para obter melhor 
desempenho em dispositivos de baixo recurso, provendo assim melhores performances da bateria, na 
troca de arquivos pela rede etc. Isso ratifica ainda mais o fato de que o Android roda em Linux.
Sendo assim, é justamente esse nível o responsável pela inicialização do sistema, gerenciamento da 
memória do dispositivo, gerenciamento dos processos do dispositivo, gerenciamento das threads em 
execução e gerenciamento da energia. Basicamente, todos os drivers responsáveis pela comunicação 
com os recursos de hardware do dispositivo encontram‑se neste nível, como módulos do kernel do Linux.
Como o Android roda em Linux, ele acaba se beneficiando de vários recursos desse Sistema 
Operacional, como:
• Suporte multitarefa: possibilita ao Android realizar diversas tarefas ao mesmo tempo. Esse 
trabalho permite a execução de linhas de código de maneira simultânea, proporcionando a 
execução em paralelo de atividades solicitadas.
• Suporte multiusuário: permite ao Android proporcionar ao usuário um fluxo de trabalho 
acentuado para cada aplicação instalada, garantindo maior segurança e privacidade dos dados dos 
aplicativos, o que impossibilita que um aplicativo instalado danifique os dados de outro ou acesse 
sua base de dados e seus respectivos arquivos. Esse conceito de trabalho garante a excelência na 
execução de aplicativos em dispositivos móveis.
87
Re
vi
sã
o:
 M
ac
ili
a/
Ro
se
 -
 D
ia
gr
am
aç
ão
: J
ef
fe
rs
on
 -
 2
1/
10
/1
5
TÓPICOS ESPECIAIS DE PROGRAMAÇÃO ORIENTADA A OBJETOS
O kernel do Android pode ser definido como monolítico, ou seja, ele efetua o incremento das 
principais funções do sistema operacional em um bloco grande e único de códigos, executados, assim, 
em um mesmo espaço de endereçamento para obter melhor performance e diminuir a complexidade do 
sistema, bem como a alocação de informações para o núcleo do Linux.
5.5.2 Libraries e Android Runtime
A aplicação da camada de bibliotecas garante o encapsulamento de informações nas aplicações 
móveis, bem como garante que itens como acesso ao banco de dados e chaves de segurança possam ser 
acessadas de maneira satisfatória.
O Android Runtime garante a excelência na execução de itens como a biblioteca de códigos nativos e a 
DVM, que proporcionam ao desenvolvedor o trabalho eficaz e a execução do código para compilação Android.
Quadro 7 – Segundo nível que compõe a arquitetura do Android, 
segregada por Libraries e pelo Android Runtime
Bibliotecas – Libraries
Gerenciador Surface Media Framework SQLite
OpenGL – ES FreeType WebKit
SGL SSL Libc
Android Runtime
Biblioteca de Códigos Nativos
DVM
5.5.2.1Libraries
As Libraries podem ser definidas com bibliotecas nativas do Android, que são basicamente bibliotecas 
escritas em linguagem C e C++ e que rodam diretamente dentro do Linux. O acesso a essas bibliotecas 
pode ser efetuado pela camada superior, a Application Framework, que abstrai todo o acesso a essas 
bibliotecas quando se é desenvolvido um aplicativo para o Android, ou seja, não se efetua acesso direto 
a essa camada.
Entre algumas dessas bibliotecas, encontram‑se:
• WebKit: motor de funcionamento do browser do Android.
• SQLite: biblioteca para acesso ao banco de dados utilizado pelo Android.
• OpenGL | ES: biblioteca para renderização de gráficos 3D.
• SSL: biblioteca que provê o uso de conexões seguras.
88
Re
vi
sã
o:
 M
ac
ili
a/
Ro
se
 -
 D
ia
gr
am
aç
ão
: J
ef
fe
rs
on
 -
 2
1/
10
/1
5
Unidade III
5.5.2.2 Android Runtime
O Android Runtime também pode ser dividido em um segundo nível da própria arquitetura Android, como:
Core Libraries
São as bibliotecas do Java e conseguem abstrair praticamente todas as bibliotecas do Java SE. Pode 
possibilitar o desenvolvimento de aplicativos usando as APIs padrões do Java, programando praticamente 
da mesma forma, como se fosse efetuar um desenvolvimento de um aplicativo para desktop.
Dalvik Virtual Machine – DVM
É a máquina virtual do Android, onde todos os aplicativos serão executados. Todos os aplicativos 
desenvolvidos para Android são construídos em Java e toda aplicação desenvolvida em Java necessita, 
de maneira obrigatória, de uma máquina virtual para ser executada. No Android, essa máquina virtual 
é a Dalvik VM. Ela não pode ser considerada a mesma máquina virtual padrão do Java (JVM) e foi 
desenvolvida justamente para que se possa obter um melhor desempenho em dispositivos com recursos 
limitados de memória e processamento.
No Android, cada aplicativo roda em sua própria instância da Dalvik VM e cada instância é gerenciada 
pelo seu próprio processo no Linux, ou seja, os aplicativos não compartilham a mesma instância da 
Dalvik VM. Isso é muito importante para que se possa garantir maior segurança, pois um aplicativo não 
poderá interferir na execução de outro.
Início da compilação 
.java
Compilador em execução 
para bytecodes do Java
Gerar arquivo 
.class
Tradução para 
bytecodes .dex
Fim do ciclo de 
compilação .java
Figura 75 – Procedimento para geração de bytecodes .dex
5.5.3 Application Framework
O terceiro nível para visualização da Arquitetura do Android é definido por Application Framework, 
ou Framework de Aplicações.
Quadro 8 – Terceiro nível da arquitetura Android
Framework de Aplicações
Gerenciador de atividades Gerenciador Windows Chave de conexão Sistema de visualização de solução
Gerenciador de pacotes Gerenciador de dados de telefone
Gerenciador de recursos 
do telefone
Gerenciador de localização do 
telefone (GPS)
Gerenciador de notificações 
do telefone
89
Re
vi
sã
o:
 M
ac
ili
a/
Ro
se
 -
 D
ia
gr
am
aç
ão
: J
ef
fe
rs
on
 -
 2
1/
10
/1
5
TÓPICOS ESPECIAIS DE PROGRAMAÇÃO ORIENTADA A OBJETOS
Definindo a Application Framework, ela compreende as APIs do Android que são utilizadas no 
desenvolvimento de aplicativos para Android. Esta camada encapsula o acesso às bibliotecas escritas 
em C e C++ da camada Libraries, auxiliando o trabalho dos desenvolvedores de aplicativos para Android.
5.5.4 Applications
O quarto nível da arquitetura do Android é apresentado pela camada Applications.
Quadro 9 – Quarto nível, que possibilita a visualização da camada Applications
Camada de aplicações
Home Agenda Aplicativos Navegador
A camada de aplicações engloba todos os aplicativos escritos em Java para o Android. Nesta 
camada se concentram tanto os aplicativos nativos do Android quanto os aplicativosconcebidos pelos 
desenvolvedores. No Android, aplicativos nativos e desenvolvidos por terceiros estão no mesmo nível, 
na camada Applications, o que possibilita desenvolver aplicativos que substituam os nativos, sendo 
possível, por exemplo, criar um aplicativo de contatos que subscreva o que já vem nativo no Android. 
Este é um recurso muito útil e provê grande flexibilidade na plataforma Android.
6 CONCEITOS FUNDAMENTAIS
6.1 Construindo o ambiente de desenvolvimento
Antes de inicializar o desenvolvimento de aplicativos para o Android, é necessário efetuar a instalação 
das ferramentas necessárias, como o SDK do Android e um IDE. Todas as ferramentas necessárias para o 
desenvolvimento podem ser baixadas gratuitamente pela internet e possuem versão para Mac, Linux e 
Windows. Para o desenvolvimento, são necessárias as seguintes ferramentas:
• Java SE Development Kit (JDK).
• Android Development Kit (Android SDK).
• IDE Eclipse (também é possível utilizar outros IDEs, como a IntelliJ Idea ou NetBeans).
• Android Development Tools (ADT): plug‑in do Eclipse para desenvolvimento de aplicativos para 
o Android.
6.2 Instalando o Android Development Kit (Android SDK)
Com o Java SE Development Kit (JDK) já instalado, conforme apresentado anteriormente neste 
livro‑texto, é necessário instalar o Android SDK, que detém as ferramentas necessárias para o 
desenvolvimento de aplicativos para o Android, assim como as bibliotecas, o debugger, o emulador etc. 
90
Re
vi
sã
o:
 M
ac
ili
a/
Ro
se
 -
 D
ia
gr
am
aç
ão
: J
ef
fe
rs
on
 -
 2
1/
10
/1
5
Unidade III
Para efetuar a instalação, inicialmente será necessário baixá‑lo no site do Android: <http://developer.
android.com/sdk/index.html>.
 Lembrete
Para instalar o Java SE Development Kit (JDK), vá até o site de download 
do Java <http://www.oracle.com/technetwork/java/javase/downloads/
index.html>. Clique no link Java Platform (JDK). Marque sua aceitação do 
contrato de licença e escolha o JDK apropriado para a plataforma que você 
deseja utilizar para desenvolver os seus programas. O download do arquivo 
de instalação do JDK deve iniciar. Inicie o arquivo de instalação e siga as 
instruções na tela.
Figura 76 – Página oficial para efetuar o download do Android SDK
6.3 Instalando o Android Development Tools (ADT)
O Android Development Tools (ADT) é um plug‑in que tem por finalidade integrar o Android SDK ao 
Eclipse. O ADT auxilia, principalmente, no desenvolvimento de um aplicativo Android, colocando como 
destaques:
• O debug do projeto diretamente na IDE.
• Compilação e empacotamento de um projeto para instalação em um dispositivo Android.
• Efetuar criação de telas facilmente com o editor visual.
91
Re
vi
sã
o:
 M
ac
ili
a/
Ro
se
 -
 D
ia
gr
am
aç
ão
: J
ef
fe
rs
on
 -
 2
1/
10
/1
5
TÓPICOS ESPECIAIS DE PROGRAMAÇÃO ORIENTADA A OBJETOS
Para efetuar a instalação do Android Development Tools (ADT) é necessário abrir o Eclipse, acionar 
o menu Help e em seguida clicar na opção “Install New Software”. Em seguida, acionar o botão Add e 
efetuar o preenchimento dos campos conforme sequência a seguir:
Figura 77 – Instalando ADT
Figura 78 – Instalando ADT
92
Re
vi
sã
o:
 M
ac
ili
a/
Ro
se
 -
 D
ia
gr
am
aç
ão
: J
ef
fe
rs
on
 -
 2
1/
10
/1
5
Unidade III
Figura 79 – Instalando ADT
 Lembrete
Na página de download, efetuar o download da versão mais atual do 
Eclipse IDE for Java EE Developers específica para o Sistema Operacional e 
plataforma de desenvolvimento escolhida (32 ou 64 bits, de acordo com o 
hardware de utilização).
 Resumo
Apresentamos conceitos de desenvolvimento Android, toda a 
sua plataforma de arquitetura, bem como conceito fundamentais de 
desenvolvimento de aplicativos móveis.
A configuração de ambiente de trabalho é de extrema importância para 
o desenvolvimento de aplicativos móveis, criando‑se todo o ambiente e 
instalação de plug‑ins que são responsáveis pela execução e compilação 
das aplicações.
Toda a instalação provém de um kit disponibilizado pela Oracle, que 
possibilita o download, bem como a orientação da instalação em diversas 
IDEs de trabalho, como o Eclipse e o NetBeans, que possibilitam o trabalho 
de desenvolvimento de aplicativos móveis.
A arquitetura de trabalho em Android é subdivida em camadas, o que 
possibilita o desenvolvimento com segurança, a distribuição eficaz do 
código e eficiência na execução do código.
O Android vem ganhando espaço no desenvolvimento de novas 
tecnologias, visto que a necessidade por novos aplicativos que atendam à 
demanda do mundo cresce gradativamente.
93
Re
vi
sã
o:
 M
ac
ili
a/
Ro
se
 -
 D
ia
gr
am
aç
ão
: J
ef
fe
rs
on
 -
 2
1/
10
/1
5
TÓPICOS ESPECIAIS DE PROGRAMAÇÃO ORIENTADA A OBJETOS
Desenvolver aplicações móveis requer o conhecimento de suas versões, 
bem como sua arquitetura de desenvolvimento e criação de ambiente nas 
IDEs selecionadas para o desenvolvimento eficiente de uma aplicação.

Continue navegando