Você está na página 1de 105

Introduo Programao para

dispositivos mveis
Ewerton Mendona

Curso Tcnico em Informtica


Educao a Distncia
2016
EXPEDIENTE

Professor Autor
Ewerton Mendona

Design Instrucional
Deyvid Souza Nascimento
Maria de Ftima Duarte Angeiras
Renata Marques de Otero
Terezinha Mnica Sincio Beltro

Reviso de Lngua Portuguesa


Letcia Garcia

Diagramao
Izabela Cavalcanti

Coordenao
Anderson Elias

Coordenao Executiva
George Bento Catunda

Coordenao Geral
Paulo Fernando de Vasconcelos Dutra

Contedo produzido para os Cursos Tcnicos da Secretaria Executiva de Educao


Profissional de Pernambuco, em convnio com o Ministrio da Educao
(Rede e-Tec Brasil).

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.

Inclui referncias bibliogrficas.

1. Educao a distncia. 2. Engenharia de Software. 3.


Dispositivos Mveis. I. Mendona, Ewerton. II. Ttulo. III.
Secretaria Executiva de Educao Profissional de
Pernambuco. IV. Rede e-Tec Brasil.

CDU 004.41(043)
Sumrio
Introduo ........................................................................................................................................ 8

1.Competncia 01 | Conhecer os Conceitos Bsicos de um Sistema Operacional Mvel ................. 10

1.1 Do desktop para o mobile ....................................................................................................................10

1.2 Breve histria do Android ....................................................................................................................12

1.3 O que o Android................................................................................................................................14

1.4 Arquitetura do Android........................................................................................................................15

1.5 Os diversos sabores do Android ...........................................................................................................17

1.5.1 Android Cupcake ..............................................................................................................................18

1.5.2 Android Donut ..................................................................................................................................19

1.5.3 Android Eclair ...................................................................................................................................20

1.5.4 Android Froyo ...................................................................................................................................21

1.5.5 Android Gingerbread ........................................................................................................................22

1.5.6 Android Honeycomb .........................................................................................................................23

1.5.7 Android Ice Cream Sandwich ............................................................................................................24

1.5.8 Android Jelly Bean ............................................................................................................................25

1.5.9 Android KitKat ..................................................................................................................................26

1.5.10 Android Lollipop .............................................................................................................................27

1.5.11 Android Marshmallow ....................................................................................................................28

1.5.12 Android Nougat ..............................................................................................................................29

1.5.13 Dor de barriga.................................................................................................................................30

1.6 Google Play .........................................................................................................................................31

1.7 Preparao para a prxima competncia .............................................................................................32

2.Competncia 2 | Configurar o Ambiente de Desenvolvimento e Conhecer Arquivos Bsicos de XML


........................................................................................................................................................ 34

2.1 Baixando e instalando o JDK ................................................................................................................34

5
2.2 Android Studio.....................................................................................................................................37

2.2.1 Download do Android Studio ............................................................................................................37

2.2.2 Instalando o Android Studio..............................................................................................................40

2.2.3 Iniciando um novo projeto ................................................................................................................43

2.2.4 Conhecendo a estrutura do projeto ..................................................................................................50

2.2.5 Criando uma mquina virtual ............................................................................................................51

2.2.6 Executando uma aplicao na mquina virtual ..................................................................................56

2.2.7 AndroidManifest.xml ........................................................................................................................59

2.2.8 Telas em XML ...................................................................................................................................61

2.2.9 Texto, cores, valores e dimenses.....................................................................................................62

2.3 Exerccio ..............................................................................................................................................62

3.Competncia 03 | Formatar uma Activity para o Desenvolvimento, Utilizando Operadores


Matemticos ................................................................................................................................... 63

3.1 Variveis..............................................................................................................................................64

3.2 Tipo de dados primitivos......................................................................................................................64

3.2.1 Tipo de dado lgico...........................................................................................................................65

3.2.2 Tipo de dado numrico inteiro ..........................................................................................................66

3.2.3 Tipo de dado numrico real ..............................................................................................................67

3.2.4 Tipo de dado de caractere ................................................................................................................68

3.2.5 Tipo de dado complexo: String ..........................................................................................................68

3.3 Operadores .........................................................................................................................................69

3.3.1 Operadores Sufixais e Prefixais .........................................................................................................71

3.3.2 Operadores matemticos .................................................................................................................72

3.3.3 Operadores comparativos .................................................................................................................73

3.3.4 Operadores lgicos ...........................................................................................................................73

3.3.5 Operadores de atribuio .................................................................................................................73

6
3.3.6 Operador de concatenao ...............................................................................................................75

3.4 Separadores ........................................................................................................................................75

3.5 Visualizando o resultado dos operadores .............................................................................................77

3.6 Exerccios.............................................................................................................................................79

4.Competncia 04 | Formatar uma Activity para o Desenvolvimento de Estruturas de Controle


Condicional ..................................................................................................................................... 80

4.1 Estrutura if ..........................................................................................................................................80

4.2 Estrutura if else ................................................................................................................................81

4.3 Estrutura if else aninhadas ...............................................................................................................82

4.4 A estrutura switch ...............................................................................................................................84

4.5 Exerccio ..............................................................................................................................................86

5. Competncia 05 | Formatar uma Activity para o Desenvolvimento de Estruturas de Repetio .. 88

5.1 Estrutura for ........................................................................................................................................88

5.2 Estrutura while ....................................................................................................................................90

5.3 Estrutura do...while .............................................................................................................................92

5.4 Estrutura foreach .................................................................................................................................93

