Você está na página 1de 98

Captulo 1: Introduo ao Android

Instrutor

Programador desde 2000


Mestre em informtica pelo
ICOMP/UFAM

Doutorando do mesmo instituto

Pesquisador da rea de banco

de dados e recuperao da
informao

CSD, CSM e CSPO

marcio.palheta@gmail.com

https://github.com/marciopalheta

sites.google.com/site/marciopalheta
2

Agenda

Dispositivos e o mercado Android

Instalao do Android Studio

Instalao do emulador Genymotion

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

Deploy de aplicativos: Devices e emuladores

Minha primeira App


M.Sc. Mrcio Palheta

3/98

Dispositivos e compatibilidade

M.Sc. Mrcio Palheta

4/98

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/98

Instalao do Android Studio

Baixe o Android Studio

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

Execute a nova IDE

M.Sc. Mrcio Palheta

6/98

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/98

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/98

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/98

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/98

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/98

Pensando no projeto Agenda escolar

M.Sc. Mrcio Palheta

12/98

Pensando no projeto Agenda escolar


Nosso ponto de partida

M.Sc. Mrcio Palheta

13/98

Tela de boas vindas

M.Sc. Mrcio Palheta

14/98

Tela de boas vindas


Nosso primeiro projeto

M.Sc. Mrcio Palheta

15/98

Criao do projeto AGENDA

Nome da aplicao

M.Sc. Mrcio Palheta

16/98

Criao do projeto AGENDA

Pacote da aplicao

M.Sc. Mrcio Palheta

17/98

Criao do projeto AGENDA

Diretrio da aplicao

M.Sc. Mrcio Palheta

18/98

Tipo de aplicao
Telefones e Tablets

M.Sc. Mrcio Palheta

19/98

Tela inicial padro

M.Sc. Mrcio Palheta

20/98

Tela inicial padro


Primeira Activity

M.Sc. Mrcio Palheta

21/98

Configuraes da tela inicial

M.Sc. Mrcio Palheta

22/98

Configuraes da tela inicial

Dados da Tela inicial

M.Sc. Mrcio Palheta

23/98

Bem vindo ao Android Studio!

M.Sc. Mrcio Palheta

24/98

Bem vindo ao Android Studio!

Arquivos do nosso
Projeto Android

M.Sc. Mrcio Palheta

25/98

Bem vindo ao Android Studio!


Paleta de componentes

M.Sc. Mrcio Palheta

26/98

Bem vindo ao Android Studio!

Pr-visualizao
de tela

M.Sc. Mrcio Palheta

27/98

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/98

A classe ProfessorForm.java

M.Sc. Mrcio Palheta

29/98

Classe filha de
AppCompatActivity

A classe ProfessorForm.java

M.Sc. Mrcio Palheta

30/98

A classe ProfessorForm.java
Mtodo inicial

M.Sc. Mrcio Palheta

31/98

A classe ProfessorForm.java
Mtodo inicial

Mtodo que carrega


o menu principal

M.Sc. Mrcio Palheta

32/98

A classe ProfessorForm.java
Mtodo inicial

Mtodo que carrega


o menu principal

Mtodo que devolve


o click no menu

M.Sc. Mrcio Palheta

33/98

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/98

Tela professorformlayout.xml

M.Sc. Mrcio Palheta

35/98

Componente
de organizao
da tela

Tela professorformlayout.xml

M.Sc. Mrcio Palheta

36/98

Componente
de organizao
da tela

Tela professorformlayout.xml
Atributos de
Altura e Largura
obrigatrios

M.Sc. Mrcio Palheta

37/98

Componente
de organizao
da tela

Tela professorformlayout.xml
Atributos de
Altura e Largura
obrigatrios

Definio de
estilo a seguir

M.Sc. Mrcio Palheta

38/98

Componente
de organizao
da tela

Tela professorformlayout.xml
Atributos de
Altura e Largura
obrigatrios

Definio de
estilo a seguir
Componente
de texto

M.Sc. Mrcio Palheta

39/98

Componente
de organizao
da tela

Tela professorformlayout.xml
Atributos de
Altura e Largura
obrigatrios

Definio de
estilo a seguir

Componente de
Internacionalizao

M.Sc. Mrcio Palheta

40/98

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

41/98

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

42/98

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

43/98

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

44/98

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

45/98

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) 36 x 36

res/drawable-mdpi: dispositivos com resoluo


mdia(raros) 48 x 48

res/drawable-hdpi: alta resoluo(maioria) 96 x 96

res/drawable-xhdpi: alta resoluo extra 144 x 144

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


vdeos

M.Sc. Mrcio Palheta

46/98

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

47/98

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

48/98

Atualizao do SDK

Atualizaes pendentes

M.Sc. Mrcio Palheta

