Você está na página 1de 96

Captulo 1: Introduo ao Android

Instrutor

Programador desde 2000

Aluno de doutorado

Mestre em informtica pelo


ICOMP/UFAM
Especialista em aplicaes
WEB FUCAPI
marcio.palheta@gmail.com
sites.google.com/site/marcio
palheta
M.Sc. Mrcio Palheta

Agenda

Dispositivos e o mercado Android

Instalao do Android Studio

Gesto de dependncias com Gradle

Controle de verso com GIT

Trabalhando com o simulador

Conceitos iniciais - Ciclo de vida de uma Activity

Usando a pasta de recursos RES

Entendendo a classe R.java

Componentes de tela por dentro do XML

Planejamento das telas baseadas em Layouts


M.Sc. Mrcio Palheta

3/96

Dispositivos e compatibilidade

M.Sc. Mrcio Palheta

4/96

Ambiente de desenvolvimento

A primeira IDE para desenvolvimento Android foi o Eclipse,


usando Android SDK e o plugin ADT Android Developer
Tools

Nessa poca, baixvamos:

O Eclipse Indigo com ADT configurado; ou

Instalvamos ADT e SDK em uma verso mais nova do


Eclipse; ou

Usvamos o IntelliJ Idea, IDE muito boa e paga.

Contudo, o Google resolveu criar uma IDE prpria para o


Android, baseada no IntelliJ, o Android Studio
M.Sc. Mrcio Palheta

5/96

Instalao do Android Studio

Baixe o Android Studio

http://developer.android.com/sdk/index.html

Execute a nova IDE

M.Sc. Mrcio Palheta

6/96

Instalao do Android Studio

Baixe o Android Studio

http://developer.android.com/sdk/index.html

Execute a nova IDE

Na tela de Wizard,
Click em Next

M.Sc. Mrcio Palheta

7/96

Instalao do Android Studio

Baixe o Android Studio

http://developer.android.com/sdk/index.html

Execute a nova IDE

Na tela de Wizard,
Click em Next

Selecione a opo
Standard e clique
em Next

M.Sc. Mrcio Palheta

8/96

Instalao do Android Studio

Baixe o Android Studio

http://developer.android.com/sdk/index.html

Execute a nova IDE

Na tela de Wizard,
Click em Next

Selecione a opo
Standard e clique
em Next

Aceite o contrato
E clicque em Finish

M.Sc. Mrcio Palheta

9/96

Baixando arquivos de configurao

O Android Studio far download dos componentes


necessrios, como a verso mais nova do Android SDK

Esse processo pode ser demorado

M.Sc. Mrcio Palheta

10/96

Pensando no projeto Agenda Escolar

Nova Android APP: Agenda Escolar

Cadastro de professores

Interao com professores

SMS, Ligaes, E-mails, Sites, Redes sociais

Localizao no mapa

Sincronizao com Servio Web

Baixa e Listagem de disciplinas e ementas

M.Sc. Mrcio Palheta

11/96

Pensando no projeto Agenda escolar

M.Sc. Mrcio Palheta

12/96

Pensando no projeto Agenda escolar


Nosso ponto de partida

M.Sc. Mrcio Palheta

13/96

Tela de boas vindas

M.Sc. Mrcio Palheta

14/96

Tela de boas vindas


Nosso primeiro projeto

M.Sc. Mrcio Palheta

15/96

Criao do projeto AGENDA

Nome da aplicao

M.Sc. Mrcio Palheta

16/96

Criao do projeto AGENDA

Pacote da aplicao

M.Sc. Mrcio Palheta

17/96

Criao do projeto AGENDA

Diretrio da aplicao

M.Sc. Mrcio Palheta

18/96

Tipo de aplicao
Telefones e Tablets

M.Sc. Mrcio Palheta

19/96

Tela inicial padro

M.Sc. Mrcio Palheta

20/96

Tela inicial padro


Primeira Activity

M.Sc. Mrcio Palheta

21/96

Configuraes da tela inicial

M.Sc. Mrcio Palheta

22/96

Configuraes da tela inicial

Dados da Tela inicial

M.Sc. Mrcio Palheta

23/96

Bem vindo ao Android Studio!

M.Sc. Mrcio Palheta

24/96

Bem vindo ao Android Studio!

Arquivos do nosso
Projeto Android

M.Sc. Mrcio Palheta

25/96

Bem vindo ao Android Studio!


Paleta de componentes

M.Sc. Mrcio Palheta