6. Competncia 06 | Formatar uma Activity para a Utilizao de Listas e Arrays ............................. 94

6.1 Vetores ................................................................................................................................................94

6.2 Utilizando laos for aninhados para preencher um array .....................................................................97

6.3 Estrutura de repetio foreach ............................................................................................................98

6.4 Exerccio ..............................................................................................................................................99

Concluso ...................................................................................................................................... 102

Referncias ................................................................................................................................... 103

Minicurrculo do Professor ............................................................................................................ 104

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

1.Competncia 01 | Conhecer os Conceitos Bsicos de um Sistema


Operacional Mvel

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).

Vamos, ento, entrar no mundo da programao mvel, ou mobile (pronuncia-se mobaio).

1.1 Do desktop para o mobile

O termo desktop utilizado para referenciar os computadores de mesa. Programas desktop so


programas que foram projetados para serem independentes da internet e dominaram os anos de
1980. At hoje utilizamos vrios deles. Uma calculadora, por exemplo, no precisa estar conectada
na internet para desempenhar seu papel. Ento, surgiu a internet e, com ela, a web. Entenda que
internet e web so duas coisas diferentes. A internet o meio onde a web existe. Na internet, alm
da web, temos vrios outros servios que chamamos protocolos. Mas no precisamos entrar em
detalhes sobre isso. O ponto a que quero chegar o que mudou no comportamento do usurio de
computador.

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.

CREATOR como chamado o criador de contedo para o YouTube.

CROWDFUNDING uma vaquinha na internet. Diversos sites propem vrios


projetos onde pessoas contribuem para que aquele projeto saia do papel e se torne
um produto real

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

Figura 1 Steve Jobs mostra o iPhone para o mundo.


Fonte: https://images.rapgenius.com/68d81b5c84469e8c5bdd00f43f576a69.1000x750x1.jpg
Descrio: Steve Jobs segurando o iPhone.

O problema da Apple, se que podemos chamar de problema, sua estratgia de mercado. So


produtos excelentes, muito bem-acabados e absurdamente caros. Na poca, para se desenvolver
aplicativos para iPhones, voc precisaria de um iPhone, de um Mac e pagar todas as licenas
envolvidas na distribuio de seu aplicativo na Apple Store, a loja de aplicativos da Apple.
Realmente no era para qualquer um. Mas, graas viso de Jobs, temos todo um ecossistema para
explorar, e muitos outros seguiram seus passos.Com isso, o usurio modificou seus hbitos e
percepes novamente, e estamos descobrindo quem ele e o que precisa, para podermos
oferecer.

1.2 Breve histria do Android

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

Figura 2 Criadores do Android.


Fonte: www.singularissoftwares.com/img/pendiri-android.jpg
Descrio: Foto dos quatro criadores do Android.

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

No se limite apenas a conhecer um sistema. Procure informaes sobre o iPhone


para ampliar seus horizontes. https://pt.wikipedia.org/wiki/IPhone

1.3 O que o Android

O Android um sistema operacional para dispositivos mveis, baseado em uma plataforma de


cdigo aberto sob a licena Apache. Mas vamos entender melhor os aspectos que tornaram o
Android to popular e que se encontra em sua definio.

Figura 3 Marca do Android.


Fonte: http://blogdalu.magazineluiza.com.br/wp-content/uploads/2016/03/Conhe%C3%A7as-algumas-
das-novidades-do-Android-N.jpg

Descrio: Marca do Android.

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.

D uma olhadinha no site da Open Handset Alliance. www.openhandsetalliance.com/

1.4 Arquitetura do Android

A arquitetura do Android construda em camadas, como se fosse um bolo de camadas. Cada

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.

Figura 4 Arquitetura em camadas do sistema Android.


Fonte: www.tiselvagem.com.br/wp-content/uploads/2011/10/Arquitetura-Android.png
Descrio: A figura mostra a arquitetura do Android dividida em camadas. Embaixo fica o nvel 0, acima o nvel 1,
depois o nvel 2 e no topo o nvel 3.

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.

No nvel um temos as bibliotecas, libraries. A biblioteca um conjunto de cdigo que possibilita

16
Competncia 01

fazer algo para o sistema.

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 dois a camada de framework (camada de trabalho para o desenvolvedor). Os


desenvolvedores tm acesso total ao framework que possui ferramentas bsicas para construo de
aplicaes mais complexas.

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)

1.5 Os diversos sabores do Android

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.

Mas, por que eu disse sabores em vez de verses do Android?

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.

Cada verso do Android possui um codiname, um apelido, e a equipe de desenvolvimento batiza as


verses com nomes de doces. Supe-se que isto acontea por conta de uma brincadeira interna que
nunca veio a pblico. Outra caracterstica sobre estes codinames a que a primeira letra de cada
doce segue a ordem alfabtica. Observe a seguir. O nome das duas primeiras verses tambm
nunca veio a pblico.

1.5.1 Android Cupcake

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

fotos da Google, e o YouTube, servio de vdeos tambm do Google.

Figura 6 Interface do Android Cupcake.


Fonte: www.theverge.com/2011/12/7/2585779/android-history
Descrio: Captura da tela inicial do Android Cupcake.

1.5.2 Android Donut

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

Figura 7 Interface do Android Donut


Fonte: www.theverge.com/2011/12/7/2585779/android-history
Descrio: Captura da tela inicial do Android Donut.

1.5.3 Android Eclair

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

Figura 8 Suporte para interfaces com resolues maiores.


Fonte: www.theverge.com/2011/12/7/2585779/android-history
Descrio: Captura da tela inicial do Android Eclair em duas resolues diferentes.

