Buscar

Introdução ao desenvolvimento de aplicações para Android e seus Componentes

Prévia do material em texto

07/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/topico.php 1/14

Introdução ao desenvolvimento de aplicaç
Android e seus Componentes
Apresentar os conceitos iniciais para no que diz respeito ao desenvolvimento de sistema móvei
Android.
    
Introdução
O Android é um sistema operacional para dispositivos móveis, baseado
Linux. Seu uso mais conhecido é em Tablets PC e SmartPhones, e isso oc
em praticamente 190 países ao redor do mundo, ou seja, é praticame
possível encontrar um usuário de Android em qualquer canto do mundo.
Em termos de usuários, o Android é a maior base instalada de um sist
operacional móvel, crescendo na razão aproximada de um milhão de no
usuários ao dia, ou seja, praticamente um milhão de pessoas ligam s
aparelhos Android pela primeira vez, procurando os mais variados tipo
aplicações, jogos e conteúdos digitais.
Esses números incentivam os desenvolvedores de software a investi
nesse nicho de mercado, e para eles, o Android oferece uma plataforma p
criar os aplicativos e jogos procurados pelos usuários do Android. A
disso, a Google Play, loja da empresa Google que disponibiliza aplicat
07/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/topico.php 2/14
gratuitos e pagos, oferece um espaço que permite a qualquer aplicativo
visto por qualquer um dos usuários do Android, independentemente do 
em que ele esteja.
Em relação ao ambiente de desenvolvimento, o Android dá ao desenvolve
tudo o que ele precisa para construir seus aplicativos, uma IDE para edit
código-fonte de suas aplicações; provê bibliotecas que permitem acessa
principais funcionalidades do aparelho; componentes prontos que facili
o desenvolvimento da interface de usuário; além de mecanismos 
adequam o aplicativo desenvolvido às características de hardware de 
determinado aparelho, seja ele um telefone ou uma Tablet PC.
Essas características permitem que um aplicativo aproveite ao máximo
recursos de hardware que estão disponíveis em cada dispositivo. 
exemplo disso é a interface do usuário (as telas da aplicação) que se aju
automaticamente ao tamanho da tela (física) de cada dispositivo, com
efeito de girar a tela automaticamente quando o usuário vira o aparelho.
Para quem vem do ambiente da linguagem de programação Java, certame
se lembra do “escreva o programa uma única vez, e o execute em qualq
lugar...”. Como o Android usa uma máquina virtual para executar
aplicações, as características descritas anteriormente ajudam
desenvolvedor de software a construir um único aplicativo, que será l
interpretado e otimizado pela máquina virtual para as condições
dispositivo móvel, em tempo de execução.
Caso você queira realmente ser um desenvolvedor Android, seu princ
ponto de referência para buscar informações relacionadas 
desenvolvimento de aplicativos para Android tem que ser o próprio site
desenvolvedores do Android (http://developer.android.com). Esse 
concentra tudo o que é necessário para desenvolver para o Android, co
ambientes de desenvolvimento, diretrizes de desenvolvimento, documen
de especificação, exemplos de aplicativos, informações sobre as atualizaç
nas versões, datas de novos releases (atualizações), entre outros.
 
Desenvolvendo os Aplicativos
Para desenvolver um aplicativo Android, é necessário usar um ambiente
desenvolvimento para isso, que neste caso, é um ambiente conhecido co
Android SDK. Ele é um conjunto de ferramentas que servem para comp
testar e depurar o aplicativo durante a fase de desenvolvimento. Para qu
está no início do aprendizado, é recomendado o uso de um kit chamado A
07/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/topico.php 3/14
Bundle (download dispon
em: http://developer.android.com/sdk/index.html). Porém, antes de inst
lo, convém lembrar que esse ambiente é executado sobre a plataforma J
SE, que é distribuída gratuitamente pela Oracle no ender
(http://www.oracle.com), e que deve ser instalada previamente ao And
ADT Bundle, que contém os seguintes itens, a serem usados durant
desenvolvimento:
IDE Eclipse + o plug-in ADT;
Android SDK;
Gerenciador de Plataformas Android;
Imagens simuladas de dispositivos reais, para os testes do
desenvolvimento.
Após instalar a plataforma Java SE e o Android ADT Bundle, o ambiente
desenvolvimento estará pronto para o primeiro teste.
 
Android Virtual Device (AVD)
A execução em um ambiente que simula o dispositivo móvel é conhecido
meio técnico, como emulador, assim chamado por simular no computa
uma CPU executando o Android.
No caso do Android, esse emulador usa algumas configurações definidas p
usuário, para saber o quanto de memória virtual precisa ser aloc
tamanho da tela, velocidade de processamento da CPU, se a CPU 
coprocessador gráfico, entre outros. Essas configurações são chamadas
AVD (sigla para dispositivo Virtual Android, tradução livre do original
inglês Android Virtual Device). Um AVD é criado através de um utilit
chamado AVD Manager, que será discutido em detalhes mais adiante
mesma forma que o restante do ambiente de desenvolvimento Android. 
antes de começar a programar, é necessário conhecer alguns fundament
respeito do desenvolvimento de aplicativos Android.
 
Fundamentos de um Aplicativo Android
A linguagem de programação usada no desenvolvimento de aplicat
Android é o Java, entretanto o aplicativo não é apenas o código escrito. U
aplicação também é composta por arquivos de imagens (usados em íco
07/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/topico.php 4/14
fundos de tela, etc.), arquivos de banco de dados (armazenamento de u
lista de contatos, eventos, etc.), entre outros tipos de recursos.
Para gerar uma aplicação, o desenvolvedor usa o Android SDK para comp
o código-fonte, mas, além disso, ele também verifica os outros tipos
arquivos, buscando verificar se eles estão de acordo com as restrições
versão do Android onde a aplicação será executada, por exemplo. Apó
verificações, é criado o binário (chamado de APK), o qual poderá 
instalado no dispositivo móvel.
Um arquivo APK contém todo o conteúdo que forma uma aplicação, e u
vez que ele esteja sendo executado num dispositivo móvel, é executado n
ambiente seguro, conhecido como caixa de areia (do inglês sandbox).
O Android usa uma sandbox pelos seguintes motivos
Ele é baseado no sistema operacional Linux, que é multiusuário, e
cada usuário pode ter seu próprio conjunto de aplicações, que não
são usadas pelos demais usuários;
Quando o aplicativo é executado, o Android atribui ao aplicativo
um identificador único (ID) ao aplicativo. Esse ID é conhecido
apenas pelo Android, e ele é usado para que o sistemas saiba quais
são os recursos que aquele ID pode acessar, e para gerenciar o
acesso àqueles recursos;
Cada aplicativo sendo executado possui sua própria máquina
virtual, então, ela é executada totalmente isolada das demais
aplicações;
Quando o aplicativo é iniciado, ele é executado como um processo
do Android, ele e seus recursos podem ser iniciados quando
qualquer um dos componentes da aplicação é iniciado. O processo é
mantido em execução até que ele não seja mais necessário. Nesse
momento, o Android libera os recursos para que sejam usados por
outros aplicativos.
Assim, o Android executa os aplicativos dentro de um ambiente control
onde ele somente acessa os recursos e componentes que necessita, e n
mais além deles. Desse modo, uma aplicação não pode acessar ou
recursos do sistema operacional se não tiver permissão explícita para i
Em tese, isso significa que uma aplicação não poderia usar dados 
pertencem à outra aplicação, pois elas são executadas em ambien
totalmente isolados.
07/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/topico.php 5/14
Mas há um mecanismo simples que permite compartilhar dados entre vá
processos. Um aplicativo pode pedir permissão para acessar os dados
aparelho, como por exemplo, os contatosdo usuário, conteúdo 
mensagens SMS, cartões de memória, Bluetooth, entre outros. E
permissão deve ser dada pelo usuário no momento em que o aplicativ
instalado no aparelho.
 
Componentes de um Aplicativo Android
No Android, os componentes da aplicação são todo e qualquer arquivo 
compõe o aplicativo, e para o sistema operacional, qualquer um deles se
como um ponto de acesso para o Android. Entretanto, para o usuário, ape
alguns desses arquivos servem para que o usuário possa acessar o aplicat
Há quatro tipos diferentes de componentes de aplicação, que são:
 
 
Activities
 
Uma activity é uma única tela com a interface de usuário, e é sempre o
uma aplicação se inicia. Assim, se uma aplicação possui oito telas, ela po
oito activities. Apesar de pertencer a uma determinada aplicação, u
activity pode ser acessada por outras aplicações. Como exemplo, a lista
contatos pode acessar uma activity que mostra o mapa, para mostra
localização de um contato da lista.
 
 
Services
 
Um service é um componente executado em background, executa
processamentos demorados, ou para realizar alguma tarefa relacionad
algum processo remoto, e não tem nenhuma interface de usuário. 
exemplo, o player pode ser um serviço tocando música, enquanto o usu
vê fotos. Um service pode ser iniciado por uma activity e/ou interagir 
ela.
 
 
Provedores de Conteúdo (Content Providers)
07/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/topico.php 6/14
 
Um Content Provider é o componente de software responsável por geren
os dados compartilhados de uma aplicação. Esses dados podem 
armazenados numa ferramenta de base de dados, como SQLite, ou 
qualquer tipo de arquivo, armazenado no sistema de arquivos do Androi
eles também podem ser usados por qualquer aplicação através do Conte
Provider, não apenas aquela que é proprietária dos dados.
 
 
Receptores (Broadcast Receivers)
 
Um Broadcast Receiver é um componente de software que trata qualq
aviso enviado pelo Android, por exemplo: sinalizar o fim da bateria, av
da chegada de nova mensagem, entre outros. Qualquer aplicação p
enviar um aviso para o Android, desde que ela queira que outras aplicaç
saibam o que está acontecendo. Por exemplo, se uma aplicação está faze
download de um arquivo, ela pode querer que outras aplicações saibam 
o download foi finalizado, e que o arquivo pode ser usado.
Esse tipo de componente pode ter uma interface de usuário, dependend
o desenvolvedor considerar isso necessário. Entretanto, é bastante com
usar a barra de status (indicativo de atividade) do Android para deixa
usuário receber tais alertas.
 
 
Interação entre as Aplicações
 
Ao contrário de outros sistemas operacionais, o Android permite que u
aplicação use componentes de outra aplicação. Por exemplo, 
desenvolvedor cria um aplicativo de edição de imagens, que ativa a câm
para tirar uma fotografia e editá-la, simplesmente enviando uma mensa
para o Android, que inicia o componente correspondente à câm
fotográfica, como se ela fizesse parte da aplicação.
Para o sistema operacional, cada vez que um componente de softwa
iniciado, um novo processo é criado. Assim, no exemplo anterior, o And
tem dois processos em execução, um para o aplicativo de edição de imag
e outro para a câmera fotográfica.
07/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/topico.php 7/14
Ainda em relação ao exemplo anterior, a fotografia é o dado usado pelos 
aplicativos. O Android restringe o uso compartilhado do mesmo dado 
mais de um aplicativo. Entretanto, é possível compartilhar o uso de alg
recursos, desde que o Android tenha a permissão do usuário para isso. E
permissão tem que ser dada explicitamente pelo usuário.
 
 
Intents e Tasks
 
As mensagens que ativam os componentes de uma aplicação Android 
chamadas de intents. Elas se conectam aos componentes individuais dura
a execução das aplicações. Quando os intents são enviados por service
activities, eles definem as ações que o outro componente deve executar. P
os broadcast receivers, o intent simplesmente define o alerta que deve
enviado ao Android.
Como pode ser observado, os componentes do tipo contente provider 
são iniciados por intents, mas por um objeto de tipo ContentResolver.
O intent inicia os componentes de forma diferente, sendo que as activi
são iniciadas pelo método startActivity() ou startActivityForResult();
services são iniciados pelo método startService(), ou pelo mét
bindService(), quando um componente quer se conectar a um serv
enquanto que o broadcast é iniciado pelos métodos sendBroadca
sendOrderedBroadcast() ou sendStickyBroadcast(); enquanto que 
contente providers podem ser acessados pelo método query() de um ob
do tipo ContentResolver.
 
 
Dalvik VM
 
Quando se cria um aplicativo para os sistemas Windows ou Linux
processo de compilação traduz o código escrito em linguagem humana p
linguagem de máquina, que é a forma como ela é entendida p
processadores dos computadores PC. Como todos os PCs são constru
com a mesma arquitetura, isso torna possível desenvolver um aplica
para o Windows e executá-lo em qualquer computador que tenha as mes
características.
07/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/topico.php 8/14
Entretanto, o mesmo não ocorre com os dispositivos móveis, pois c
fabricante possui sua própria arquitetura de hardware, o que pod
inviabilizar a tarefa de desenvolver aplicativos que pudessem ser executa
em dispositivos de vários fabricantes. Mesmo usando o Java Micro Edi
(J2ME), podem ocorrer problemas de compatibilidade, pois a implementa
da máquina virtual Java, que executa o aplicativo, depende do tipo de ace
a recursos de hardware que o fabricante do aparelho quer disponibilizar.
Para contornar esse problema, há a máquina virtual Dalvik, qu
responsável por executar aplicativos Android nos dispositivos de qualq
fabricante. Ou seja, ela é uma runtime similar à do Java, mas que indepe
da implementação do fabricante, pois ela já vem com o sistema operacio
Android básico, permitindo a uma aplicação acessar vários recursos
aparelho, compartilhando o uso deles.
Assim, depois de escrever o código-fonte do aplicativo, ele pode 
compilado. Entretanto, ao invés de ser traduzido para linguagem
máquina, ele é convertido para uma linguagem intermediária, cham
bytecode. O aplicativo em bytecode é o formato que o desenvolve
distribui para os dispositivos equipados com Android. Quando o aplica
for instalado, o dispositivo identificará que o aplicativo necessita
máquina virtual Dalvik e fará a associação do aplicativo com a máqu
virtual, para que o usuário possa usá-lo.
Para que essa associação ocorra, o desenvolvedor deve conectar o 
aplicativo ao sistema operacional Android, e para isso, ele deve usa
framework do Android. No momento em que o aplicativo for inicializ
pelo usuário, a máquina virtual Dalvik interpretará o bytecode do aplicat
traduzindo o mesmo para a linguagem de máquina entendida p
dispositivo, possibilitando que o aplicativo seja executado em qualq
dispositivo móvel usando Android.
 
 
Zygote
 
Quando o aplicativo é chamado, ele pode usar recursos de r
compartilhamento de dados, outros recursos do telefone, como a câmer
lista de contatos, entre outros. Nessas situações, a aplicação tem 
inicializar todos os componentes que ela precisa, mas isso ocupa mu
recursos de processamento do dispositivo, e, em algumas situações, pod
07/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/topico.php 9/14
haver o mesmo componente sendo executado mais de uma vez. Para ev
isso, dentro do conceito de Activities, e cada Activity é executada em 
processo separado, o Android faz com que alguns recursos, muito usados
vários aplicativos, sejam executados em processos iniciados a partir de
processo base, o qual contém um conjunto de classes pré-carregadas, 
simbolizam o estado otimizado para criar uma nova instância da VM. Is
chamadode Zygote. Isso pode auxiliar o desempenho de seu aplicativo, 
dispositivo móvel como um todo, pois evita o processamento desnecess
para criar novos recursos, quando eles podem ser compartilhados.
 
 
Sandbox
 
A caixa de areia (sandbox) é um recurso que permite ao Android gerenci
funcionamento de uma aplicação, sem interferir no funcionamento 
demais, uma vez que elas podem usar alguns recursos compartilha
Assim, a sandbox é uma área monitorada pelo Android, onde a aplica
pode manipular seus dados, e tentar acessar os recursos compartilha
pelo Android, para evitar que algum problema com esses dados ca
problemas nos recursos compartilhados, e consequentemente, em ou
aplicativo.
O que deve ser lembrado pelo desenvolvedor, é que o gerenciamento
sandbox ocorre de acordo com as permissões definidas pelo usuário, qua
o aplicativo é instalado no dispositivo.
 
 
Ciclo de Vida de um Aplicativo Android
 
Ao contrário de outros modelos de programação, onde as aplicações 
iniciadas através de um método que é o ponto de partida, como o mét
main(), por exemplo, o Android não possui um método específico que in
a execução de um aplicativo. O Android inicia uma aplicação chamando
objeto de tipo Activity, através de algum método que corresponde ao est
em que o aplicativo se encontra.
O período que vai do momento em que o aplicativo é iniciado, at
momento em que ele é encerrado, chama-se ciclo de vida. O Android in
uma aplicação através de um método onCreate(), o que faz com qu
07/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/topico.php 10/14
aplicativo fique num estado chamado Criado, depois, a Actvity é inic
através de um método onStart(), que põe o aplicativo num estado cham
Iniciado, que pode ficar visível ao usuário, mas que ainda não interage 
ele.
Enquanto o aplicativo está no estado Iniciado, ele recebe um mét
onResume(), deixando o aplicativo no estado Executando, que é o mome
em que o usuário final pode interagir com ele. Enquanto o aplicativo 
nesse estado, há vários serviços sendo executados em background, co
atendimento a chamadas, recebimentos de mensagens, que geram ale
exibidos na barra de status do Android, entre outros.
Durante a execução do aplicativo, um serviço como o de recebimento
chamadas envia um intent para esta aplicação, fazendo com que ela te
sua execução pausada, através do método onPause(), ou seja, ela entra
estado Interrompida, até receber outro intent que a faça sair desse esta
Quando o usuário termina a chamada, o Android pode enviar um intent 
executa o método onResume(), que faz com que o Android volte a execut
aplicativo.
Como alternativa à operação acima, o usuário pode querer encerra
aplicativo, e isso faz com que o Android envie um intent onStop(), 
parará a execução do aplicativo, mantendo-o num estado de Parado. N
estado, ele pode receber um intent onRestart(), fazendo com qu
aplicativo seja reiniciado, ou pode receber um intent onDestroy(), faze
que o aplicativo seja realmente finalizado.
A Figura 1 apresenta o fluxo de mudança de estados, mostrando como
intents fazem com que as Activities mudem de um estado para o outr
quais os métodos que eles ativam. Esse fluxo deve ser conhecido, p
manter os dados íntegros, ou para recuperar o estado de certas informaç
visando garantir a confiabilidade na execução dos aplicativos.
Neste momento, vem a seguinte consideração: se uma aplicação po
várias Activities, e o Android pode iniciar qualquer Activity, como gara
que o aplicativo sempre inicia pela tela principal? Isso é feito através
uma propriedade da tela, em que a Activity é declarada como sendo a 
inicia o aplicativo (o Launcher). Essa declaração ocorre num arqu
chamado Manifesto, um arquivo do tipo xml que deve ser nomeado co
07/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/topico.php 11/14
AndroidManifest.xml e que deve ser colocado na pasta raiz do projeto. E
usado para armazenar a configuração do aplicativo. A estrutura básica
manifesto é apresentada pela Listagem 1.
1. <activity android:name=".MainActivity" android:label="@string/app_name">
2. <intent-filter>
3. <action android:name="android.intent.action.MAIN" />
4. <category android:name="android.intent.category.LAUNCHER" />
5. </intent-filter>
6. </activity>
Listagem 1 - Forma básica da declaração de uma Activity no arquivo
Manifesto.
 
Assim, quando aplicação for iniciada pelo usuário, O Android lerá e
arquivo para identificar qual é a Activity principal, que deve estar declar
como MAIN na ação a ser tomada pelo filtro do intent, e deve entrar co
LAUNCHER na categoria desse intent. Assim, o Android chamará o mét
onCreate() para executar a criação do aplicativo, e inicia-lo como 
processo no Android.
07/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/topico.php 12/14
Conclusão
Neste tópico foram apresentados alguns aspectos básicos relacionados
desenvolvimento de aplicativos Android, bem como alguns de s
componentes. Devido a extensão do assunto, alguns dos conce
apresentados serão abordados com mais detalhes em outros tópicos, qua
serão aprofundados temas específicos sobre o desenvolvimento 
plataforma Android.
 
Dica: Para fixar os conceitos e conferir seu aprendizado, realize os exercí
propostos.
Quiz
Exercício Final
07/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/topico.php 13/14

Introdução ao desenvolvimento de aplicações para Android e seus Componentes
INICIAR 
Referências
LEE, Wei-Meng; COSTA, Angelo Giuseppe Meira. Introdução ao
desenvolvimento de aplicativos para o Android. Rio de Janeiro: Ciência
Moderna, 2011.
OGLIARI, Ricardo da Silva; BRITO, Robison Cris. Android: do básico ao
avançado. Rio de Janeiro: Ciência Moderna, 2014.
SAMPAIO, Cleuton. Manual do indie game developer. Rio de Janeiro: Ciên
Moderna, 2013.
TERUEL, Evandro Carlos. Webmobile: desenvolva sites para dispositivos
móveis com tecnologias de uso livre. Rio de Janeiro: Ciência Moderna, 20
07/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/topico.php 14/14
Avalie este tópico

PRÓXIMOMercado de aplicações móveis Índice
Biblioteca
(http://alpha.u
ninove.br/F?
func=login-
session)
Portal Uninove
(http://www.un
inove.br)
Mapa do Site
® Todos os direitos
reservados
Ajuda?
(https://av
a.uninove.b
r/seu/AVA/
help/help.p
hp?
idCurso=)

Continue navegando