26/96

Bem vindo ao Android Studio!

Pr-visualizao
de tela

M.Sc. Mrcio Palheta

27/96

O que foi gerado?

manifests: pasta de arquivo


de configurao

AndroidManifest.xml:
arquivo de configurao

Java: pasta onde so


armazenados os arquivos
.java criados em nossa App

ProfessorForm: classe
de controle do formulrio
de dados do professor

M.Sc. Mrcio Palheta

28/96

A classe ProfessorForm.java

M.Sc. Mrcio Palheta

29/96

Classe filha de
ActionBarActivity

A classe ProfessorForm.java

M.Sc. Mrcio Palheta

30/96

A classe ProfessorForm.java
Mtodo inicial

M.Sc. Mrcio Palheta

31/96

A classe ProfessorForm.java
Mtodo inicial

Mtodo que carrega


o menu principal

M.Sc. Mrcio Palheta

32/96

A classe ProfessorForm.java
Mtodo inicial

Mtodo que carrega


o menu principal

Mtodo que devolve


o click no menu

M.Sc. Mrcio Palheta

33/96

O que foi gerado?

res: pasta onde ficam os


recursos utilizados pelas
Apps

res/drawable: pasta de
imagens da nossa App

res/layout: telas da App

professorformlayout.xml
tela para edio de
dados do professor

res/menu: menus da App

professorformmenu.xml
menu da tela de dados
M.Sc. Mrcio Palheta

34/96

Tela professorformlayout.xml

M.Sc. Mrcio Palheta

35/96

Tela professorformlayout.xml
Componente
de organizao
da tela

M.Sc. Mrcio Palheta

36/96

Tela professorformlayout.xml
Componente
de organizao
da tela

Atributos de
Altura e Largura
obrigatrios

M.Sc. Mrcio Palheta

37/96

Tela professorformlayout.xml
Componente
de organizao
da tela

Atributos de
Altura e Largura
obrigatrios

Componente de
Texto

M.Sc. Mrcio Palheta

38/96

O que foi gerado?

res/mipmap: pasta de
cones da App

ic_launcher.png: cone
da App. Precisamos de
um cone para cada
resoluo

res/values

dimens.xml: dimenses
de compenentes

strings.xml:
internacionalizao

styles.xml: configurao
de estilo da App
M.Sc. Mrcio Palheta

39/96

A pasta RES e os Qualifiers

RES/VALUES/ pasta que utiliza qualifiers para facilitar a


internacionalizao da aplicao
O programador pode criar uma pasta values para cada
idioma que deseja suportar.

Para isso, usamos no nome da pasta qualificadores que


indicam o idioma e o pas

O Android carrega automaticamente a pasta mais


adequada s configuraes do DEVICE.

values: pasta padro

values-pt-rBR: portugus Brasil

values-en-rUS: ingls Estados Unidos


M.Sc. Mrcio Palheta

40/96

O Arquivo res/values/strings.xml

O Android j tem a preocupao nativa com a


Internacionalizao (I18N) das Apps.

O arquivo string.xml segue o padro CHAVE e VALOR

M.Sc. Mrcio Palheta

41/96

O Arquivo res/values/strings.xml

O Android j tem a preocupao nativa com a


Internacionalizao (I18N) das Apps.

O arquivo string.xml segue o padro CHAVE e VALOR

Chave usada
na view

M.Sc. Mrcio Palheta

42/96

O Arquivo res/values/strings.xml

O Android j tem a preocupao nativa com a


Internacionalizao (I18N) das Apps.

O arquivo string.xml segue o padro CHAVE e VALOR

Chave usada
na view

Valor a ser
exibido na view

M.Sc. Mrcio Palheta

43/96

A pasta RES e os Qualifiers

RES/DRAWABLE/ pasta que armazenas imagens da app.

Usa qualifiers para definir a resoluo a ser utilizada:

res/drawable-ldpi: dispositivos com baixa


resoluo(muito raros)

res/drawable-mdpi: dispositivos com resoluo


mdia(raros)

res/drawable-hdpi: alta resoluo(maioria)

res/drawable-tvdpi: televises

RES/RAW/ armazena arquivos de mdia, como mp3 ou


vdeos

M.Sc. Mrcio Palheta

44/96

Atualizao do Android SDK

uma boa prtica manter o Android Studio atualizado


Na barra de menu do sistema, selecione o Android SDK
Manager

M.Sc. Mrcio Palheta

45/96