1.5.4 Android Froyo

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.

TETHERING um termo em ingls que corresponde prtica de se utilizar um


dispositivo mvel, como um celular, que atua como uma ponte para oferecer acesso
de rede a outros equipamentos, remotamente.

21
Competncia 01

Figura 9 Interface da tela do Android Froyo.


Fonte: www.theverge.com/2011/12/7/2585779/android-history
Descrio: Captura da tela inicial do Android Froyo.

1.5.5 Android Gingerbread

Na verso Android 2.3 houve um melhoramento na interface com suporte a resolues maiores. Os
sensores NFC foram implementados.

22
Competncia 01

Figura 10 Interface da tela do Android Gingerbread. Possui diferenas sutis de


interface.
Fonte: www.theverge.com/2011/12/7/2585779/android-history
Descrio: Captura da tela inicial do Android Gingerbread.

1.5.6 Android Honeycomb

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

Figura 11 Interface da tela do Android Honeycomb em um tablet.


Fonte: www.theverge.com/2011/12/7/2585779/android-history
Descrio: Captura da tela inicial de um tablet com o Android Honeycomb.

1.5.7 Android Ice Cream Sandwich

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

Figura 12 Interface da tela do Android Ice Cream Sandwich.


Fonte: www.theverge.com/2011/12/7/2585779/android-history
Descrio: Captura da tela inicial do Android Ice Cream Sandwich.

1.5.8 Android Jelly Bean

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

Figura 13 Interface da tela do Android Jelly Bean.


Fonte: www.theverge.com/2011/12/7/2585779/android-history
Descrio: Captura da tela inicial do Android Jelly Bean.

1.5.9 Android KitKat

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

Figura 14 Interface da tela do Android Kitkat.


Fonte: www.theverge.com/2011/12/7/2585779/android-history
Descrio: Imagem mostra a tela inicial do Android Kitkat.

1.5.10 Android Lollipop

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

Figura 15 Computao vestvel. O relgio inteligente com o Android Lollipop.


Fonte: www.theverge.com/2011/12/7/2585779/android-history
Descrio: Relgio inteligente que exibe o tempo restante para se chegar em
casa, baseado no GPS do usurio.

1.5.11 Android Marshmallow

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

Figura 16 Interface da tela do Android Marshmallow.


Fonte: https://pt.wikipedia.org/wiki/Hist%C3%B3rico_de_vers%C3%B5es_do_An
droid#Android_Marshmallow
Descrio: Captura da tela inicial do Android Marshmallow.

1.5.12 Android Nougat

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

Figura 17 Interface da tela do Android Nougat.


Fonte: http://cdn.bgr.com/2016/08/google-nexus-2016-android-7-0-nougat-
launcher-search-3.jpg?quality=98&strip=all&strip=all
Descrio: Captura da tela inicial do Android Nougat.

Assista ao vdeo de lanamento do codiname do Android 7.0.


www.youtube.com/watch?v=8xn9iq3lG_w

1.5.13 Dor de barriga

Por que mostramos todas estas verses?

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.

O aluno do EAD deve ter a caracterstica de pesquisar aquilo que no conhece.


Exercite esta capacidade pesquisando todos os termos tcnicos e at o nome dos
doces que no conhece para um melhor aproveitamento do curso.

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.

1.6 Google Play

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.

O Google Play tambm oferece um servio de atualizao. Se um desenvolvedor fizer o upload de


uma nova verso de seu aplicativo, o Google Play informa aos usurios que possuem o aplicativo
sobre a atualizao.

31
Competncia 01

Figura 18 Pgina inicial do Google Play.


Fonte: Autor.
Descrio: Pgina inicial do Google Play, em que aparecem vrios aplicativos gratuitos e pagos.

1.7 Preparao para a prxima competncia

Na prxima competncia montaremos o ambiente de desenvolvimento e o ambiente de teste. Os


programas necessrios para isso so grandes. Um deles de mais de 1.6 Gb. Sugerimos que desde
j baixe os programas para que voc tenha tempo de correr atrs de alguma soluo, caso d algum
problema.

Baixe o JDK no link abaixo:

www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-
2133151.html?ssSourceSiteId=otnpt

Baixe o Android Studio no link abaixo:

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

2.Competncia 2 | Configurar o Ambiente de Desenvolvimento e


Conhecer Arquivos Bsicos de XML

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.

Se voc se preocupou em fazer o download do material como explicado na competncia anterior,


todo os arquivos necessrios j esto em seu computador e agora s precisamos instalar e
configurar. Como dito anteriormente, os arquivos so muito grandes e voc precisa de uma
conexo com a internet de boa qualidade para no ter problemas.

2.1 Baixando e instalando o JDK

Como a linguagem utilizada na produo de aplicativos o Java, devemos baixar a biblioteca e


ferramentas de desenvolvimento do Java. Todas elas esto armazenadas em um conjunto de
arquivos chamado JDK (Java Development Kit, traduzido fica Quite de Desenvolvimento Java). V
para a pgina do link abaixo. Ir aparecer a pgina da Figura 19. Marque a opo circundada de
vermelho e clique no link correspondente verso de seu sistema operacional. Como exemplo,
deixei destacada em amarelo a verso para o Windows 64 bits.

www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-
2133151.html?ssSourceSiteId=otnpt

34
Competncia 02

Figura 19 Pgina de download do JDK.


Fonte: Autor.
Descrio: Pgina de download do JDK com uma marca vermelha no lugar para aceitar a licena de uso e um destaque
amarelo em um link para o JDK do Windows 64 bits.

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

Figura 20 Janela de instalao do JDK.


