Sunteți pe pagina 1din 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
A classe ProfessorForm.java
AppCompatActivity

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
Tela professorformlayout.xml
de organizao
da tela

M.Sc. Mrcio Palheta 36/98


Componente
Tela professorformlayout.xml
de organizao
da tela
Atributos de
Altura e Largura
obrigatrios

M.Sc. Mrcio Palheta 37/98


Componente
Tela professorformlayout.xml
de organizao
da tela
Atributos de
Altura e Largura
obrigatrios

Definio de
estilo a seguir

M.Sc. Mrcio Palheta 38/98


Componente
Tela professorformlayout.xml
de organizao
da tela
Atributos de
Altura e Largura
obrigatrios

Definio de
estilo a seguir

Componente
de texto

M.Sc. Mrcio Palheta 39/98


Componente
Tela professorformlayout.xml
de organizao
da tela
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 Valor a ser


na view 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
Executar dispositivo
em para execuo
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 Cdigo fonte


JAVA (.java) JAVA (.java)

Compilador Compilador
(javac) (javac)

Bytecode Bytecode
JAVA (.class) JAVA (.class)

Empacota Empacota
(.jar) (.dex)

JAVA DALVIK
VM 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
Chamado vidaa App
- Activity
criada. Usado para
criao da view e acesso
a componentes.

M.Sc. Mrcio Palheta 85/98


Ciclo dequando
Chamado vidaa App
- Activity
criada. Usado para Chamado antes da App
criao da view e acesso ficar Visvel na tela. Se
a componentes. der tudo certo, chama
onResume(), seno,
onStop().

M.Sc. Mrcio Palheta 86/98


Ciclo dequando
Chamado vidaa App
- Activity
criada. Usado para Chamado antes da App
criao da view e acesso ficar Visvel na tela. Se
a componentes. 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
ltima chance da App tempo fora da tela
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

S-ar putea să vă placă și