49/98

Aceite
da licena de instalao
Selecione a licena

M.Sc. Mrcio Palheta

50/98

Aceite
da licena de instalao
Selecione a licena

Aceite a licena

M.Sc. Mrcio Palheta

51/98

Ao final da atualizao

Os botes de
Instalao e Delete
estaro desativados

M.Sc. Mrcio Palheta

52/98

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

53/98

Seleo do dispositivo para execuo

M.Sc. Mrcio Palheta

54/98

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

M.Sc. Mrcio Palheta

55/98

Seleo do dispositivo para execuo

Executar a App em
um EMULADOR

M.Sc. Mrcio Palheta

56/98

Execuo da App no emulador nativo

M.Sc. Mrcio Palheta

57/98

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

58/98

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

59/98

Instalao do Genymotion

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

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

M.Sc. Mrcio Palheta

60/98

Execute o Genymotion

Vamos adicionar um
Novo EMULADOR

M.Sc. Mrcio Palheta

61/98

Escolha o novo emulador

M.Sc. Mrcio Palheta

62/98

Escolha o novo emulador

Vamos adicionar um
Novo EMULADOR

M.Sc. Mrcio Palheta

63/98

Nome do Virtual Device

M.Sc. Mrcio Palheta

64/98

Nome do Virtual Device

Confirme o nome do
Novo EMULADOR

M.Sc. Mrcio Palheta

65/98

Tela de progresso

M.Sc. Mrcio Palheta

66/98

Download concludo

Clique em Finish

M.Sc. Mrcio Palheta

67/98

Inicializao do Virtual Device

M.Sc. Mrcio Palheta

68/98

Inicializao do Virtual Device

Selecione o
EMULADOR
M.Sc. Mrcio Palheta

69/98

Inicializao do Virtual Device

Inicie o
EMULADOR

Selecione o
EMULADOR
M.Sc. Mrcio Palheta

70/98

Inicializao do Virtual Device

M.Sc. Mrcio Palheta

71/98

Genymotion no Android Studio

V ao menu Preferences / Plugins - "Browse Repositories

M.Sc. Mrcio Palheta

72/98

Instalao do plugin

Pesquise por genymotion, selecione e instale o plugin

M.Sc. Mrcio Palheta

73/98

Configure o path do Genymotion


Inicie o
Genymotion

M.Sc. Mrcio Palheta

74/98

Configure o path do Genymotion

Informe o local de
instalao do Genymotion

M.Sc. Mrcio Palheta

75/98

Execute o Genymotion

M.Sc. Mrcio Palheta

76/98

Execute o Genymotion

Escolha e inicie
o emulador

M.Sc. Mrcio Palheta

77/98

Execute o Genymotion

Andamento da
inicializao

M.Sc. Mrcio Palheta

78/98

Rode a aplicao no Genymotion

M.Sc. Mrcio Palheta

79/98

Aplicao no Genymotion

M.Sc. Mrcio Palheta

80/98

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

Bytecode
JAVA (.class)
Empacota
(.jar)

JAVA
VM
M.Sc. Mrcio Palheta

81/98

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

82/98

Fundamentos de Android - Estrutura

M.Sc. Mrcio Palheta

83/98

Ciclo de vida - Activity

M.Sc. Mrcio Palheta

84/98

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

M.Sc. Mrcio Palheta

85/98

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

86/98

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

87/98

Ciclo de vida - Activity

Ocorre quando o Android


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

M.Sc. Mrcio Palheta

88/98

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

89/98

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

90/98

Exerccio 02: Teste de eventos

Vamos alterar nossa classe ProfessorForm 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

91/98

Exerccio 02: Teste de eventos


Atualizao do
mtodo onCreate()

M.Sc. Mrcio Palheta

92/98

Exerccio 02: Teste de eventos


Atualizao do
mtodo onCreate()

Novos mtodos
para log de eventos

M.Sc. Mrcio Palheta

93/98

Exerccio 02: resultado esperado

Execute a App e veja as mensagens de log no LOGCAT

M.Sc. Mrcio Palheta

94/98

Exerccio 02: resultado esperado

Execute a App e veja as mensagens de log no LOGCAT

M.Sc. Mrcio Palheta

95/98

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

Mensagens de feedback com Toast

M.Sc. Mrcio Palheta

96/98

Referncias

d.android.com
LECHETA, Ricardo. Google Android, 3a edio,
Novatec, So Paulo, 2013
LECHETA, Ricardo. Google Android para
tablets, 3a edio, Novatec, So Paulo, 2012
BURTON, Michael. Desenvolvimento de
aplicativos Android para leigos. Alta books, Rio
de Janeiro, 2014
M.Sc. Mrcio Palheta

97/98

Captulo 1: Introduo ao Android

Você também pode gostar