Fonte: Autor.
Descrio: Janela de instalao do JDK.

Ao final aparecer a janela da Figura 21. Basta clicar em Close para encerrar a instalao.

Figura 21 Janela de instalao do JDK ao final do processo.


Fonte: Autor.
Descrio: A imagem mostra a tela final do processo de instalao do JDK com um boto Close
para fech-la.

36
Competncia 02

2.2 Android Studio

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.

2.2.1 Download do 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

vermelha aponta para o boto de download.

https://developer.android.com/studio/index.html#downloads

Figura 22 Pgina de download do Android Studio.


Fonte: Autor.
Descrio: Pgina de download do Android Studio com uma seta vermelha apontando para o boto de
download.

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

Figura 23 Pgina com o contrato de uso do Android Studio.


Fonte: Autor.
Descrio: Pgina com o contrato de uso do Android Studio. Uma seta vermelha aponta para a caixa de
marcao para aceitar o contrato e poder fazer o download.

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

Figura 24 Pgina com o tutorial de instalao do Android Studio.


Fonte: Autor.
Descrio: Pgina com o tutorial de instalao do Android Studio. Uma seta vermelha ao lado direito aponta
para a caixa que muda o sistema operacional relativo ao tutorial, com opes de Windows, Mac e Linux. Outra
seta esquerda aponta para o vdeo que mostra a instalao no sistema operacional correspondente. Na
imagem temos o Windows.

2.2.2 Instalando o Android Studio

Depois de baixar o arquivo, execute-o. A janela de instalao aparecer. O processo o padro de


instalao de aplicaes Windows. Caso voc queira assistir antes, tem um vdeo na pgina de
tutorial que mostra o procedimento. Aceite as definies e configuraes padro.

Quando a instalao terminar aparecer a janela da Figura 25.

40
Competncia 02

Figura 25 Janela de encerramento de instalao do Android Studio.


Fonte: Autor.
Descrio: A imagem mostra a tela final da instalao, com a opo de iniciar o Android Studio
marcada e um boto Finish para finalizar o procedimento.

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.

Figura 26 Janela de importao de configurao.


Fonte: Autor.
Descrio: A imagem mostra a janela de importao de configurao com a opo de no importar
uma configurao prvia marcada e um boto OK.

A splash de inicializao aparecer.

41
Competncia 02

Figura 27 Splash do Android Studio.


Fonte: Autor.
Descrio: esta imagem mostrada sempre que o Android Studio aberto enquanto
prepara os arquivos necessrios para funcionar corretamente. Mostra apenas a logo do
mesmo e uma barra de progresso indicando o andamento da preparao dos arquivos
necessrios.

Agora o Android Studio far o download das atualizaes.

Figura 28 Tela do assistente de configurao do Android Studio.


Fonte: Autor.
Descrio: A imagem mostra uma tela de boas vindas do Android Studio dizendo que validar o Android SDK
padro e as configuraes iniciais padro. No futuro voc poder mudar a verso do Android SDK, fazendo o
dowload dela ou utilizar alguma que j esteja disponvel. A tela exibe smbolos referentes as tecnologias
ambiente para o Android: smartfones e tablets, relgios, TVs, carros e Google Glass.

42
Competncia 02

O download deve demorar um tempo maior ou menor, dependendo da velocidade de conexo.


Aguarde terminar.

Figura 29 Tela de download da atualizao.


Fonte: Autor.
Descrio: na tela de download da atualizao mostrada uma barra de progresso indicando o andamento
do download das atualizaes necessrias, h tambm um moto com o texto show details no qual
possvel clicar para ver os detalhes do download, alm disso na parte inferior direta da tela h quatro
botes, porm apenas o boto cancel est ativo, ou seja, possvel cancelar o download. Caso seja
cancelado o Android Studio tentar realizar a atualizao na prxima vez que for iniciado. Se a atualizao
no for feita pode ser que o programa no funcione corretamente.

2.2.3 Iniciando um novo projeto

Quando tudo estiver atualizado, a janela de inicializao vai aparecer com as opes bsicas.

43
Competncia 02

Figura 30 Janela de inicializao do Android Studio.


Fonte: Autor.
Descrio: A imagem mostra a janela inicial do Android Studio com as opes de iniciar um novo projeto,
abrir um projeto existente, fazer um download de um servidor de verso, importar um projeto de outros
aplicativos e importar um cdigo de exemplo.

De cima para baixo as opes so:

Iniciar um novo projeto Android Studio;


Abrir um projeto do Android Studio;
Baixar um projeto de Controle de Verso;
Importar um projeto;
Importar um cdigo de exemplo do Android.

Clique na primeira opo, Iniciar um novo projeto Android Studio. Aparecer uma janela
solicitando dados de configurao do projeto.

44
Competncia 02

CAMPO VALOR DESCRIO


Application name Alo Mundo O nome da aplicao
Company domain edu.pe.gov.br O domnio da empresa dona da aplicao.
Mostra o local onde sero salvos os arquivos do
Project location Deixe como est
projeto.
Package name Deixe como est formado pelo domnio e o nome da aplicao.
Tabela 1 Campos, descrio dos campos e valores propostos.
Fonte: Autor.
Descrio: Campos, descrio dos campos e valores propostos.

Figura 31 Janela de Configurao de Novo Projeto no Android Studio.


Fonte: Autor.
Descrio: A imagem mostra a tela de configurao de um novo projeto no Android Studio, com
os campos de nome da aplicao, domnio da companhia e o caminho da localizao dos arquivos
do projeto.

45
Competncia 02