Atualizao do Android SDK

uma boa prtica manter o Android Studio atualizado


Na barra de menu do sistema, selecione o Android SDK
Manager
Dados da
Android SDK Manager

M.Sc. Mrcio Palheta

46/96

Atualizao do SDK

Atualizaes pendentes

M.Sc. Mrcio Palheta

47/96

Aceite
da licena de instalao
Selecione a licena

M.Sc. Mrcio Palheta

48/96

Aceite
da licena de instalao
Selecione a licena

Aceite a licena

M.Sc. Mrcio Palheta

49/96

Ao final da atualizao

Os botes de
Instalao e Delete
estaro desativados

M.Sc. Mrcio Palheta

50/96

Execuo no Emulador Nativo

Para testarmos como est ficando a nossa app, podemos


utilizar os devices ou emuladores, clicando em RUN
Incio da execuo
da App

M.Sc. Mrcio Palheta

51/96

Seleo do dispositivo para execuo

M.Sc. Mrcio Palheta

52/96

Seleo
doa App
dispositivo
para execuo
Executar
em
um DEVICE conectado
porta USB

M.Sc. Mrcio Palheta

53/96

Seleo do dispositivo para execuo

Executar a App em
um EMULADOR

M.Sc. Mrcio Palheta

54/96

Execuo da App no emulador nativo

M.Sc. Mrcio Palheta

55/96

Pensando em performance

Os emuladores nativos do Android Studio, assim como os


do Eclipse, so pesados e exigem um certo poder de
processamento das mquinas, podendo causar lentido
no processo de testes da App.

A soluo mais rpida fazer o deploy e testes direto em


um device real.

Contudo, uma aplicao mvel pode rodar em dispositivos


com tamanhos e resolues de telas diversos. Nem
sempre temos esse leque de dispositivos nossa
disposio, para testar nossas apps.
O Genymotion um emulador com performance melhor
que a dos nativos e tem ganho visibilidade no mercado
M.Sc. Mrcio Palheta

56/96

Instalao do Genymotion

O Genymotion precisa de uma mquina virtual, para fazer


a emulao de devices

Baixe e instale a VirtualBox:


https://www.virtualbox.org/wiki/Downloads

M.Sc. Mrcio Palheta

57/96

Instalao do Genymotion

Crie uma conta em: https://www.genymotion.com/

Baixe e instale: https://www.genymotion.com/#!/product

M.Sc. Mrcio Palheta

58/96

Execute o Genymotion

Vamos adicionar um
Novo EMULADOR

M.Sc. Mrcio Palheta

59/96

Escolha o novo emulador

M.Sc. Mrcio Palheta

60/96

Escolha o novo emulador

Vamos adicionar um
Novo EMULADOR

M.Sc. Mrcio Palheta

61/96

Nome do Virtual Device

M.Sc. Mrcio Palheta

62/96

Nome do Virtual Device

Confirme o nome do
Novo EMULADOR

M.Sc. Mrcio Palheta

63/96

Tela de progresso

M.Sc. Mrcio Palheta

64/96

Download concludo

Clique em Finish

M.Sc. Mrcio Palheta

65/96

Inicializao do Virtual Device

M.Sc. Mrcio Palheta

66/96

Inicializao do Virtual Device

Selecione o
EMULADOR
M.Sc. Mrcio Palheta

67/96

Inicializao do Virtual Device

Inicie o
EMULADOR

Selecione o
EMULADOR
M.Sc. Mrcio Palheta

68/96

Inicializao do Virtual Device

M.Sc. Mrcio Palheta

69/96

Genymotion no Android Studio

V ao menu Preferences / Plugins - "Browse Repositories

M.Sc. Mrcio Palheta

70/96

Instalao do plugin

Pesquise por genymotion, selecione e instale o plugin

M.Sc. Mrcio Palheta

71/96

Configure o path do Genymotion


Inicie o
Genymotion

M.Sc. Mrcio Palheta

72/96

Configure o path do Genymotion

Informe o local de
instalao do Genymotion

M.Sc. Mrcio Palheta

73/96

Execute o Genymotion

Escolha e inicie
o emulador

M.Sc. Mrcio Palheta

74/96

Execute o Genymotion

Andamento da
inicializao

M.Sc. Mrcio Palheta

75/96

Rode a aplicao no Genymotion

M.Sc. Mrcio Palheta

76/96

Aplicao no Genymotion

M.Sc. Mrcio Palheta

77/96

