Documente Academic
Documente Profesional
Documente Cultură
dispositivos mveis
Ewerton Mendona
Professor Autor
Ewerton Mendona
Design Instrucional
Deyvid Souza Nascimento
Maria de Ftima Duarte Angeiras
Renata Marques de Otero
Terezinha Mnica Sincio Beltro
Diagramao
Izabela Cavalcanti
Coordenao
Anderson Elias
Coordenao Executiva
George Bento Catunda
Coordenao Geral
Paulo Fernando de Vasconcelos Dutra
Outubro, 2016
Catalogao na fonte
Bibliotecrio Hugo Carlos Cavalcanti, CRB4-2129
M539i
Mendona, Ewerton.
Introduo Programao para dispositivos mveis:
Curso Tcnico em Informtica: Educao a distncia /
Ewerton Mendona. Recife: Secretaria Executiva de
Educao Profissional de Pernambuco, 2016.
39 p.: il.
CDU 004.41(043)
Sumrio
Introduo ........................................................................................................................................ 8
5
2.2 Android Studio.....................................................................................................................................37
3.1 Variveis..............................................................................................................................................64
6
3.3.6 Operador de concatenao ...............................................................................................................75
3.6 Exerccios.............................................................................................................................................79
7
Introduo
Este caderno sua base principal de conhecimento para a disciplina de Introduo a Programao
de Dispositivos Mveis. Apesar de termos um contedo auxiliar atravs de vdeo, de suma
importncia que leia com bastante ateno, at mais de uma vez, o contedo deste caderno. Nele,
voc encontrar exemplos e proposta de exerccios. Voc deve repetir os exemplos e fazer todos os
exerccios para se preparar para as atividades avaliativas.
Este caderno foi preparado para o tempo que a disciplina ocorrer, por isto, limitado, mas possui
o conhecimento introdutrio sobre o assunto que pode e deve ser ampliado futuramente. Durante
o curso o aluno deve procurar informaes complementares na internet. Existe muito contedo em
texto e vdeo que pode ajudar o aluno a entender um conceito ou outro que no ficou claro o
suficiente. J esperado que o aluno tenha esta atitude.
A linguagem de programao usada para criar aplicaes no Android Java. Chamamos o Java de
uma linguagem porque ela uma forma de comunicao com o computador. Ela possui regras de
gramtica e ortografia muito rgidas, ou seja, o computador s entende da maneira correta. Um
errinho de grafia ou uma troca de lugar e o interpretador no vai entender o que voc quer que ele
faa. Por isso, tenha muita ateno e cuidado ao escrever os cdigos. Se algo der errado, verifique
letra a letra, palavra a palavra e linha a linha, para ver se voc no escreveu algo de forma incorreta.
A maior parte dos erros no comeo do aprendizado acontece devido a problemas de digitao.
Programao uma arte na resoluo de problemas e, muitas vezes, vamos ter que usar a
criatividade para resolver algo com os comandos que temos, porque nem tudo pode ser copiado de
algum lugar. Quando terminar os exemplos e atividades disponibilizados, procure outros exemplos
na internet e se dedique para entender como o problema resolvido. O ser humano aprende por
repetio. A cada exemplo visto e atividade realizada voc entende melhor um conceito. Repita os
exemplos e atividades at se sentir confortvel com a ideia apresentada. Assim, logo voc criar
suas prprias solues.
8
Antes de comear a meter a mo na massa, ou no cdigo, e criar suas prprias aplicaes,
necessrio entender o que a tecnologia Android, de onde ela veio, quais suas verses e seus
conceitos bsicos. Assim voc ter uma fundao melhor e estar mais preparado para alcanar
objetivos maiores.
Divirta-se enquanto programa. Programando voc pode fazer qualquer coisa, desde que siga as
regras que veremos em breve.
Vamos l?
9
Competncia 01
Nesta primeira competncia vamos tentar entender o que aconteceu com o mundo para que
praticamente todas as pessoas andem com um computador de cima para baixo sem desgrudar um
minuto destas maquininhas. Quais foram as tecnologias que permitiram essa revoluo e as
empresas que hoje dominam o mercado? O que o Android, quem criou, quem comprou, suas
verses ou, podemos dizer, sabores?
Pois . Eu sei que muita coisa. Mas a histria por trs vai nos inspirar a enfrentar o que vir a
seguir. Na segunda competncia, vamos montar o ambiente de desenvolvimento para escrever o
cdigo, encontrar os erros e testar nosso app (abreviao de application).
Em um ambiente isolado, o desktop, o usurio produzia seu contedo e pouco compartilhava. Com
seu computador conectado internet as possibilidades de compartilhamento expandiram. O
benefcio mais visvel foi o e-commerce, termo utilizado para designar o comrcio realizado atravs
da web. Vieram as tecnologias da web, como as pginas e sites. O usurio, ento, mudou o
10
Competncia 01
comportamento. Ele se comunica mais, compara mais, mais crtico, gasta mais. Existem mais
clientes, mas tambm mais fcil perd-los.
Dessa forma, as pessoas entenderam melhor a internet. Vieram as redes sociais, a internet
colaborativa, os creators, crowdfunding, etc. O poder das massas. Juntos somos mais fortes. A
chamada web 3.0. A necessidade de permanecer constantemente conectado. Durante este perodo
de transformao, o hardware, as peas fsicas dos aparelhos, ganharam novos materiais. A
internet, agora, podia ser transmitida por rdio ao invs de cabos, estava mais rpida e os celulares
prometiam algo maior e melhor.
A empresa Apple, comandada por Steve Jobs, foca seu desenvolvimento em uma linha nova de
produtos, voltada justamente para esta convergncia que a tecnologia estava tomando e lana o
iPhone. Um computador pessoal, mvel e conectado. Surge uma nova revoluo.
11
Competncia 01
O iPhone mudou a forma como as pessoas se relacionavam com a internet, mas a poltica da
empresa limitava em diversas formas o acesso a esta tecnologia. Diversas empresas viram que
poderiam lucrar neste novo mundo e resolveram colocar suas fichas nesta ideia. Entre elas, a
gigante Google. Mas vamos voltar um pouco no tempo para saber onde o Android nasceu.
12
Competncia 01
Palo Alto fica na Califrnia, Estados Unidos. l onde as grandes empresas de tecnologia do mundo
esto sediadas. E foi l que Andy Rubin, Rich Mineer, Nick Sears e Chris White fundaram a Android
Inc. para desenvolver dispositivos mveis mais inteligentes que estejam mais cientes das
preferncias e da localizao do seu dono. Inicialmente, a empresa comeou a desenvolver um
sistema operacional para cmeras digitais, mas viram que o mercado no era grande o suficiente.
Foi a que mudaram o foco para telefones mveis.
A empresa enfrentou problemas financeiros at que a Google a comprou em 2005. Foi a forma da
gigante entrar no mercado de dispositivos mveis. A empresa, ento, convenceu os fabricantes de
celulares e operadoras a adotarem o Android com a promessa de ser um sistema flexvel e
atualizvel. Para garantir uma maior adoo, a Open Handset Alliance foi fundada. Ela um
consrcio de tecnologia mvel que inclui a Google, Motorola, HTC, Sony, Samsung, Sprint Nextel,
entre outras, com o objetivo de gerenciar e evoluir a tecnologia mvel atravs de padres abertos.
O Android foi o primeiro produto da Open Handset Alliance e se tornou o principal concorrente
para o iPhone.
O que voc leu foi um resumo da histria por trs do Android. Saiba mais em
https://pt.wikipedia.org/wiki/Android
13
Competncia 01
Um sistema operacional uma camada de software que fica entre o hardware e as aplicaes que
os desenvolvedores constroem. Ele quem gerencia a memria, tanto temporria quanto a
persistente, o processador, os diversos sensores como cmera e acelermetro, e fornece uma
forma segura e mais simples dos desenvolvedores utilizarem estas caractersticas em seus
aplicativos. O sistema possui em seu ncleo uma verso do Linux bem mais leve, com modificaes
destinadas aos dispositivos mveis. O Linux um sistema bem estvel e que permite que os
fabricantes modifiquem a sua necessidade. Seu cdigo fonte aberto, ou seja, voc pode fazer o
14
Competncia 01
download do cdigo do sistema e modificar as suas necessidades sem ter que pagar nada a
ningum. Isto d a liberdade necessria para adicionar novos recursos e incorpor-los ao sistema
para que ele evolua rapidamente.
O Android alm de ser utilizado em smartphones, tambm pode ser utilizado em tablets, TV digital,
carros e relgios de pulso (Android Wear).
Como ele baseado em uma plataforma de cdigo aberto, a linguagem utilizada para desenvolver o
Android o Java, que tambm gratuita, deixando os produtos Android mais baratos tanto para o
usurio final quanto para os desenvolvedores. Ento, com um computador com bom desempenho,
voc pode baixar tudo o que necessrio e comear a desenvolver. O nico ponto que pago no
Android a disponibilizao na Google Play para venda de seu aplicativo, no caso, a Google fica com
uma pequena porcentagem da venda.
Toda essa filosofia livre para fabricantes, desenvolvedores e consumidores garantiram mais de 3
bilhes de usurios no mundo.
CURIOSIDADE
O sistema possui aproximadamente 12 milhes de linhas de cdigo, sendo 3 milhes
em XML; 2.8 milhes em C; 2.1 milhes em Java; e 1.75 milhes em C++. Mas voc
no precisa aprender tudo isto para desenvolver aplicaes para o sistema.
15
Competncia 01
camada s tem contato com o que est logo abaixo e logo acima. Isto beneficia sua modificao e
melhora aspectos de segurana. Por exemplo, isto impede que algum faa um aplicativo que
modifique as chamadas telefnicas do usurio sem que ele saiba.
O nvel zero, aquele que est mais prximo do hardware gerencia a memria, configuraes de
segurana e vrios drivers. Drivers so softwares que controlam as partes do hardware, como a
cmera, a tela, o sensor de toque, etc. Quem faz o driver do componente o fabricante dele. Esta
parte do sistema chamada de ncleo por estar mais profundo no sistema. Para o Android foi
utilizado o Sistema Operacional Linux verso 2.6.
16
Competncia 01
Neste nvel, tambm temos o Android Runtime, parte do sistema responsvel por executar as
aplicaes do aparelho, que, como so escritos em Java, temos uma mquina virtual enxuta
chamada Dalvik, a DVM.
uma caracterstica do Java possuir uma mquina virtual para executar a aplicao. A Dalvik foi
criada para aparelhos modestos em desempenho e recursos, como os smartphones.
O nvel trs a camada de interao entre o usurio e o dispositivo mvel, onde ficam os
aplicativos que voc vai desenvolver.
A linguagem de programao Java muito verstil. Ela pode ser utilizada para
construir aplicaes desktop, web e android. Ela ainda possui diversas bibliotecas
gratuitas que agilizam o processo de desenvolvimento.
Saiba mais sobre a linguagem de programao Java antes de continuar. Ela foi criada
utilizando o paradigma orientado a objeto. Lembre-se de que conhecimento poder.
https://pt.wikipedia.org/wiki/Java_(linguagem_de_programa%C3%A7%C3%A3o)
Graas a arquitetura e a utilizao de padres livres, diversas pessoas e empresas contribuem para
o aperfeioamento do Android. Assim que um conjunto de melhoramentos fica estvel, ele
disponibilizado para o pblico atualizar seus aparelhos. Perceba que, mesmo que uma nova verso
fique disponvel, ela demora para chegar mais para algumas marcas do que outras. Isto acontece
17
Competncia 01
porque o fabricante modifica para suas necessidades e depois disponibiliza a verso oficial da
empresa. Algumas delas nem so disponibilizadas para alguns aparelhos mais antigos. Por isso,
importante saber qual a verso do Android instalado em seu aparelho. Alguns aplicativos s
funcionam em verses mais modernas que possuem sensores mais modernos.
Figura 5 O jardim da sede da Android possui esttuas que representam a mascote referente verso
distribuda.
Fonte: www.androidos.in/wp-content/uploads/2014/10/android_statues_google_lawn.jpg
Descrio: Fotografia da entrada da sede da Android exibindo as esttuas das mascotes de todas as verses
lanadas.
A verso 1.5 do Android foi apelidada de Cupcake. Esta foi a primeira verso a ser disponibilizada
comercialmente ao pblico em smartphones. Ela tinha caractersticas voltadas para a captura de
imagens, fotografias e vdeo. Alm disso, associava essas caractersticas com o Picasa, rede social de
18
Competncia 01
A verso 1.6 ganhou o apelido de donut e vinha com verso aperfeioada de busca por voz e galeria
de fotos e vdeo melhorada. claro que cada nova verso vem com melhoramento de desempenho
e correo de bugs (erros), mas o que estamos destacando aqui so as caractersticas mais visveis
para o usurio final.
19
Competncia 01
Eclair uma bomba de chocolate. Duas verses possuem este codiname. Temos, ento, a verso
Android 2.1, quando o sistema ficou maduro suficiente. Temos uma integrao com o Google Maps,
j para aproveitar os novos sensores de GPS com geolocalizao. Tambm foi acrescentado suporte
ao HTML5 e o Bluetooth 2.1. Os aparelhos comeam a ganhar telas maiores.
20
Competncia 01
Froyo so conhecidos no Brasil como frozen yogurt. O Froyo corresponde ao Android 2.2. Marcou
pelo melhoramento em desempenho e estabilidade. O navegador ganhou um interpretador
JavaScript V8 e temos ferramentas de tethering via USB e hotspot.
21
Competncia 01
Na verso Android 2.3 houve um melhoramento na interface com suporte a resolues maiores. Os
sensores NFC foram implementados.
22
Competncia 01
Favo de mel adoou o desenvolvimento da verso Android 3.0. Houve uma otimizao de interface
para tablets, que foi a febre em 2011. Houve uma integrao com mais um servio Google, o Google
Talk, que possibilitou os vdeos chats, tambm conhecidos como vdeos chamadas.
23
Competncia 01
A verso Android 4.0 foi desenvolvida com o pensamento em tablets e celulares. Uma novidade
desta verso foi o desbloqueio do aparelho atravs de reconhecimento facial.
24
Competncia 01
A verso Android 4.1 veio com melhoramento de desempenho no sistema de toque e a incluso do
Google Now. A ideia do servio ele saber o que voc precisa antes de voc precisar. So os
primeiros passos para um assistente pessoal inteligente.
25
Competncia 01
Lanado em 2013, o Android 4.4 fez uma grandiosa campanha com a Nestl, dona da marca KitKat
de chocolate. Introduziu a barra de notificaes transparente e o Google Now na tela inicial. O
sistema ficou mais simples, melhorando o desempenho e sendo possvel sua instalao em
aparelhos mais antigos.
26
Competncia 01
Lollipop foi o doce escolhido para o Android 5.1. Foi introduzida uma nova linguagem de design em
todo o Android. Project Material baseada inicialmente no Google Now. A implementao de
aplicativos multitarefas foi redefinida e o sistema operacional foi preparado para sua expanso nos
dispositivos Wear.
27
Competncia 01
Cada nova verso vem com melhorias que esto relacionadas com a poca em que foram lanadas,
para esta verso foi o ano de 2015. A verso Android 6.0 veio com suporte para leitor de digitais e
modo de tela 4k.
28
Competncia 01
No ano de 2016 foi lanado o Android 7.0. Foi dada ateno para a segurana nesta verso, o
sistema operacional agora possui encriptao nativa. O sistema tambm ganhou novos emojis.
Aqueles desenhos que aparecem em comentrios e que representam emoes. Alm disso, temos
agora um modo de realidade virtual.
29
Competncia 01
Voc pode pensar que basta utilizar a mais atual e pronto. Bem. Isto vai te dar poder e alguns
problemas. As verses no so todas compatveis entre si. Algumas alteraes fundamentais foram
feitas e muita coisa mudou. Assim, se voc for produzir um aplicativo para Android, antes tem que
30
Competncia 01
determinar qual a mnima verso que ele pode rodar. E, dependendo da biblioteca que utilizar, as
verses mais antigas ficaro de fora, e nem todo mundo tem um celular top de linha. Ento, seja
modesto. Comece com aplicativos para a verso 2.3 e quando tiver maior conhecimento, v
aumentando. O mercado possui diversas verses, das mais antigas s mais modernas. Ser timo se
seus aplicativos puderem rodar na maioria delas. Lembre-se: o que voc pode, ou no utilizar, vai
depender da verso mnima que escolher.
Se voc tem um smarthphone com Android, procure na internet como achar a verso
do sistema operacional que est instalada nele. Apesar das formas entre verses
serem bem similares, alguma coisa mudou de uma verso para a outra. Ser um bom
exerccio para pegar a intimidade com o Android.
A Google fornece o servio Google Play. Um mercado no qual os programadores podem ofertar seus
aplicativos para usurios do Android. Os usurios utilizam o Google Play para comprar e instalar
aplicativos em seus aparelhos.
31
Competncia 01
www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-
2133151.html?ssSourceSiteId=otnpt
32
Competncia 01
https://developer.android.com/studio/index.html#downloads
No precisa instalar. Apenas deixe baixado, ou consiga com algum colega que j o tenha feito. Assim
no ter problema para a prxima disciplina. Caso precise de mais instrues para baixar os
programas, o comeo da prxima competncia explica passo a passo. D uma olhada l.
33
Competncia 02
Vimos na competncia anterior uma introduo para sabermos onde estamos nos metendo.
Aprendemos sobre o Android, sua histria e suas diversas verses. Isto vai nos dar uma base para
sabermos o poder do Android que precisamos sem deixar muita gente de fora. Agora vamos
preparar nosso ambiente de desenvolvimento e teste, e ver como um projeto bsico com o
significado de alguns arquivos.
www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-
2133151.html?ssSourceSiteId=otnpt
34
Competncia 02
No momento da escrita deste caderno, a verso do JDK era a 8u101. Ela possui o tamanho de 194
Mb e, dependendo da qualidade de sua conexo, deve demorar um pouco para baixar.
Seguimos com o passo a passo para o sistema operacional Windows. Para outros sistemas faa uma
pesquisa na internet para a instalao do JDK para seu respectivo sistema operacional.
Vai aparecer a janela do programa de instalao. Basta clicar em Next > ou Prximo > para
prosseguir com a instalao.
35
Competncia 02
Ao final aparecer a janela da Figura 21. Basta clicar em Close para encerrar a instalao.
36
Competncia 02
Alm do JDK, precisaremos das bibliotecas especficas para a verso do Android para qual
produziremos, chamada de Android SDK. Alm do Android SDK precisaremos de uma IDE. Uma IDE
um programa que ajuda a programar, que ser o Android Studio. Alm do SDK e do Android
Studio, vamos precisar de uma mquina virtual para fazer de conta que tem um celular com
Android no computador, a Android Virtual Device, com a verso especfica do Android para poder
rodar, que chamamos imagem.
Ufa!
Mas no to difcil quanto parece. O Android SDK, o Android Studio e a Android Virtual Device
vm tudo de uma vez quando a gente baixa o Android Studio. Ento, se no baixou, ter que baixar
agora. A IDE e o SDK juntos tm o tamanho de mais de 1.6 Gb. Pode levar algumas horas para
baixar. Pois ! Muito grande. Outro ponto negativo que voc precisar de um computador
potente para ter mais conforto durante os testes. Memria essencial para rodar uma mquina
virtual e vamos rodar a IDE e a mquina virtual, juntas.
Outra observao que o Android Studio ser atualizado depois de instalado. Ento, voc precisa
estar conectado internet para terminar a instalao. O bom que s fazemos isso uma vez, para
comear.
Antes a Google disponibilizava o Eclipse como IDE e um plug-in que deveria ser
instalado no Eclipse para que ele pudesse ajudar no desenvolvimento para Android,
mas o projeto do plug-in foi descontinuado e substitudo pelo Android Studio.
Depois de todos esses avisos, vamos comear a preparar o ambiente. V para a pgina do link
abaixo. A Figura 22 mostra a pgina que foi capturada no momento da escrita deste caderno. A seta
37
Competncia 02
https://developer.android.com/studio/index.html#downloads
Leia e concorde com os termos e condies de uso e baixe o instalador. Veja a Figura 23, a seta
aponta para a caixa de marcao para concordar com o contrato de uso.
38
Competncia 02
Enquanto baixa, voc pode ler o tutorial para o seu sistema operacional. Na Figura 24, a seta
vermelha mais alta aponta para a caixa de seleo do sistema operacional correspondente. Alm
disso, a pgina contm um vdeo que mostra a instalao no sistema operacional correspondente,
que est apontado pela seta vermelha mais abaixo. O processo bem simples. Siga os passos do
vdeo.
39
Competncia 02
40
Competncia 02
Ao executar o Android Studio pela primeira vez, aparecer uma janela perguntando se voc deseja
importar alguma configurao prvia. Deixe como est e pressione Ok.
41
Competncia 02
42
Competncia 02
Quando tudo estiver atualizado, a janela de inicializao vai aparecer com as opes bsicas.
43
Competncia 02
Clique na primeira opo, Iniciar um novo projeto Android Studio. Aparecer uma janela
solicitando dados de configurao do projeto.
44
Competncia 02
45
Competncia 02
O Android Studio transferir automaticamente o SDK do Android, caso ainda tenha sido feito. Basta
pressionar Next.
O Android Studio vem como alguns projetos iniciais pr-configurados. Vamos selecionar o Empty
46
Competncia 02
Activity.
Figura 33 Janela de templates para a Activity inicial. A imagem marca a opo que deve ser
selecionada para nosso exemplo.
Fonte: Autor.
Descrio: Janela de templates para a Activity inicial. Template um modelo inicial.
47
Competncia 02
Com isso, finalizamos as configuraes no nosso primeiro projeto Alo Mundo. Pressione Finish e
o Android Studio criar todas as pastas e arquivos necessrios para voc comear.
48
Competncia 02
A janela de dicas aparecer. Desmarque a caixa Show Tips on Startup para que ela no aparea
mais e clique em Close para fechar.
49
Competncia 02
Como disse, uma IDE um programa que ajuda a programar. Ele ajuda de vrias maneiras, uma
dessas maneiras construindo para voc as pastas e arquivos iniciais para a programao de um
projeto em Android. So vrias as pastas e arquivos construdos, mas no utilizaremos todos. Os
arquivos so textos simples, sem formatao, ento, podem ser editados at no Bloco de Notas do
Windows, mas a IDE nos dar mais ajuda em outros aspectos. Vamos, ento, conhecer a estrutura
bsica de um projeto Android.
Observe na Figura 37. Nela temos uma visualizao da estrutura lgica do projeto e no da
estrutura real. O Android Studio nos mostra uma viso simplificada daquilo que vai nos interessar
mais. Temos, ento, uma pasta com o nome app e nela trs outras: manifests, java e res.
Na pasta res fica os recursos da aplicao, que so imagens em diversas resolues da aplicao;
leiautes alternativos para visualizaes horizontais/verticais e leiautes para outros dispositivos; e
arquivos com valores padro e tradues para outras lnguas. Hoje em dia ficou mais complicado
desenvolver porque temos que pensar que a aplicao pode ser vista em diversos tamanhos de tela,
em diversas resolues e em diversas lnguas, e o desenvolvedor tem que se preocupar com tudo
isso.
A pasta java onde ficar todo o cdigo da aplicao. Esse cdigo dividido em vrios arquivos,
cada um com uma classe. Cada classe tem uma responsabilidade. Assim, fica mais fcil de achar o
que se procura com cada coisa em seu lugar. Observe na Figura 37 que temos um arquivo
MainActivity na pasta br.gov.pe.ead.alomundo. De agora em diante, chamaremos os arquivos de
cdigo Java de Classe e as pastas de pacote. A classe MainActivity a primeira classe a ser lida
em nosso projeto, o incio de tudo.
Na pasta manifests ficam arquivos de texto escritos em uma linguagem chamada XML, que
organiza a informao. Este arquivo, ele no uma classe, possui informaes essenciais sobre a
50
Competncia 02
aplicao como, por exemplo, a verso mnima do sistema operacional com que a aplicao pode
ser executada e o nome do pacote que serve de identificador nico para diferenciar de outras
aplicaes.
Nesse contexto, uma mquina virtual um smartphone. Ele facilita o desenvolvimento evitando
que voc faa o cdigo, empacote como uma aplicao finalizada e carregue para um smartphone
real. Muito trabalho, j que testamos diversas vezes. Uma mquina virtual ainda ajuda na procura
de erros, j que a IDE tambm auxilia a monitorar o que se passa durante a execuo da aplicao.
Agora que temos um projeto, que est vazio, mas um projeto que pode ser rodado, vamos criar
uma mquina virtual para rod-lo.
51
Competncia 02
Abra o Gerenciador de AVD indo no menu Tools > Android > AVD Manager. Quando a janela do AVD
Manager abrir, pressione Create virtual device....
AVD o acrnimo de Android Virtual Device, que, em uma traduo livre, significa
Dispositivo Virtual Android.
Observe na Figura 39 que nesta tela escolhemos o hardware. Mais esquerda temos a categoria do
dispositivo. Ao centro, a lista de modelos prontos para alguns dispositivos e direita a visualizao
de algumas informaes como o tamanho do dispositivo selecionado. Os modelos disponveis so
dos smartphones da Google, mas alguns fabricantes disponibilizam modelos de suas linhas na
internet. Vamos selecionar o Nexus One por ter uma resoluo menor e, com isso, gastar menos
recursos do computador.
52
Competncia 02
Agora que temos um aparelho virtual, vamos colocar uma verso do sistema operacional Android.
Como existem muitas, o Android Studio disponibiliza a verso mais recente. Caso voc queira uma
verso mais antiga, deve baixar. Como sempre, pode demorar muito, dependendo da qualidade de
sua conexo com a internet. Vamos utilizar a verso mais recente, a Nougat.
53
Competncia 02
Por fim, exibida uma tela com o resumo das escolhas e campos para solicitar o nome e A
orientao inicial do dispositivo (vertical ou horizontal). Vamos deixar como est. Pressione Finish
para concluir a criao do dispositivo virtual.
54
Competncia 02
Observe na Figura 42 que temos duas mquinas virtuais no AVD Manager. Uma j veio pronta para
uso no Android Studio e a outra ns criamos agora.
55
Competncia 02
Figura 42 AVD Manager exibindo duas mquinas virtuais. Em destaque, a que criamos.
Fonte: Autor.
Descrio: AVD Manager exibindo duas mquinas virtuais. Em destaque, a que criamos.
Para executar uma mquina virtual basta clicar no smbolo de play em verde. Observe na Figura 42
que temos dois smbolos de play, uma para cada mquina virtual.
Vamos testar tudo. No Android Studio clique no boto com o smbolo de play em verde. Observe
que ele est circulado em vermelho na Figura 43. Ir aparecer a janela para selecionar em qual das
mquinas virtuais ser executada a aplicao. No exemplo est selecionado o Nexus One, veja a
seta vermelha na Figura 43. Depois, pressione OK.
Pressione Next para qualquer janela que aparecer. So janelas sobre a memria utilizada para o
dispositivo e download de algum componente que esteja faltando e que seja necessrio.
Aguarde por um tempo. A inicializao de mquinas virtuais demora um pouco. Se tudo der certo,
aparecer a mquina virtual com a aplicao ativa, figura 46. Leia a observao adiante.
56
Competncia 02
Observao!
Em alguns computadores modernos, quando se executa a mquina virtual, aparece uma mensagem
como na Figura 44, e a mquina virtual no executada. Isto acontece porque a virtualizao
desabilitada no computador. A soluo entrar no menu de BIOS do computador e habilitar a
opo de virtualizao. No meu notebook foi necessrio, observem a Figura 45 com uma foto do
menu da minha BIOS e a modificao que fiz, enabled.
www.youtube.com/watch?v=af6di_zDzAs
57
Competncia 02
Figura 45 Menu da BIOS com a opo Intel Virtual Tecnhnology selecionada e a opo Enabled destacada.
Fonte: Autor.
Descrio: Fotografia do menu de BIOS com a opo de virtualizao selecionada e a opo para habilit-la
destacada.
58
Competncia 02
Figura 46 Janela com a mquina virtual e a aplicao que mostra a mensagem Hello
World!.
Fonte: Autor.
Descrio: Janela com a mquina virtual rodando com a aplicao. A aplicao exibe
apenas uma mensagem com o texto Hello World! .
Voc pode fazer vrios projetos de aplicaes diferentes e utilizar a mesma mquina virtual. No
precisa fazer uma mquina virtual por aplicao.
2.2.7 AndroidManifest.xml
O arquivo AndroidManifest.xml um arquivo de texto escrito em XML, onde ficam guardadas todas
as configuraes necessrias para executar a aplicao. Observe na Figura 47 um exemplo deste
arquivo para a aplicao Alo Mundo que fizemos anteriormente. Neste caso, o Android Studio fez
para a gente.
59
Competncia 02
Figura 47 AndroidManifest.xml
Fonte: Autor.
Descrio: Contedo do arquivo AndroidManifest.xml da aplicao Alo Mundo.
O pacote principal do projeto deve ser declarado na tag <manifest> utilizando-se o atributo
<package>.
Uma aplicao Android um conjunto de activities e todas elas devem ser declaradas no
AndroidManifest.xml, caso contrrio no ser possvel utiliz-las. A declarao feita na tag
<activity>.
Um projeto pode conter nenhuma ou vrias activities. Uma delas deve ser o ponto de partida da
aplicao e declarada na tag com as aes android.intent.cation.MAIN e a categoria
andooid.intent.category.LAUNCHER dentro da tag.
Para utilizar funcionalidades dos aparelhos, como GPS, SMS, ligaes, etc. voc precisa declarar esta
inteno no AndoridManifest.xml. Por exemplo:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">
60
Competncia 02
Voc pode aprender Android sem conhecer sobre XML, mas conhecendo fica mais
fcil. Este curso no aborda XML, mas existem diversos cursos gratuitos sobre o
assunto. Uma pesquisa rpida mostrar diversas alternativas. Amplie seus
conhecimentos e aprenda XML.
O importante voc saber o que o AndroidManifest.xml e para que serve. Nesta disciplina no
haver necessidade de alterarmos manualmente este arquivo. Na maior parte das vezes o Android
Studio escrever o que precisa por ns.
Voc pode desenvolver as telas da aplicao escrevendo cdigo em Java ou em XML. O Android
Studio tem uma ferramenta de desenho que ajuda a desenhar o leiaute das telas, escrevendo o
cdigo XML por voc. Mas, quando estivermos programando, ser necessrio buscar os elementos
na tela para manipulao.
61
Competncia 02
Temos um arquivo XML para cada um destes itens. Isto significa que, em uma aplicao bem escrita,
os valores correspondentes a cores, texto, valores e dimenses so colocados nestes arquivos. Fica
mais fcil de entender o porqu atravs do texto exibido na aplicao. Todo o texto da aplicao
colocado em um arquivo. Assim, quando formos traduzir nossa aplicao para o ingls, por
exemplo, no teremos de catar no cdigo o texto para alterar. Basta escrever outro arquivo de
texto na lngua que desejarmos.
2.3 Exerccio
Agora que voc j criou seu primeiro projeto, o Alo Mundo!, crie um projeto novo para a prxima
competncia. O exerccio importante para fixar o contedo exposto. Crie o projeto EAD
Pernambuco.
Observe que o Android Studio trabalha com um projeto de cada vez. Isto uma crtica de muitos
desenvolvedores. Apesar do Android Studio ser a ferramenta oficial da Google para
desenvolvimento Android, ela ainda est em evoluo e se acredita que seus desenvolvedores
escutaro as crticas dos usurios e modificaro a ferramenta para acessar vrios projetos ao
mesmo tempo, assim como o Eclipse.
62
Competncia 03
Agora vamos aprender alguns conceitos bsicos de programao em Java para realizarmos algo
mais interessante. Vamos utilizar o projeto do Exerccio da competncia anterior. Observe que ele
tem dois arquivos principais. A MainActivity.java, que o cdigo que ser executado quando a
aplicao for executada; e activity_main.xml, que a tela de visualizao correspondente quele
cdigo. Ento, temos uma associao de uma tela escrita em XML e um cdigo escrito em Java.
63
Competncia 03
3.1 Variveis
Toda aplicao utiliza dados. Dados so fragmentos de informao, como, por exemplo, 42,
#aprendendo, Estudar muito amanh :), 35.50, etc. Estes valores podem significar idades,
nomes, tweets, endereos, vdeos, qualquer coisa. Programas transformam estas informaes em
um formato que voc reconhece como Facebook, Twiiter, Instagram, etc.
Entenda que um programa faz algo til com os dados. O Facebook, por exemplo, tem um algoritmo
(algoritmo so os passos para a resoluo de um problema, como um programa) chamado de
Algoritmo de Afinidade. Ele utiliza todas as postagens, curtidas, visualizaes, cliques, qualquer
coisa que se faa quando se est logado no Facebook e d uma pontuao para seus gostos, seus
interesses, ou seja, suas afinidades. Com isso, ele pode prever se voc vai gostar de algo antes de
ver, com uma probabilidade grande de acerto. como prever o futuro, em um certo aspecto.
Para que possamos transformar dados em algo til, como o Algoritmo de Afinidade, temos que
primeiro guardar os dados para utilizarmos. Em programao, a estrutura que guarda um valor para
ser utilizado depois a varivel.
Para utilizarmos uma varivel em Java precisamos de um nome e de um tipo. Um tipo limita o que
cabe na varivel. assim, para no ter desperdcio de memria. Desse modo, a quantidade de
memria para guardar um nmero menor do que para guardar um texto.
Um tipo tambm define as operaes possveis para aquele valor. Por exemplo, para nmeros
podemos somar, subtrair, entre outras operaes, mas, para texto, podemos concatenar, que
colar um pedao de texto em outro, mas no podemos somar ou subtrair.
Em Java, para definir qualquer varivel se coloca primeiro o nome do tipo e depois o nome da
varivel, que chamamos de identificador. Voc tambm pode ir alm e colocar o valor inicial. Para
utilizar, basta chamar o identificador, que o computador substituir ele pelo valor. Veja os exemplos
64
Competncia 03
O Java consegue distinguir letras maisculas e minsculas. Dessa forma, os nomes de varivel
valor, VALOR, Valor e vAlOr so todas variveis diferentes. Tambm no se pode comear com
nmeros. Veja mais algumas regras de nomenclatura.
2. No pode ser true nem false - literais que representam os tipos lgicos (booleanos);
5. Deve ser a combinao de uma ou mais letras e dgitos UNICODE-16. Por exemplo, no alfabeto
latino, teramos:
a) Letras de A Z;
b) Letras de a a z;
c) Sublinha _;
d) Cifro $;
e) Dgitos de 0 a 9.
65
Competncia 03
Existem vrios tipos de dados numricos: byte, short, int e long. Veremos apenas os mais utilizados.
O tipo int define valores inteiros. Vai de -2.147.483.648 at 2.147.483.647. O tipo short um inteiro
que guarda uma quantidade menor de nmeros e serve para economia de memria. O tipo long o
dobro do int e guarda valores bem maiores, mas tambm consome o dobro de espao. O tipo byte
trabalha com bytes e no abordaremos neste caderno.
66
Competncia 03
67
Competncia 03
Este tipo guarda um nmero que representa um caractere. Existe uma tabela que liga o valor ao
caractere chamada UTF-16. Podemos armazenar apenas um caractere neste tipo de varivel, sua
denominao char. Caracteres em Java so descritos entre aspas simples. Veja o exemplo da
Figura 54. No exemplo, \u0041 o cdigo de um caractere. Qual ser?
Uma sequncia de caracteres no d para armazenar em um tipo char, ento como vamos
armazenar um texto?
Em Java uma sequncia de caracteres, como seu nome, ou o texto de uma redao, armazenado
68
Competncia 03
em um tipo complexo chamado String. Sua varivel ganha o nome de referncia e colocamos as
sequncias entre aspas duplas. Ela funciona como uma varivel primitiva, mas no . Tem muito
mais poder. Observe o exemplo da Figura 55.
Figura 55 Declarao de uma referncia a partir do tipo String, ou seja, da classe String.
Fonte: Autor.
Descrio: A imagem mostra o cdigo para a declarao de uma referncia String nomeada nome,
depois a utilizao desta varivel com o valor Fulano de Tal e outra linha com a declarao e utilizao
juntas.
3.3 Operadores
69
Competncia 03
uma expresso. Expresses podem ser bem grandes e podem conter valores e variveis, que
guardam valores. Podemos ter uma expresso x + 2 - y. Observe que expresses so construdas
com operadores.
Como disse, as expresses podem ser bem grandes e o computador no calcula tudo de uma vez.
Ele faz uma operao de cada vez e algumas so realizadas primeiro que outras. A esta ordem
damos o nome de precedncia de operadores. A Tabela 2 mostra os operadores mais utilizados e a
ordem de soluo de cima para baixo.
70
Competncia 03
Operadores sufixais e prefixais so um atalho para deixar uma expresso menor e diminuir as linhas
de programao. Tanto os sufixais quanto os prefixais so utilizados em tipos de dados que podem
utilizar operadores matemticos. Eles adicionam 1 ao valor da varivel ou subtraem 1 deste valor.
Assim, ++x igual expresso x = x + 1 e --x igual expresso x = x 1.
A diferena entre eles est na posio do sinal. Nos operadores sufixais a expresso vem primeiro e
depois o sinal. Por exemplo, x++ ou x--. Ele diz que primeiro utilizamos o valor da varivel e depois
somamos ou subtramos.
Exemplo: Vamos dizer que o x igual a 10. E temos a expresso (1 - x++) + (1 + - -x). Coloquei os
parnteses para ficar fcil de voc entender. Quando a expresso vem primeiro (sufixal), utiliza-se o
valor da varivel e depois se opera, somando ou subtraindo 1. Quando o operador vem primeiro
(prefixal), opera-se e depois se utiliza o valor na expresso. Veja a Tabela 3 para entender o passo a
passo de resoluo.
71
Competncia 03
Exerccio: Observe que todo o processo muda se trocarmos a posio dos sinais. Com x valendo 10,
faa a expresso (1 - ++x) + (1 + - -x). Tente fazer primeiro e depois veja a resposta na Tabela 4.
Temos ainda a operao prefixal not que representado por uma exclamao antes de uma
varivel booleana. O not no em ingls, ai fica no verdadeiro igual a falso e no falso igual a
verdadeiro. Caso o valor da varivel booleana seja verdadeiro, ele troca para falso e vice-versa. Por
exemplo, !x.
72
Competncia 03
Em uma expresso, depois de ter realizado as operaes matemticas, o computador passa para as
operaes comparativas. As operaes comparativas fazem testes que resultam em operaes
booleanas (verdadeiro/falto). As operaes comparativas so igual (==), diferente (!=), menor que
(<), maior que (>), menor que ou igual (<=) e maior que ou igual (>=). Por exemplo, 3 + 2 == 2 + 3?
Verdade, porque 3 + 2 5, que igual a 2 + 3 que 5.
Atente que o teste de igualdade realizado com ==, dois smbolos de igualdade juntos. O de
diferente != que significa no igual, outro modo de dizer diferente.
Depois de verificar os operadores comparativos chega a vez dos operadores lgicos, que fazem
operaes com valores booleanos e resultam, tambm, em um valor booleano. Os operadores so
&& para o e lgico e || para o ou lgico. Observe a Tabela 5 para os resultados das comparaes.
a b a && b a || b !a
true true true true false
true false false true false
false true false true true
false false false false true
Tabela 5 Tabela verdade
Fonte: Autor.
Descrio: Tabela com as operaes de e, ou e no lgicos, relacionando dois valores a e b e seu resultado em
uma das operaes.
Igual um operador de atribuio, por isto que o de comparao so dois smbolos de igualdade
juntos. A atribuio relaciona um valor com uma varivel. Ento, quando queremos relacionar o
valor 18 com a varivel idade, fazendo x = 18.
73
Competncia 03
Os outros operadores de atribuio tambm so atalhos para resumir comandos. Assim, quando
queremos somar um valor ao que j existe em x, fazemos: x += valor; se queremos multiplicar o
valor que tem em x com outro colocar: x *= valor. E assim por diante. Observe que associamos uma
operao matemtica com o smbolo de atribuio.
int resposta = 8;
resposta *= 2;
resposta -= 10;
resposta += 5;
resposta %= 4;
resposta /= 2;
Resposta: 1
74
Competncia 03
Concatenao a juno de uma string com outra. Assim, se concatenarmos Fulano com de Tal
teremos Fulanode Tal. Observe que a juno no cria espaos, por isto que os nomes ficaram
juntos. S podemos concatenar Strings, no funcionando com o tipo char.
Para concatenar, tambm utilizamos o smbolo de soma. Pelo fato de + terem dois sentidos, o de
soma ser para nmeros, e concatenao, ser para strings, dizemos que um operador
sobrecarregado.
3.4 Separadores
Os separadores so sinais que separam, ou sejam, indicam/modificam a ordem das operaes que
podem ou no ser diferentes da comum. A Tabela 6 contm os separadores em Java e quando eles
so utilizados.
75
Competncia 03
SEPARADOR DESCRIO
Ponto e vrgula ; Separa comandos.
Separam expresses alterando a precedncia. Por exemplo 2 * 3 + 4,
temos primeiro 2 * 3 e depois o resultado + 4. Se colocarmos 2 * (3 +
4), teremos primeiro o 3 + 4 e depois multiplicamos o resultado com
Parnteses ( )
2. Se tivermos parnteses dentro de parnteses, primeiro ser
realizada a operao dos parnteses mais internos para os mais
externos.
Colchetes servem para identificar o ndice de vetores. Veremos este
Colchetes [ ]
assunto mais frente.
Chaves { } Separa blocos de programao.
Tabela 6 Descrio dos separadores em Java.
Fonte: Autor.
Descrio: Tabela com a descrio de cada separador em Java.
Exerccio: Faa, linha a linha para cada tipo de operao, seguindo a ordem de precedncia de Java,
para a expresso: (2 + 3) * 5 > 3 * 5 & 3 * 4 < 4 + 9. No olhe direto a resposta, procure tentar fazer
antes e compare o resultado.
Resposta:
6 || true
76
Competncia 03
O primeiro projeto em Android baseado em um modelo possui uma caixa de texto com Hello
World! escrita. Vamos modificar este valor assim que o Android terminar de fazer o clculo.
No arquivo activity_main.xml temos uma tela pronta, que a tela do modelo. Nela tem um campo
de texto, clique nele e, ao lado, aparecero as propriedades daquele componente. Vamos colocar
um nome, como se fosse um nome de varivel. Coloque no campo ID a palavra campo. Observe na
Figura 58.
Agora v para o arquivo MainActivity.java e acrescente o cdigo da Figura 59. No comeo das
linhas voc reconhecer que um dos exerccios propostos, as duas ltimas linhas explicaremos
logo mais.
77
Competncia 03
78
Competncia 03
3.6 Exerccios
Lembre-se de que o mtodo setText() s aceita String. Assim, voc precisa concatenar com algum
texto os nmeros. Voc pode concatenar com uma String vazia , tambm.
79
Competncia 04
Na competncia anterior foi o bsico do bsico. No poderamos trabalhar com dados sem saber
formatar estes dados, mas essencial que saibamos deles para podermos trabalhar. Lembre-se!
Qualquer aplicao transformar dados em algo til. Que dados voc utilizar e para fazer o qu?
4.1 Estrutura if
if (expresso) {
cdigo
}
Ele utiliza a palavra-chave if que significa se em ingls. Temos uma expresso em que o resultado
tem que ser verdadeiro ou falso para fazer sentido. Se a expresso resultar em true, o cdigo dentro
do bloco executado. No bloco podemos ter de nenhuma a vrias linhas de cdigo. Veja o exemplo
na Figura 61.
80
Competncia 04
No exemplo da Figura 61, se o valor de idade for maior ou igual a 16, ser escrito em campo o
texto Pode votar. Mas se for menor de 16 no aparecer nada. Vamos contornar isto logo.
Else em ingls significa seno. No caso, se a expresso resultar em false, o bloco de cdigo depois
do else ser executado.
if (expresso) {
cdigo
} else {
cdigo
}
81
Competncia 04
No exemplo da Figura 62, se o valor de idade for menor que 16, aparecer a mensagem Voc no
tem idade para votar.
Podemos colocar instrues if...else umas dentro das outras para fazermos vrios dependentes.
if (expresso) {
if (expresso) {
cdigo
} else {
cdigo
}
} else {
if (expresso) {
cdigo
} else {
cdigo
}
}
82
Competncia 04
No exemplo da Figura 63, primeiro temos uma String com o valor azul, ento verificamos se ela
tem o valor vermelho, como no tem, o bloco else dele executado. Neste bloco temos uma nova
verificao, de que se a cor azul, como o texto do TextView pintado de azul. Caso no fosse,
entrava no bloco else desta estrutura. Nela tem outra verificao, se cor vale amarelo, seno for
ele escreveria No conheo esta cor e pintaria o texto de preto.
83
Competncia 04
Observe que ficou bem confusa estas instrues (estruturas) if...else aninhadas. s vezes, podemos
utilizar a estrutura switch no lugar, porque ela funciona de modo semelhante. Veja a estrutura
switch. Ela composta da palavra-chave switch e recebe um valor. Este valor comparado com o
valor1. Caso seja igual, o processamento das linhas segue a partir daqui. Caso o valor seja igual a
valor2, ento, o processamento seguir deste ponto em diante. A palavra-chave break serve para
interromper o processamento do bloco de cdigo. O processamento do bloco segue a partir de
default se todos as comparaes forem falsas.
switch (valor) {
case valor1:
cdigo
break;
case valor2:
cdigo
break;
default:
cdigo
}
Veja na Figura 64, o exemplo anterior utilizando a estrutura switch. Bem melhor de ser lido.
84
Competncia 04
A estrutura switch possui apenas um bloco e marca o lugar onde o processamento deve comear.
Ela chega a ser bem diferente do if...else. Utilizamos o break para interromper o fluxo de execuo
do bloco, mas ele opcional, assim como o default, podemos desejar seguir com o fluxo. Veja o
exemplo da Figura 65. Neste exemplo a partir de um valor os clculos so realizados. Utilizamos no
exemplo o clculo de fatorial.
Caso no lembre como se realiza o clculo de fatorial, assista a este vdeo antes de
procurar entender o algoritmo. www.youtube.com/watch?v=KR4xUGGgYZk
85
Competncia 04
4.5 Exerccio
Observe o cdigo da Figura 66. As duas ltimas linhas do cdigo pegam o calendrio do sistema. A
partir dele podemos pegar a data e a hora. A ltima linha coloca na TextView a hora a partir de um
nmero inteiro. Observe na mquina virtual que a hora 8:23 da noite, o equivalente 20:23.
Calendar.HOUR_OF_DAY retorna o valor de 20.
86
Competncia 04
Com base neste cdigo, se esta hora for at 12 escreva Bom dia, se for entre 12 e 18 escreva Boa
tarde se passar de 18 escreva Boa noite.
Resposta:
87
Competncia 05
Na competncia passada conseguimos fazer algum tratamento em alguns dados, como a hora do
sistema. Estruturas de deciso so a base para o processamento de informao. onde a magia
acontece. No entanto, as vezes temos que repetir vrias vezes um comando ou at um bloco de
cdigo. Voc pode at pensar, Tudo bem! Basta eu copiar e colar. Mas isso muito problemtico,
principalmente na hora de alterar. Tem tambm o fato de que algumas vezes no sabemos quantas
vezes para repetir, at o sistema estar rodando. Precisaremos de uma estrutura que possa repetir
um ou mais comandos para a gente, as estruturas ou laos de repetio.
So trs as estruturas: for, while e do...while. A diferena do for para as estruturas while est em
saber a quantidade de repeties. Quando se sabe, mais apropriado utilizar o for, quando no se
sabe, utilizamos uma das estruturas while. J a diferena entre estas estruturas est no teste inicial.
Vamos ento conhec-las melhor.
A estrutura for precisa determinar um incio, um teste de parada e o passo de incremento para se
alcanar o teste. mais indicada quando se sabe quantas vezes se deve repetir o bloco de
comandos.
Quando o comando lido, a varivel de inicializao definida e um teste feito para saber se o
bloco deve ser executado. Se for verdadeiro o teste, o bloco executado. Ao final da execuo
realizado um passo de incremento, um novo teste feito e, se for verdadeiro, executado o bloco.
Novamente ocorre um passo de incremento e o teste se repete. Acontece assim, sucessivas vezes,
at o teste retornar falso e a repetio ser encerrada. Observe o exemplo da Figura 68.
88
Competncia 05
No exemplo da Figura 67, criamos um LinearLayout. uma parte da tela para colocar elementos.
Depois, utilizamos uma estrutura for para criar trs botes e coloc-los no layout l. O lao
iniciado com 0 (i = 0), depois testado se i < 3 (0 < 3), ento criado um boto e colocado na tela. O
lao se reinicia. O valor de i acrescentado 1 (i++) e testado novamente (1 < 3). Enquanto for
verdadeiro o teste (i < 3), o cdigo ser repetido. Note que o teste verdadeiro para 0, 1, 2. O 3 no
verdadeiro, porque 3 no menor que 3. Observe que utilizamos a varivel i normalmente.
Ao final, configuramos este leiaute como o principal para esta activity. A outra em XML ser
ignorada. Esta uma forma de construir uma tela sem o XML. No vamos focar nisso. O foco aqui
o lao de repetio.
Exerccio: Na rea de colocar os passos podemos colocar qualquer expresso que altere a varivel
de controle. Faa o seguinte. Mude o lao para for (int i = 0; i < 10; i += 2) e observe o nmero nos
botes. A resposta est na Figura 69.
89
Competncia 05
Exerccio: Tambm podemos fazer um lao que conte de trs para frente. Altere o lao para for (int
i = 10; i > 0; i -= 3). Observe a ordem dos nmeros dos botes. A resposta est na Figura 70.
A estrutura ou lao while utilizada quando no sabemos a quantidade de repetio. Sua estrutura
90
Competncia 05
mostrada abaixo.
while (teste) {
cdigo
}
Observe que temos apenas o teste. claro que podemos transformar isso para se parecer mais com
um lao for, mas por que em vez de transformar no utilizamos um lao for?
No exemplo da Figura 71, criamos um objeto Random, que sorteia nmeros. Pedimos que ele
sorteie um nmero de 0 at 4 usando o mtodo nextInt(5). At a no temos a menor ideia do
nmero que ele sortear. Pode ser 0, 1, 2, 3 e 4. O while executar o cdigo se o nmero sorteado
for diferente de 0. Ento, pode ser que ele sorteie logo de primeira o 0 e no mostre nada. Se for
diferente de 0, ele cria um boto com o nmero e sorteia outro nmero e faz o mesmo teste. A
repetio ocorrer at sortear um 0. No exemplo da Figura 71, o primeiro sorteio foi 2, o segundo
foi 2 e o terceiro foi 0. A quantidade de botes deve mudar a cada teste da aplicao.
91
Competncia 05
Observe que no exemplo da Figura 71 tivemos que sortear um nmero antes do teste e depois
dentro do teste. Mas no teramos necessidade de repetir cdigo, se o teste do while fosse feito no
final. O do...while uma estrutura while onde o teste no final. Observe sua estrutura.
do {
cdigo
} while (teste);
Assim, o cdigo executado ao menos uma vez e depois feito um teste para as prximas. Veja o
exemplo do cdigo anterior utilizando do...while na Figura 72.
Observe que, como o teste ocorre depois de colocar o boto, foi sorteado um 0, seu boto foi
construdo e depois encerrado o lao. Observe, tambm, que s precisamos colocar uma linha para
sortear.
92
Competncia 05
A estrutura foreach, para cada em ingls, uma estrutura relativamente nova em Java. Ela utiliza
uma lista de variveis conhecida como array, que veremos em nossa prxima competncia. Por isso,
deixaremos para mostrar essa estrutura em um momento futuro.
93
Competncia 06
At agora vimos os componentes bsicos. Existem bem mais conhecimento necessrio para se fazer
tudo que se pode, mas o bsico se completa com este assunto: arrays. Ento, vamos completar
nossos estudos com esse assunto. Mas, lembre-se: existe muito mais contedo sobre programao
e desenvolvimento Java. No pare por aqui.
6.1 Vetores
Um vetor uma estrutura de dados formada por um conjunto de elementos de mesmo tipo.
Utilizamos vetores para simplificar o trabalho com muitas variveis iguais. Os vetores so chamados
arrays em programao.
Imagine que voc queira guardar o nome de dez produtos em variveis. Voc teria que declarar
nome1, nome2, nome3, nome4, etc. E se fossem 1000 nomes? Daria muito mais trabalho. Os
vetores resolvem este problema.
O vetor pode ter uma ou mais dimenses. Uma dimenso determina o posicionamento do valor.
Esta posio chamada de ndice. Assim, de acordo com a Figura 73, temos um vetor de 10
posies. O posicionamento dos vetores sempre comea por 0 em Java.
94
Competncia 06
quadrados devem ter o mesmo tipo, ou seja, se a matriz for de String, s pode ter String; se for de
int, s pode ter nmeros inteiros.
Matrizes de trs dimenses so muito utilizadas em programas e jogos 3D. Nelas podemos ter a
altura a largura e profundidade dos elementos. um endereo formado por trs valores. A Figura
75 mostra uma representao de uma matriz tridimensional.
95
Competncia 06
Podemos ter mais dimenses de acordo com a necessidade, mas at trs dimenses so mais
comuns.
Ento, como criamos estas variveis que podem guardar vrios valores nela?
Para declarar um vetor, ou matriz, colocamos o tipo, um par de colchetes para cada dimenso e um
identificador. Para iniciar um vetor, ou matriz, atribumos com a palavra-chave new o tipo e a
quantidade de itens de cada dimenso. Observe no exemplo da Figura 76 a criao de trs vetores
de uma, duas e trs dimenses de tipos diferentes.
A utilizao de vetores bem simples. Basta voc colocar o identificador do vetor e nos colchetes
colocar o endereo. Como em Java, o primeiro ndice comea sempre de 0, o exemplo da Figura 77
coloca o valor 10 na posio (3) do vetor unidimensional; o caractere d na coluna 3 da linha 15 da
matriz bidimensional; e a string dez na coluna 3 da linha 15, de profundidade 545 da matriz
tridimensional.
96
Competncia 06
Ento, para utilizar em uma expresso basta fazer o mesmo. O computador vai substituir o
endereo do vetor por seu valor, se existir. Como se fosse uma varivel comum.
bem comum utilizar laos for para preencher arrays. Quando se tem uma dimenso, utilizamos
um lao for; quando temos duas, aninhamos os laos para fornecer a posio da linha e da coluna.
Se tiver mais dimenses, vamos aninhando mais.
O exemplo da Figura 78 mostra o preenchimento com o nmero da linha, e da linha somado com o
da coluna, dos arrays. Preste ateno quantidade de itens de cada dimenso.
97
Competncia 06
Como dissemos a estrutura foreach foi construda para facilitar a leitura de variveis array. Ela passa
por cada item do array colocando cada valor em uma varivel para utilizao, de uma forma mais
simples do que pela estrutura for. Ela tambm utiliza palavra-chave for, mas de um jeito diferente.
Em tipo varivel colocamos uma varivel que utilizaremos no cdigo. Em array colocamos o array.
Observe o exemplo na Figura 79 que soma todos os valores do array a.
98
Competncia 06
6.4 Exerccio
2. Preencha o valor de acordo com a seguinte regra: se o valor da linha e da coluna forem iguais,
coloque o caractere x, seno, coloco o caractere o. Por exemplo, a primeira linha e a primeira
coluna [0] e [0], ento so iguais, coloca-se o valor x. Para preencher, utilize laos de repetio.
3. Agora faa um leiaute igual ao da Figura 80, com cinco botes e no texto de cada um dos botes
tem a lista de caracteres da linha equivalente. Assim, a primeira linha ter os valores x o o o
o . Utilize laos foreach para isto.
99
Competncia 06
100
Competncia 06
Resposta:
101
Concluso
Chegamos ao final da nossa disciplina. Voc viu uma introduo tecnologia Android e como
montar um ambiente de desenvolvimento e teste, fazendo a primeira aplicao de teste, o Alo
Mundo. Depois, nos embrenhamos pelos meandros da linguagem Java com alguns toques do
paradigma orientado a objeto e programao Android. Passamos por variveis, estruturas de
controle e deciso e finalizamos com arrays.
Deu para perceber que muita coisa e bem complexa. Mas no algo de outro mundo. at bem
parecido com o nosso. Nada que algumas horas de estudo no resolvam. Ento, no hora de
parar. O que vimos foi uma brevssima introduo. A linguagem Java e o desenvolvimento de
aplicativos ainda tem muito mais para ser visto. Anime-se! Se dedique com afinco que voc
consegue.
Caso algum conceito no tenha ficado bem entendido, volte e leia. Procure mais material na
internet. Voc encontrar em texto e em vdeo. s vezes, o que falta, uma explicao diferente.
102
Referncias
BURTON, Michael; FELKER, Donn. Desenvolvimento de Aplicativos Android para Leigos. Rio de
Janeiro: Alta Books Editora, 2014.
GLAUBER, Nelson. Dominando o Android: do bsico ao avanado. 2.ed. atual e ampl. So Paulo:
Novatec Editora, 2015.
LECHETA, Ricardo R. Google Android: Aprenda a criar aplicaes para dispositivos mveis com o
Android SDK. 3.ed. So Paulo: Novatec Editora, 2013.
MONTEIRO, Joo Bosco. Google Android: Crie aplicaes para celulares e tablets [recurso
eletrnico]. [s.l.]: Editora Casa do Cdigo, 2013.
SIERRA, Kathy,BATES, Bert. Use a cabea: Java. 2.ed. Rio de Janeiro: Alta Books, 2009.
103
Minicurrculo do Professor
Ewerton Mendona formado em Sistemas de Informao pela UPE e Design pela UFPE, com mestrado em
Cincia da Computao pela UFPE. Atualmente professor na Faculdade de Cincias e Letras de Caruaru e
Devry Unifavip. Possui experincia na rea de desenvolvimento WEB e design grfico desde 1998.
104