A prxima tela configura o dispositivo e a verso mnima do projeto. Como um projeto de


exemplo, deixe como est.

O Android Studio transferir automaticamente o SDK do Android, caso ainda tenha sido feito. Basta
pressionar Next.

Figura 32 Janela de compatibilidade da verso mnima e outras plataformas para a futura


aplicao.
Fonte: Autor.
Descrio: A imagem mostra as opes de compatibilidade mnima com as verses do sistema
operacional Android, alm de aplicaes para o Wear (tecnologia vestvel), TV, Android Auto
(Carros) e Glass.

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.

Desmarque a caixa Backwards Compatibility (AppCompat).

47
Competncia 02

Figura 34 Janela de personalizao da Activity inicial. Desmarque a caixa de marcao


destacada em vermelho.
Fonte: Autor.
Descrio: A imagem mostra a tela de personalizao da Activity inicial com campos para colocar
o nome da classe, uma caixa marcada para gerar um leiaute para esta activity, o nome do arquivo
de layout e uma caixa, que deve ser desmarcada, de compatibilidade com o AppCompat, para
compactao.

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

Figura 35 Janela de dicas.


Fonte: Autor.
Descrio: Janela de dicas. Para no exibir mais, selecione a caixa de marcao destacada em vermelho.

A janela de dicas aparecer. Desmarque a caixa Show Tips on Startup para que ela no aparea
mais e clique em Close para fechar.

Figura 36 rea de trabalho do Android Studio.


Fonte: Autor.
Descrio: A imagem mostra a rea de trabalho do Android Studio com o arquivo MainActivity.java aberto e o cdigo
bsico j escrito.

49
Competncia 02

A Figura 36 mostra o Android Studio com o projeto Alo Mundo aberto.

2.2.4 Conhecendo a estrutura do projeto

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.

Figura 37 Estrutura de um projeto no Android Studio.


Fonte: Autor.
Descrio: Estrutura de um projeto no Android Studio, exibindo as pastas bsicas do projeto:
manifests, java e res.

2.2.5 Criando uma mquina virtual

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.

Figura 38 Gerenciador de dispositivos virtuais, o AVD Manager.


Fonte: Autor.
Descrio: Janela do AVD Manager, o gerenciador de dispositivos virtuais do Android Studio.

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

Figura 39 Janela de opes para imagens de dispositivos.


Fonte: Autor.
Descrio: Nesta janela voc encontra opes de tipo de dispositivo esquerda da imagem, imagens de
dispositivos ao centro e uma representao do dispositivo direita.

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

Figura 40 Janela de seleo para a verso do sistema operacional Android.


Fonte: Autor.
Descrio: Janela de seleo para a verso do sistema operacional Android, que executar na mquina virtual.

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

Figura 41 Tela de resumo das opes selecionadas.


Fonte: Autor.
Descrio: A imagem mostra a tela de resumo das opes selecionadas para a gerao do AVD, com um campo
para nomeao da configurao.

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.

2.2.6 Executando uma aplicao na 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

Figura 43 Execuo de teste do aplicativo em uma mquina virtual.


Fonte: Autor.
Descrio: Destaque circular em vermelho no smbolo de play no Android Studio e seta na seleo da mquina
virtual recm-criada.

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.

O link abaixo tem uma explicao em vdeo do processo.

www.youtube.com/watch?v=af6di_zDzAs

57
Competncia 02

Figura 44 Mensagem solicitando a habilitao da tecnologia de virtualizao da Intel.


Fonte: Autor.
Descrio: Mensagem solicitando a habilitao da tecnologia de virtualizao da Intel.

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

Esta linha pede permisso para acessar o sdCard.

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.

2.2.8 Telas em XML

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.

Figura 48 Cdigo XML da tela da aplicao Alo Mundo.


Fonte: Autor.
Descrio: Cdigo XML esquerda e visualizao da tela direita, equivalente ao cdigo.

61
Competncia 02

2.2.9 Texto, cores, valores e dimenses

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.

Estes arquivos ficam em app > res > values.

Figura 49 Arquivo strings.xml.


Fonte: Autor.
Descrio: Arquivo XML para guardar todo o texto de nossa aplicao.

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

3.Competncia 03 | Formatar uma Activity para o Desenvolvimento,


Utilizando Operadores Matemticos

Na competncia anterior vimos como instalar um ambiente de desenvolvimento e teste para


aplicaes Android utilizando o Android Studio, a IDE oficial da Google. Tambm criamos o primeiro
projeto e aprendemos como testar os projetos que desenvolveremos.

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.

Figura 50 Exibio da tela desenhada pela activity_main.xml.


Fonte: Autor.
Descrio: Exibio da tela desenhada pela activity_main.xml. Sublinhado em vermelho o nome dos arquivos
activity_main.xml e MainActivity.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.

3.2 Tipo de dados primitivos

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

em cada descrio de tipo a seguir.

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.

1. No pode ser uma palavra reservada (palavra-chave);

2. No pode ser true nem false - literais que representam os tipos lgicos (booleanos);

3. No pode ser null - literal que representa o tipo nulo;

4. No pode conter espaos em brancos ou outros caracteres de formatao;

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.

3.2.1 Tipo de dado lgico

So tambm chamados de dados booleanos. Representam estados binrios, tais como:


verdadeiro/falso, certo/errado, ligado/desligado, aberto/fechado, sim/no, etc. Ele o menor tipo e
se armazena seu valor em um bit. Observe o exemplo da Figura 51. No d para ver o resultado,
porque o computador cria a varivel e no faz nada com ela, mas o objetivo era apenas criar uma
varivel booleana e aplicar um valor.

