Sie sind auf Seite 1von 36

rogramao em !

ava para a laLaforma Androld - AuLA 1


rlmelros assos
C que e Androld
Como e o desenvolvlmenLo de apllcaes para esse amblenLe
C que e preclso para comear a programar
Auvldades, o lnlclo de Ludo
xML e arqulvos de manlfesLo
C mercado Androld
Cb[euvos do Curso
Aprender a desenvolver aplicaes
para smartphones que usem o
sistema operacional Android.
Programao:
Este no um curso
de programao
bsica.
J
ava:
aprender e reforar
tcnicas de progra-
m
ao nesta
linguagem
.
Orientao a
objetos:
Rever conceitos e
boas prticas de
program
ao OO.
!
"
#
ergunLas lmporLanLes
C que e Androld?
C que e Cpen PandseL Alllance?
Cuals dlsposluvos suporLam Androld?
Cue ouLros slsLemas operaclonals para
SmarLphones exlsLem?
Comecemos
pelo princpio:
o que
Android?
C que e Androld?
uma forma" porLvel de execuLar
apllcaes em dlsposluvos mvels.
rlnclpalmenLe smottpbooes.
Mercado em franca expanso.
Mlddleware = kernel (llnux) + blblloLecas +
mqulna vlrLual + apllcauvos.
AmblenLe de desenvolvlmenLo.
rogramao em !ava.
novas blblloLecas (mesmlsslma llnguagem).
M
iddlew
are:
A
lm
de um

sistem
a
operacional.
ArqulLeLura
N

s
fica
rem
o
s
a
q
u
i! M
a
s

u
s
a
r
e
m
o
s

e
s
s
a
s

c
la
s
s
e
s

C que e a Opeo nooJset Alllooce?
As 84 (e crescendo) companhlas que apolam e
do suporLe dlreLo a laLaforma Androld.
labrlcanLes de dlsposluvos: P1C, LC,
MoLorola, Samsung, eLc.
Cperadoras: kuul, uoCoMo, nexLel, 1-Moblle,
1elefonlca, 1elecom lLalla, Chlna Moblle, eLc.
SemlconduLores: Auclence, 8roadcom, lnLel,
nvldla, Cualcomm, Synapucs.
Soware: Coogle, e8ay, Ascender,
Llvlnglmage, eLc.
Comerclo: Apllx, noser, 1A1, Wlnd 8lver, eLc.
O que um
Smartphone?
C que e um SmarLphone?
SmarLphones so Lelefones mvels com um
slsLema operaclonal
L mals um punhado de colsas:
navegadores web
8ecepLores CS
Comunlcao sem-o nauva
Cmera
1ela de alLa resoluo
eLc
Quais outros SOs para
Smarphones existem?
Cue ouLros SCs exlsLem para
SmarLphones LxlsLem?
Androld
Symblan
Llnux
CarneL CS (alm)
Wlndows Moblle
Wlndows hone
Appel lCs
8lm 8lack8erry CS
Mercado em Lxpanso
Lm 2010 o mercado esLava asslm..
E
a
g
o
r
a
?

orque Androld?
Crande fragmenLao do mercado de
smottpbooes.
ulferenLes upos de botJwote.
Soware proprleLrlo.
Symblan e Wlndows Moblle.
8edes fechadas.
Alguem [ Leve de desbloquear" o aparelho?
CaracLerlsucas de uesenvolvlmenLo
Mashups
e fcll lncorporar uma apllcao em ouLra.
rogramao lnLenclonal
Cuero envlar um e-mall", ao conLrrlo de Cuero
envlar um e-mall usando xxxx".
8ecursos llmlLados
rlnclpal llmlLao e a baLerla.
Menos memrla e poder de processamenLo.
CaracLerlsucas do dlsposluvo
CaracLerlsucas das apllcaes
C que eu preclso para programar?
lnsLale o Iovo uevelopmeot klt da Otocle.
!ava 1.3 ou 1.6
lnsLale Lcllpse
verso 3.3 ou posLerlor
lnsLale o klL de desenvolvlmenLo Androld.
Como crlar um pro[eLo novo?
"llle" -> "oew" ->
"ltoject"
Seleclone "AoJtolJ
ltoject" e cllque "oext"
reencha a Lela de
crlao de pro[eLo
conforme lndlcado na
[anela a segulr.
ara auvar cbeckstyle
Cllck na pasLa do pro[eLo com o boLo dlrelLo
do mouse ([anela "pockoqe")
Leve o ponLelro do mouse a gula cbeckstyle
Cllque em "Acuvote cbeckstyle"
P
adron
izao:
Porque
interessante
padronizar os
program
as?
ulscusso
or que usar ChecksLyle?
Cuals so boas padronlzaes de cdlgo?
LxlsLem padronlzaes rulns?
Crlando um arqulvo de pacoLe
Cllque no pacoLe do pro[eLo com boLo
dlrelLo: "com.oolo1"
na !anela pop-up: "oew" -> "fle"
nome do arqulvo: package-info.java
/**
* This is the core package for
* the application.
* @since 1.0
*/
package com.aula1;
Arquivo de pacote:
Para que serve este
arquivo?
LnLendendo nossa Activity
package com.aula1;
import android.app.Activity;
import android.os.Bundle;
/**
* Primeira atividade do curso de Android.
* @author fpereira
*/
public class Aula1Activity extends Activity {
/**
* Este metodo determina quais eventos irao acontecer
* quando esta atividade for inicializada.
* @param savedInstanceState o ultimo estado desta atividade.
*/
public final void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
?
? ?
?
nossa lnLerface grca
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=
"http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>
?
?
LxecuLando a
Apllcao
C que deLermlna o
LexLo escrlLo na Lela?
Como eu o modlco?
C ManlfesLo
<?xml verslon="1.0" encodlng="uu-8"?>
<manlfesL xmlns:androld="hup://schemas.androld.com/res/androld"
package="org.anddev.androld.hello_androld">
<appllcauon androld:lcon="[drawable/lcon">
<acuvlLy androld:name=".Pello_Androld"
androld:label="[sLrlng/app_name">
<lnLenL-lLer>
<acuon androld:name="androld.lnLenL.acuon.MAln" />
<caLegory androld:name="androld.lnLenL.caLegory.LAunCPL8" />
</lnLenL-lLer>
</acuvlLy>
</appllcauon>
</manlfesL>
C ManlfesLo
<?xml verslon="1.0" encodlng="uu-8"?>
<manlfesL xmlns:androld="hup://schemas.androld.com/res/androld"
package="org.anddev.androld.hello_androld">
<appllcauon androld:lcon="[drawable/lcon">
<acuvlLy androld:name=".Pello_Androld"
androld:label="[sLrlng/app_name">
<lnLenL-lLer>
<acuon androld:name="androld.lnLenL.acuon.MAln" />
<caLegory androld:name="androld.lnLenL.caLegory.LAunCPL8" />
</lnLenL-lLer>
</acuvlLy>
</appllcauon>
</manlfesL>
?
C ManlfesLo
<?xml verslon="1.0" encodlng="uu-8"?>
<manlfesL xmlns:androld="hup://schemas.androld.com/res/androld"
package="org.anddev.androld.hello_androld">
<appllcauon androld:lcon="[drawable/lcon">
<acuvlLy androld:name=".Pello_Androld"
androld:label="[sLrlng/app_name">
<lnLenL-lLer>
<acuon androld:name="androld.lnLenL.acuon.MAln" />
<caLegory androld:name="androld.lnLenL.caLegory.LAunCPL8" />
</lnLenL-lLer>
</acuvlLy>
</appllcauon>
</manlfesL>
?
<?xml verslon="1.0" encodlng="uu-8"?>
<manlfesL xmlns:androld="hup://schemas.androld.com/res/androld"
package="org.anddev.androld.hello_androld">
<appllcauon androld:lcon="[drawable/lcon">
<acuvlLy androld:name=".Pello_Androld"
androld:label="[sLrlng/app_name">
<lnLenL-lLer>
<acuon androld:name="androld.lnLenL.acuon.MAln" />
<caLegory androld:name="androld.lnLenL.caLegory.LAunCPL8" />
</lnLenL-lLer>
</acuvlLy>
</appllcauon>
</manlfesL>
Launchable:
O prprio usurio
capaz de iniciar
a Atividade.
8esources
<?xml verslon="1.0" encodlng="uu-8"?>
<manlfesL xmlns:androld="hup://schemas.androld.com/res/androld"
package="org.anddev.androld.hello_androld">
<appllcauon androld:lcon="[drawable/lcon">
<acuvlLy androld:name=".Pello_Androld"
androld:label="[sLrlng/app_name">
<lnLenL-lLer>
<acuon androld:name="androld.lnLenL.acuon.MAln" />
<caLegory androld:name="androld.lnLenL.caLegory.LAunCPL8" />
</lnLenL-lLer>
</acuvlLy>
</appllcauon>
</manlfesL>
?
?
8esources
<?xml verslon="1.0" encodlng="uu-8"?>
<manlfesL xmlns:androld="hup://schemas.androld.com/res/androld"
package="org.anddev.androld.hello_androld">
<appllcauon androld:lcon="[drawable/lcon">
<acuvlLy androld:name=".Pello_Androld"
androld:label="[sLrlng/app_name">
<lnLenL-lLer>
<acuon androld:name="androld.lnLenL.acuon.MAln" />
<caLegory androld:name="androld.lnLenL.caLegory.LAunCPL8" />
</lnLenL-lLer>
</acuvlLy>
</appllcauon>
</manlfesL>
SLrlngs
L recomendvel manLer sLrlngs como
consLanLes, em um arqulvo de recursos.
Androld reconhece o arqulvo strings.xml
<?xml verslon="1.0" eocoJloq="oq-8"?>
<resources>
<sLrlng name="bello">nello wotlJ!</sttloq>
<sLrlng name="opp_oome">Aolo1</sttloq>
</resources>
Qual a vantagem
de usar o recurso
string.xml?
Q
uais strin
gs
devem
car n
o
arquivo
strin
gs.x
m
l?
LxecuLando a Apllcao
ara execuLar a apllcao,
uullze a gula koo em Lcllpse.
Seleclone a opo koo, denLro
da gula koo.
na prlmelra LenLauva de
execuLar uma app, Lcllpse
fornecer uma calxa de dllogo
"8un As" para a escolha do
amblenLe de execuo.
Seleclone "AoJtolJ Appllcouoo".
Arcabouos
LxlsLem duas formas de
organlzao de soware para
reuso: blblloLecas e arcabouos.
C que e uma blblloLeca? Lxemplos?
C que e um arcabouo? Lxemplos?
Auvldades fazem parLe do
arcabouo de desenvolvlmenLo
Androld.
lamoso prlnclplo de nollywooJ: no
nos llgue, ns llgaremos para voc".
Quais eventos
poderiam mudar o
estado de uma
atividade?
Quais mtodos da
atividade so
invocados pelo
arcabouo?
Como seria o ciclo
de vida de uma
atividade?
Incio da atividade
onCreate
onStart
atividade
na frente?
onResume
onPause
onStop
onDestroy
Trmino da atividade
onRestart
usurio navega
de volta para a
atividade
atividade se torna visvel
no
atividade vem
para a frente
Como podemos
implementar
esses mtodos?
publlc class SLaLeAcuvlLy exLends AcuvlLy
!"#$%%&'$
publlc nal vold onCreaLe(nal 8undle savedlnsLanceSLaLe)
super.onCreaLe(savedlnsLanceSLaLe)
seLConLenLlew(8.layouL.maln)
Log.v("SLaLes", "lnlclando a auvldaden")

[Cverrlde
publlc nal vold onSLarL()
super.onSLarL()
Log.v("SLaLes", "lnvocando sLarLn")

[Cverrlde
publlc nal vold on8esume()
super.on8esume()
Log.v("SLaLes", "lnvocando resumen")

[Cverrlde
publlc nal vold onause()
super.onause()
Log.v("SLaLes", "lnvocando pausen")


[Cverrlde
publlc nal vold onSLop()
super.onSLop()
Log.v("SLaLes", "lnvocando SLopn")

[Cverrlde
publlc nal vold onuesLroy()
super.onuesLroy()
Log.v("SLaLes", "lnvocando uesLroyn")

Que aes seria
razovel
implementar
nesses mtodos?
Para que serve
essa anotao?
rogramao orlenLada a LemplaLes
um templote e um algorlLmo com lacunas".
Arcabouos so con[unLos de templotes.
Cnde esLo as lacunas em nossas auvldades
(AcuvlLy) Androlds?
Cual a vanLagem da programao volLada para
LemplaLes?
L quals as desvanLagens?
ubllcando a Apllcao
LxlsLe um mercado on-llne de apllcaes
Androld: http://market.android.com
nesse mercado e posslvel dlsponlblllzar
apllcaes, graLulLamenLe ou no
L, naLuralmenLe, pode-se comprar apllcaes.
Q
u
a
is
o
s
p
a
s
s
o
s

r
e
c
o
m
e
n
d

v
e
is

a
n
te
s
d
e
s
e
te
n
ta
r

n
e
g
o
c
ia
r
u
m
a

a
p
lic
a

o
?

AnLes de publlcar.
1esLe exausuvamenLe os casos de uso LraLados pela
apllcao
1esLe a apllcao em pelo menos um dlsposluvo real
1esLe o desempenho e a porLabllldade da apllcao
Lscolha um bom nome para seu pacoLe. Lm geral, usa-
se com.empresa.nome_app
Slga as dlcas de pro[eLo de lnLerfaces (lcones, menus,
layouLs, eLc) em
http://d.android.com/guide/practices/
ui_guidelines
Se posslvel, pea a ouLros usurlos que usem sua
apllcao anLes de publlc-la.
AsslnaLura ulglLal
1oda apllcao Androld,
mesmo as emuladas,
preclsam de uma
asslnaLura dlglLal.
Lcllpse crlou
secreLamenLe uma
asslnaLura para a nossa
apllcao exemplo.
ara crlar uma
asslnaLura
expllclLamenLe, use
Androld 1ools, no
Lcllpse.
Alguns deLalhes para publlcar
P uma pequena Laxa que deve ser paga para
efeLuar o reglsLro no qooqle motket.
ara vender as apllcaes, e necessrlo Lambem
asslnar um slsLema de pagamenLo. LxlsLe o
qooqle cbeckoot dlsponlvel.
L posslvel dlsponlblllzar apllcauvos graLulLos.
L posslvel aLuallzar um apllcauvo [ publlcado
com novas verses. no e posslvel Lransformar
um apllcauvo graLulLo em um apllcauvo pago.

Das könnte Ihnen auch gefallen