Fundamentos de Android
PROJETOS JAVA
Cdigo fonte
JAVA (.java)
Compilador
(javac)

Bytecode
JAVA (.class)
Empacota
(.jar)

JAVA
VM
M.Sc. Mrcio Palheta

78/96

Fundamentos de Android
PROJETOS JAVA

PROJETOS ANDROID

Cdigo fonte
JAVA (.java)

Cdigo fonte
JAVA (.java)

Compilador
(javac)

Compilador
(javac)

Bytecode
JAVA (.class)

Bytecode
JAVA (.class)

Empacota
(.jar)

Empacota
(.dex)

JAVA
VM

DALVIK
VM
M.Sc. Mrcio Palheta

79/96

Fundamentos de Android - Estrutura

M.Sc. Mrcio Palheta

80/96

Ciclo de vida - Activity

M.Sc. Mrcio Palheta

81/96

Ciclo
dequando
vidaa App
- Activity
Chamado
criada. Usado para
criao da view e acesso
a componentes.

M.Sc. Mrcio Palheta

82/96

Ciclo
dequando
vidaa App
- Activity
Chamado
criada. Usado para
criao da view e acesso
a componentes.

Chamado antes da App


ficar Visvel na tela. Se
der tudo certo, chama
onResume(), seno,
onStop().

M.Sc. Mrcio Palheta

83/96

Ciclo
dequando
vidaa App
- Activity
Chamado
criada. Usado para
criao da view e acesso
a componentes.

Chamado antes da App


ficar Visvel na tela. Se
der tudo certo, chama
onResume(), seno,
onStop().

Chamado quando a App


est em 1o plano, onde
ocorre interao com o
usurio.

M.Sc. Mrcio Palheta

84/96

Ciclo de vida - Activity

Ocorre quando o Android


chama outra atividade.
A nossa App perde
o direito tela.

M.Sc. Mrcio Palheta

85/96

Ciclo de vida - Activity

Ocorre quando o Android


chama outra atividade.
A nossa App perde
o direito tela.
Ocorre quando a
Activity est a muito
tempo fora da tela

M.Sc. Mrcio Palheta

86/96

Ciclo de vida - Activity

Ocorre quando o Android


chama outra atividade.
A nossa App perde
o direito tela.
Ocorre quando a
Activity est a muito
tempo fora da tela

ltima chance da App


executar algo. Ocorre
porque o Android precisa
de recursos, ou usurio
finalizou a App
M.Sc. Mrcio Palheta

87/96

Exerccio 02: Teste de eventos

Vamos alterar nossa classe OlaMundoActivity para


incluir mensagens de log, lanadas a cada evento do
ciclo de vida da Activity

Que tal usarmos o famoso sysout ? Nem pensar. :-)

Vamos usar o LogCat

Para isso, basta usarmos o comando:

Log.i(GrupoDeMensagens, Mensagem)

Inclua mensagens em todos os mtodos de eventos,


conforme exemplo a seguir

M.Sc. Mrcio Palheta

88/96

Exerccio 02: Teste de eventos

M.Sc. Mrcio Palheta

89/96

Exerccio 02: Teste de eventos


Atualizao do
mtodo onCreate()

M.Sc. Mrcio Palheta

90/96

Exerccio 02: Teste de eventos


Atualizao do
mtodo onCreate()
Novos mtodos
para log de eventos

M.Sc. Mrcio Palheta

91/96

Exerccio 02: resultado esperado

Execute a App e veja as mensagens de log no LOGCAT

M.Sc. Mrcio Palheta

92/96

Exerccio 02: resultado esperado

Execute a App e veja as mensagens de log no LOGCAT

M.Sc. Mrcio Palheta

93/96

O que vem a seguir?

Definies do projeto Agenda Escolar

Tela de cadastro de professores

Entendendo a herana entre Activity e ActionBarActivity

Organizao de componentes com LinearLayout

Exibio de imagens com ImageView

Textos com TextView

Campos de texto com EditText

Botes e eventos de click com Button

Giro da tela e o armazenamento de estados

M.Sc. Mrcio Palheta

94/96

Referncias

d.android.com
http://developer.android.com/guide/topics/ui/acti
onbar.html
LECHETA, Ricardo. Google Android, 3a edio,
Novatec, So Paulo, 2013
Cdigo fonte completo:
https://github.com/marciopalheta/cursosandroid

M.Sc. Mrcio Palheta

95/96

Captulo 1: Introduo ao Android

Você também pode gostar