65
Competncia 03

Figura 51 Declarao e utilizao de variveis booleanas.


Fonte: Autor.
Descrio: A imagem mostra o cdigo para a declarao de uma varivel booleana nomeada
gravidez, depois a utilizao desta varivel com o valor verdadeiro (true) e outra linha com a
declarao e utilizao juntas.

3.2.2 Tipo de dado numrico inteiro

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.

Podemos representar nmeros negativos colocando o - antes do nmero.

66
Competncia 03

Figura 52 Declarao e utilizao de variveis representando nmeros inteiros.


Fonte: Autor.
Descrio: A imagem mostra o cdigo para a declarao de uma varivel inteira nomeada idade,
depois a utilizao desta varivel com o valor 20 e outra linha com a declarao e utilizao juntas.

3.2.3 Tipo de dado numrico real

Nmeros reais so nmeros fracionrios. Em computao, nmeros fracionrios utilizam ponto ao


invs da vrgula, como aprendemos na escola. Em Java temos os tipos float e double para
armazenar nmeros reais. Por padro um nmero com ponto do tipo double, mas se quisermos
utilizar menos memria, podemos utilizar o float ao invs do double.

Figura 53 Declarao e utilizao de variveis representando nmeros fracionrios.


Fonte: Autor.
Descrio: A imagem mostra o cdigo para a declarao de uma varivel fracionria nomeada salario,
depois a utilizao desta varivel com o valor 945,8 e outra linha com a declarao e utilizao juntas.

67
Competncia 03

3.2.4 Tipo de dado de caractere

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?

Figura 54 Declarao e utilizao de variveis do tipo caracteres.


Fonte: Autor.
Descrio: A imagem mostra o cdigo para a declarao de uma varivel caractere nomeada letra,
depois a utilizao desta varivel com o caractere a e outra linha com a declarao e utilizao juntas,
utilizando a nomenclatura unicode.

Conhea os caracteres da tabela UTF-16 neste link:


www.fileformat.info/info/charset/UTF-16/list.htm

3.2.5 Tipo de dado complexo: String

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.

Tipos complexos em Java so chamados de classe e a varivel de referncia. Classes, guardam


variveis, chamadas de atributos, e funes, que so chamadas de mtodos. Atributos o que a
classe sabe, mtodos o que a classe sabe fazer. Classes definem como objetos so criados.
Objetos so as unidades bsicas de computao. Os objetos que realizam o trabalho.

Aprender os conceitos de classes e objetos so importantes para desenvolver melhor


em Java. Amplie seu conhecimento www.youtube.com/watch?v=Am6fdgMGY0k

3.3 Operadores

Operadores so smbolos que representam atribuies, clculo e ordem de dados. o que


utilizamos para transformar dados. Quando somamos 2 + 2, o + um operador de clculo, e o 2 + 2

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.

Temos trs tipos de operadores:

Unrios: que s precisa de um operando para realizar a operao;


Binrios: que precisa de dois operandos para realizar a operao. A maioria deles;
Ternrio: que precisa de trs operandos para realizar a operao.

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.

TIPO DO OPERADOR LISTA DE OPERADORES


Sufixais expr++ expr- -
Prefixais ++expr - -expr !
Multiplicativos */%
Aditivos +-
Comparativos < > <= >= instanceof
Igualdade == !=
Lgico E &&
Lgico OU ||
Atribuio = += -= *= /= %= &= ^= |= <<= >>= >>>=
Tabela 2 Classificao de tipos de operadores baseado na ordem de precedncia.
Fonte: Autor.
Descrio: Tabela que classifica o tipo do operador com as operaes relacionadas. A precedncia
dada de cima para baixo na tabela.

70
Competncia 03

3.3.1 Operadores Sufixais e Prefixais

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.

ORDEM EXPRESSO (1 X++) + (1 + --X) EXPLICAO VALOR FINAL DE X


Ao encontrar a expresso x++,
primeiro usa o valor da varivel x,
1 (1 10++) + (1 + --x) depois soma 1 a ela. Assim, (1 x = 11
x) realizado, resultando em 9 e
depois a x somado o valor 1.
Com o valor de x agora sendo 11,
temos a operao --x. Neste caso,
como o operador vem antes,
2 (9) + (1 + --11) primeiro subtramos 1 do valor x = 10
de x, voltando a ser 10. Depois
realizamos a operao (1 + x),
resultando em 11.
Por fim, fazemos a soma (9 + 11),
3 (9) + (11) resultando em 20. O valor de x x = 10
termina com 10.
Tabela 3 Exemplo de execuo de operaes pelo computador.
Fonte: Autor.
Descrio: Tabela com a execuo passo a passo de cada uma das operaes na ordem de execuo pelo computador.

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.

ORDEM EXPRESSO (1 ++X) + (1 + X--) EXPLICAO VALOR FINAL DE X


Ao encontrar a expresso ++x,
primeiro somamos 1 a varivel, x
1 (1 ++11) + (1 + x--) passa a valer 11. Agora fazemos a x = 11
operao (1 11), resultando em
10.
Agora, com x valendo 11, primeiro
fazendo a expresso (1 + x),
2 (10) + (1 + 11--) resultando em 12. Depois fazemos x = 10
o x--, subtraindo 1 de x, resultando
em 10.
Por fim, fazemos a soma (10 + 12),
3 (10) + (12) resultando em 22. O valor de x x = 10
termina com 10.
Tabela 4 Exemplo de execuo de operaes pelo computador.
Fonte: Autor.
Descrio: Tabela com a execuo passo a passo de cada uma das operaes na ordem de execuo pelo computador.

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.

3.3.2 Operadores matemticos

Os operadores matemticos so os de soma, subtrao, multiplicao, diviso e o resto. As quatro


primeiras so bvias, o resto o resto de uma diviso. Por exemplo 21 % 2 tem como resultado 1,
porque 21 dividido por 2 d 10 e sobra 1. timo para se descobrir se um nmero mpar ou par.

Pela tabela de precedncia, os operadores multiplicativos so realizados primeiro que os


operadores aditivos. Assim, em uma expresso 2 + 3 * 2 3, primeiro realizado o 3 * 2, que d 6,
depois 2 + 6, que d 8, e por ltimo 8 3, resultando 5.

72
Competncia 03

3.3.3 Operadores comparativos

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.

3.3.4 Operadores lgicos

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.

3.3.5 Operadores de atribuio

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.

Figura 56 Exemplo de operaes de atribuio.


Fonte: Autor.
Descrio: Sequncias de operaes de atribuio e seus resultados, passo a passo.
Exerccio: Qual o resultado para as operaes a seguir?

int resposta = 8;

resposta *= 2;

resposta -= 10;

resposta += 5;

resposta %= 4;

resposta /= 2;

Resposta: 1

74
Competncia 03

3.3.6 Operador de concatenao

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.

Figura 57 Exemplo de concatenao.


Fonte: Autor.
Descrio: Exemplo de concatenao com variveis String.

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:

Passo Regra Operao

1 () (2 + 3) * 5 > 3 * 5 & 3 * 4 < 4 + 9

2 * / % 5 * 5 > 3 * 5 & 3 * 4 < 4 + 9

3 + - 25 > 15 & 12 < 4 + 9

4 < <= > >= 25 > 15 & 12 < 13

5 && true & true

6 || true

76
Competncia 03

3.5 Visualizando o resultado dos operadores

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.

Figura 58 Identificando um elemento na interface XML.


Fonte: Autor.
Descrio: Na interface de telas XML, no painel de propriedade, o campo ID identifica o elemento. Para o painel
de propriedade relativo ao elemento aparecer, o elemento deve estar selecionado.

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

Figura 59 Exibindo a resposta da expresso em um elemento.


Fonte: Autor.
Descrio: As duas ltimas linhas do cdigo recuperam o elemento na tela e configuram o texto de
exibio atravs do mtodo setText().

Cria uma varivel com o identificador c que armazena o tipo complexo


TextView c de uma caixa de texto TextView. Neste ponto ainda no temos a
TextView do leiaute.
Quando fazemos uma busca por um componente de leiaute, ele vem em
(TextView) outro formato. Este cdigo faz um casting, que uma mudana de
formato para aquele que queremos. No caso, o TextView.
um mtodo que procura pra gente no leiaute o elemento que
findViewById()
queremos. Ser aquele de nome campo.
Para que ele ache temos que dizer o que queremos. A classe R.id guarda
R.id.campo todos os identificadores de elementos, entre outras coisas. Ento,
pedimos aquele elemento que tem o id igual a campo.
Uma vez que guardamos o objeto TextView na referncia c podemos
c.setText(Resposta: +
utiliz-la. Com o mtodo setText() modificamos o texto dele e colocamos
resposta);
a resposta do nosso exerccio.
Tabela 7 Tabela com a explicao das linhas de cdigo utilizadas na Figura 59.
Fonte: Autor.
Descrio: Tabela com a explicao das linhas de cdigo utilizadas na Figura 59.

A Figura 60 mostra o resultado na mquina virtual.

78
Competncia 03

Figura 60 Exibio do resultado.


Fonte: Autor.
Descrio: Exibio do resultado na mquina virtual, tambm conhecido como
emulador.

3.6 Exerccios

Faa os outros exemplos utilizando esta forma de visualizao de dados.

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

4.Competncia 04 | Formatar uma Activity para o Desenvolvimento de


Estruturas de Controle Condicional

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?

Nesta competncia comearemos a trabalhar com as estruturas de controle de fluxo condicional.


quando prevemos um ou mais caminhos que a programao possa ter. Por exemplo, caso aquele
dado seja maior que 5 faa isto, seno, faa aquilo. basicamente isto. Utilizaremos muito os
operadores booleanos e suas operaes. Se ficou alguma dvida sobre este assunto, volte e estude
novamente.

4.1 Estrutura if

A estrutura if tem o formato abaixo.

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

Figura 61 Exemplo da estrutura if.


Fonte: Autor.
Descrio: Foi criada uma varivel idade com o valor 17 e se verifica se idade maior ou igual a 16.
Se for, exibe um texto.

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.

4.2 Estrutura if else

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
}

Observe o exemplo anterior com esta estrutura.

81
Competncia 04

Figura 62 Exemplo estrutura if...else.


Fonte: Autor.
Descrio: Mesmo exemplo da Figura 62, acrescentado o else. Caso o teste seja falso, exibida
outra mensagem.

No exemplo da Figura 62, se o valor de idade for menor que 16, aparecer a mensagem Voc no
tem idade para votar.

4.3 Estrutura if else aninhadas

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

Observe o exemplo da Figura 63.

Figura 63 Exemplo de estruturas aninhadas.


Fonte: Autor.
Descrio: Vrios ifs aninhados.

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

4.4 A estrutura switch

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

Figura 64 Exemplo estrutura switch.


Fonte: Autor.
Descrio: Foi criada uma varivel de texto e no switch testada a correspondncia. O fluxo de
execuo segue a partir do ponto onde detectada a correspondncia.

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

Figura 65 Exemplo da estrutura switch sem os breaks.


Fonte: Autor.
Descrio: criada uma varivel inteira e, dependendo da correspondncia de valor, realizada
uma sequncia de operaes.

4.5 Exerccio

Agora vamos fazer um exerccio para entender melhor.

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

Figura 66 Exibio de horas passadas no dia.


Fonte: Autor.
Descrio: Cdigo que utiliza um objeto do tipo Calendar para recuperar a quantidade de horas passadas no dia.

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:

Figura 67 Exemplo de utilizao de if...else aninhados.


Fonte: Autor.
Descrio: Utilizao da recuperao de horas passadas do dia para mostrar mensagem de bom dia, boa tarde ou
boa noite.

87
Competncia 05

5. Competncia 05 | Formatar uma Activity para o Desenvolvimento de


Estruturas de Repetio

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.

5.1 Estrutura for

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.

for (inicializao; teste de parada; passo de incremento) {


cdigo
}

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

Figura 68 Exemplo de estrutura for.


Fonte: Autor.
Descrio: Criamos um leiaute e utilizamos uma estrutura for para colocar uma quantidade de botes nela.

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

Figura 69 Exemplo de lao for com contagem diferente.


Fonte: Autor.
Descrio: O mesmo exemplo da Figura 67, com contagem de 2 em 2.

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.

Figura 70 Exemplo de lao for com contagem decrescente.


Fonte: Autor.
Descrio: Mesmo exemplo da Figura 67 com contagem decrescente e passo 3.

5.2 Estrutura while

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.

Figura 71 Exemplo de estrutura while.


Fonte: Autor.
Descrio: Neste exemplo sorteado um nmero de 0 at 4, se o nmero for diferente de 0 colocado na tela e se
sorteia outro. A repetio acontece at ser sorteado um nmero 0. No exemplo foram sorteados 2, 2 e 0.

91
Competncia 05

5.3 Estrutura do...while

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.

Figura 72 Exemplo da estrutura do...while.


Fonte: Autor.
Descrio: Mesmo cdigo do exemplo da Figura 70, s que utilizando a estrutura do...while. Os nmeros sorteados
foram 3, 4 e 0.

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

5.4 Estrutura foreach

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

6. Competncia 06 | Formatar uma Activity para a Utilizao de Listas e


Arrays

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.

Figura 73 Representao visual de um vetor (array).


Fonte: https://pt.wikibooks.org/wiki/Java/Vetores
Descrio: Representao visual de um vetor (array) com 10 espaos, numerados de 0 at
9.

Quando os vetores possuem mais dimenses, chamamos de matrizes. Matrizes bidimensionais


possuem duas dimenses. Pense em seu monitor, a imagem formada por pequenos pontos. Esses
pontos formam uma matriz da largura com a altura. Outro exemplo, para entender as matrizes, o
jogo de batalha naval. Nele, a localizao do mar dada por uma linha e coluna. A Figura 74 mostra
uma referncia para uma matriz. Em cada quadradinho podemos colocar um valor, mas todos os

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.

Figura 74 Representao visual de uma matriz.


Fonte: https://pt.wikibooks.org/wiki/Java/Vetores
Descrio: Representao visual de uma matriz de 5x5 (cinco por cinco)
espaos, totalizando 25 espaos.

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.

Figura 75 Representao visual de uma matriz tridimensional.


Fonte: https://pt.wikibooks.org/wiki/Java/Vetores
Descrio: Representao visual de uma matriz de 5x5x5 espaos, totalizando 125
espaos.

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?

tipo[] identificador = new tipo[quantidade];

tipo[][] identificador = new tipo[quantidade][quantidade];

tipo[][][] identificador = new tipo[quantidade][quantidade][quantidade];

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.

Figura 76 Exemplo de declarao e inicializao de arrays.


Fonte: Autor.
Descrio: Declarao e inicializao de arrays, unidimensional, bidimensional e tridimensional.

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.

Figura 77 Atribuindo valores em arrays.


Fonte: Autor.
Descrio: Exemplo de atribuio de valores em um array unidimensional, bidimensional e
tridimensional.

6.2 Utilizando laos for aninhados para preencher um array

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

Figura 78 Utilizao de laos para preenchimento de arrays.


Fonte: Autor.
Descrio: Exemplo de utilizao de um lao para preenchimento de um array unidimensional e
laos aninhados para preenchimento de array bidimensional.

6.3 Estrutura de repetio foreach

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.

for (tipo varivel : array) {


cdigo
}

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

Figura 79 Exemplo da estrutura foreach para iterao em array.


Fonte: Autor.
Descrio: Exemplo da estrutura foreach para iterao em array.

6.4 Exerccio

Agora vamos fazer um exerccio que une tudo que aprendemos.

1. Faa um array de 5x5 de caracteres.

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

Figura 80 Exibio da resposta no exerccio no emulador.


Fonte: Autor.
Descrio: Exibio da resposta no exerccio no emulador, em que h cinco fileiras.

100
Competncia 06

Resposta:

Figura 81 Resposta do exerccio.


Fonte: Autor.
Descrio: Resposta do exerccio, onde o resultado exibido na Figura 79

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.

A qualidade do profissional de desenvolvimento est na quantidade de horas de trabalho. Quanto


mais experincia ele tem, melhor ele . Estima-se que um profissional, na maioria das profisses,
precisa de 10.000 horas de experincia para se considerar profissional. Ento, no perca tempo.
Comece a desenvolver-se o mais rpido possvel e no se esquea de se divertir no processo.

Grande abrao e boa sorte.

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