SlideShare a Scribd company logo
1 of 66
Download to read offline
Android - 4h	

100% Hands-on
GOOGLE ANdroid

Mario Jorge Pereira
14

20

13

20

12

20

11

20

10

20

09

20

08

20

07

20

06

20

05

20

04

20

03

20

02

20
Agenda
Setup (Ambiente e AVD’s)	

Development	

Alo Mundo (Hello World)	

Lista Tarefas (ToDo List)	

(Listar, Inserir, Excluir, Preferencias …)
Desenvolvimento
http://developer.android.com

Por onde começar?
ADT Bundle:
• Eclipse + ADT plugin
• Android SDK Tools
• Android Platform-tools

Pré requisito: JDK instalada
Eclipse + ADT
Android Virtual Device Manager
Android Virtual Device AVD

Emulador
Alô Mundo

File > New > Android Application Project
Run As..
Android application
src/



(código fonte: .java)"

gen/

(código gerado: R.java )"

bin/

(bytecodes: .dex)"

libs/



(bibliotecas)"

Es
tr

ut
ur
a

res/



(recursos: layouts, strigs,
icones …)"

assets/



(outros recursos: arquivos em
geral)
"
rsion="1.0
<?xml ve
esources>	
<r

"utf-8"?>	
encoding=

/string>	
Alo Mundo<
	
>
s</string>
"app_name"
s "> S e t t i n g
ring name=
g
<st
ion_settin
ct
</string>	
a
llo world!
ing name="
e
<str
o _ w o r l d "> H
name="hell
<string

!

!

/resources
<

>

strings.xml
/* AUT

ED FILE.
O-GENERAT

D I F Y .* / 	
DO NOT MO

class R {	
al
{	
public fin
class attr
al
static fin
public

0;	
=0x7f04000
imen {	
	
}
s d
rgin
final clas
izontal_ma
tic
01;	
_hor
public sta
n= 0 x 7 f 0 4 0 0
t activity
argi
l in
vertical_m
tatic fina
ty_
public s
int activi
inal
c static f
publi
	
;	
}	
s layout {
0x7f030000
al clas
fin
a i n=
activity_m
lic static
pub
int
tic final
public sta

	
}

}	
	 ...	

R.java
MainActivity.java

!
!

}

public cla
ss MainAct
ivity exte
!
nds Activi
ty {	
@Override	
protected
void onCre
ate(Bundle
super.onCr
savedInsta
eate(saved
nceState)
InstanceSt
{	
setContent
ate);	
View(R.lay
o u t .a c t i v i
}	
t y _ m a i n) ; 	
@Override	
public boo
lean onCre
ateOptions
getMenuInf
Menu(Menu
later().in
menu) {	
flate(R.me
return tru
n u .m a i n , m
e;	
enu);	
}
AndroidManifest.xml
utfencoding=“
sion="1.0"

8"?>	

<?xml ver
. . .> 	
<manifest
	 ...	
. >	
ication ..
i t y "	
<appl
.MainActiv
mundo
xample.alo
<activity	
com.e
: n a m e=" b r .
" >	
android
g/app_name
strin
d : l a b e l= " @
" />	
androi
ction.MAIN
t e r> 	
/>	
tent.a
intent-fil
LAUNCHER"
android.in
<
m e= "
gory.
android:na
ntent.cate
roid.i
<action
: n a m e= " a n d
droid
ategory an
<c
l t e r> 	
/intent-fi
<
>	
</activity
i o n> 	
</applicat
>	
</manifest
ToDo
br.mobileday.todo

File > New > Android Application Project
Log.[n

NSAGEM”);	
e l ] (“ T A G ”, “ M E
iv

!

	 (Verbose)	
Log.v		
	 	 (Debug)	
Log.d	
		 	 (Info)	
Log.i
	 (Warning)	
Log.w		
e		 	 (Erro)	
Log.
(
.wtf	 ...)	
Log

Log
yout ... >
elativeLa

<R
...	

<Button	
d / b o t a o "	
i d : i d= " @ + i
andro
_ c o n t e n t "	
i d t h= " w r a p
	
d:layout_w
androi
p_content"
e i g h t= " w r a
d:layout_h
t V i e w 1 "	
roi
x
and
w= " @ + i d / t e
ayout_belo
oid:l
l= " t r u e " 	
andr
rHorizonta
yout_cente
android:la
"Botao"	
r o i d : t e x t=
and
etodo" />	
o n C l i c k= " m
android:

...	
L a y o u t> 	
</Relative

activity_main.xml
MainActivity.java
public cla
ss MainAct
ivi

!

ty extends
Activity {
	

@Override	
protected
void onCre
ate(Bundle
super.onCr
savedInsta
eate(saved
nceState)
InstanceSt
{	
setContent
ate);	
View(R.lay
o u t .a c t i v i
}	
t y _ m a i n) ; 	
	 	 ...	
public voi
d metodo(V
iew v){	
	 Log.i(“T
	
AG”,"TEXTO
");	
	 }	
}
Run As..
Android application
TOAST
.show
a s t .L E N G T H _ L O N G)
, To
x t (t h i s , " T E X T O "
t.makeTe

Toas
!
!
G	
Toast.LENGTH_LON
!
st.LENGTH_SHORT	
Toa
!

();
MainActivity.java
public cla
ss MainAct
ivity exte
!
nds Activi
ty {	
@Override	
protected
void onCre
ate(Bundle
super.onCr
savedInsta
eate(saved
nceState)
InstanceSt
{	
setContent
ate);	
View(R.lay
o u t .a c t i v i
}	
t y _ m a i n) ; 	
	 	 ...	
public voi
d metodo(V
iew v){	
	 Toast.ma
keText(thi
s, "ToDo!"
	 }	
, Toast.LE
N G T H _ L O N G)
}
.show();
Run As..
Android application
findbyid
y I d ( R . i d .[ i d ] ) ; 	
B
[Tipo]) findView
[Tipo] var = (
!

v a r . m e t o d o ( ) ;	
!
MainActivity.java
public cla
ss MainAct
ivity exte
!
nds Activi
ty {	
@Override	
protected
void onCre
ate(Bundle
super.onCr
savedInsta
eate(saved
nceState)
InstanceSt
{	
setContent
ate);	
View(R.lay
o u t .a c t i v i
}	
t y _ m a i n) ; 	
	 	 ...	
public voi
d metodo(V
iew v){	
	 TextVie
	
w tv = (Te
xtView) fi
	tv.setTex
ndViewById
t( "ToDO!")
(R.id.text
;	
	 }	
View1);	
}
Run As..
Android application
NovaActivity.java
public cla
ss NovaAct
ivity

!

extends Ac
tivity {	

	 @Overrid
e	
	 protecte
d void onC
reate(Bund
	 	 super.
le savedIn
onCreate(s
stanceStat
avedInstan
e) {	
	 	 setCon
ceState);	
tentView(R
.layout.ac
	 }	
tivity_nov
a) ; 	

!

	 @Overrid
e	
	 public b
oolean onC
reateOptio
	 	 getMen
nsMenu(Men
uInflater(
u menu) {	
).inflate(
	 	 return
R.menu.nov
true;	
a, menu);	
	 }	
!

}
AndroidManifest.xml
“utf-8"?>	
encoding=

sion="1.0"
<?xml ver
f e s t . . .> 	
<mani
	 ...	
	
tion ... >
<applica
	 	 ...	
A c t i v i t y "	
va
tivity	
ay.todo.No
ed
<ac
	
="br.mobil
me
ty_nova" >
vi
android:na
title_acti
/
l= " @ s t r i n g
be
android:la
>	
</activity
>	
pplication
</a
	
/manifest>
<
MainActivity.java
public cla
ss MainAct
ivity exte
!
nds Activi
ty {	
@Override	
protected
void onCre
ate(Bundle
super.onCr
savedInsta
eate(saved
nceState)
InstanceSt
{	
setContent
ate);	
View(R.lay
o u t .a c t i v i
}	
t y _ m a i n) ; 	
	 	 ...	
public voi
d metodo(V
iew v){	
	 ntent in
I
tent = new
Intent(thi
	 ntent.pu
i
s,NovaActi
tExtra("ch
v i t y .c l a s s
ave", "val
);	
	 tartActi
s
or");	
vity(inten
t);	
	 }	
}
yout ... >
elativeLa

<R
...	

<Button	
d / b o t a o "	
i d : i d= " @ + i
andro
_ c o n t e n t "	
i d t h= " w r a p
	
d:layout_w
androi
p_content"
e i g h t= " w r a
d:layout_h
t V i e w 1 "	
roi
x
and
w= " @ + i d / t e
ayout_belo
oid:l
l= " t r u e " 	
andr
rHorizonta
yout_cente
android:la
"Voltar"	
r o i d : t e x t=
and
oltar" />	
o n C l i c k= " v
android:

...	
L a y o u t> 	
</Relative

activity_nova.xml.java
NovaActivity.java
public cla
ss NovaAct
ivity exte
!
nds Activi
ty {	
@Override	
protected
void onCre
ate(Bundle
super.onCr
savedInsta
eate(saved
nceState)
	 	 	 set
InstanceSt
{	
ContentVie
ate);	
w(R.layout
	 	 	 Bun
. activity_
dle extas
n o v a) ; 	
= getInten
	 	 	 Tex
t().getExt
tView tv =
ras();	
(TextView)
	 	 	 tv.
findViewBy
setText(ex
Id(R.id.te
tas.getStr
xtView1);	
}	
ing("chave
"));	
	 	 ...	

public voi
d voltar(V
iew v){	
	 	 	 fin
ish();	
	 }	
}
Run As..
Android application
>	
t 1 "	
ayout ...
lativeL
id/editTex
<Re
"@+
n d r o i d : i d=
t "	
a
fill_paren
<EditText
t h= "
t "	
layout_wid
android:
rap_conten
t= " w
yout_heigh
e"	
android:la
t L e f t= " t r u
ren
ut_alignPa
"	
o
i g h t= " t r u e
ndroid:lay
a
entR
t_alignPar
you
"	
android:la
t T o p= " t r u e
aren
out_alignP
y
android:la
f a "	
"Nome Tare
n t=
android:hi
xt"	
u t T y p e= " t e
p
android:in
>	
d : e m s= " 1 0 "
androi
/>	
uestFocus
<req
>	
"	
</EditText
id/button1
="@+
t "	
android:id
rap_conten
Button
<
h= " w
ayout_widt
t "	
android:l
rap_conten
="w
out_height
"	
y
/editText1
android:la
@+id
	
u t _ b e l o w= "
t a l= " t r u e "
droid:layo
an
izon
_centerHor
yout
android:la
r"	
i c k= " s a l v a
Cl
android:on
	
Salvar" />
x t="
android:te
>
tiveLayout
</Rela

activity_nova.xml
public cla
ss NovaAct
ivity

!

	

!

private Ed
itText tex
t;	

NovaActivity.java
extends Ac
tivity {	

	 @Overri
de	
	 protect
ed void on
Create(Bun
	 	 supe
dle savedI
r.onCreate
nstanceSta
(savedInst
te) {	
	 	 setC
anceState)
ontentView
;	
(R.layout.
	 	 text
activity_n
= (EditTex
o v a) ; 	
t) findVie
	 }	
wById(R.id
.e d i t T e x t 1
);	
!

	 @Overri
de	
	 public
boolean on
CreateOpti
	 	 getM
onsMenu(Me
enuInflate
nu menu) {
r().inflat
	
	 	 retu
e(R.menu.n
rn true;	
ova, menu)
;	
	 }	

!
	

	
}

	

public voi
d salvar(V
iew v){	
	 Intent d
ados = new
Intent();	
dados.putE
xtra("nome
", text.ge
	 setResul
tText().to
t( RESULT_O
String());
K, d a d o s ) ; 	
	 finish()
	
;	
}
MainActivity.java
public cla
ss MainAct
ivity exte
	
nds Activi
ty {	
	 ...	

!

!

}

public voi
d metodo(V
iew v){	
	 Intent i
ntent = ne
w Intent(t
	 startAct
his,NovaAc
ivityForRe
t i v i t y .c l a
sult(inten
ss);	
}	
t,9999);	
@Override	
protected
void onAct
ivityResul
	 if(reque
t (i n t r e q u
stCode ==
estCode, i
9999 && re
nt resultC
	 oast.make
T
sultCode =
ode, Inten
Text(this,
= RESULT_O
t data) {	
data.getSt
K){	
	 }	
ringExtra(
"nome"), T
}	
oast.LENGT
H _ L O N G) . s h
ow();
Run As..
Android application
ut ... >	
ativeLayo

<Rel
...	

<ListView	
s t V i e w 1 "	
i
i d=" @ + i d / l
ndroid:
h _ p a r e n t "	
a
c
w i d t h= " m a t
id:layout_
ro
c o n t e n t "	
_
and
i g h t= " w r a p
	
:layout_he
oid
t o m= " t r u e "
andr
nParentBot
ayout_alig
oid:l
t= " t r u e " 	
f
andr
gnParentLe
layout_ali
id:
t= " t r u e " 	
andro
ParentRigh
yout_align
id:la
"true" >	
=
andro
nParentTop
ayout_alig
android:l
ListView>	
</
...	
L a y o u t> 	
</Relative

activity_main.xml
tp://schem
d r o i d= " h t

as

com/apk/re
.android.

s/

n
nu xmlns:a
<me
	
android" >
!
"	
<item	
ction_nova
/a
d:id="@+id
androi
o r y= " 1 0 0 " 	
eg
orderInCat
android:
n= " n e v e r " 	
io
:showAsAct
>	
android
a T a r e f a "/
v
: t i t l e= " N o
android
!
</menu>

main.xml
MainActivity.java

!

public cla
ss MainAct
ivity exte
	 private
nds Activi
ListView l
ty {	
istView;	
@Override	
protected
void onCre
ate(Bundle
super.onCr
savedInsta
eate(saved
nceState)
InstanceSt
{	
setContent
ate);	
View(R.lay
o u t .a c t i v i
listView =
t y _ m a i n) ; 	
(ListView)
findViewBy
String[] v
I d ( R . i d .l i
alues = ne
s t V i e w 1) ; 	
w String[]
ArrayAdapt
{"Acorda",
er<String>
"MobileDay
adapter =
	 	 andro
", " H a p p y H
new ArrayA
o u r "} ; 	
id.R.layou
dapter<Str
t.simple_l
listView.s
i n g > (t h i s ,
ist_item_1
etAdapter(
	
,values);	
adapter);	
}	

public boo
lean onOpt
ionsItemSe
	 switch
lected(Men
(item.getI
uItem item
temId()) {
) {	
	
case R.id.
action_nov
	 	 	
a: 	
	 	 Int
ent intent
	 	 	
= new Inte
	 	 sta
nt(this, N
rtActivity
	 	 	
ovaActivit
ForResult(
	 	 ret
y .c l a s s ) ; 	
intent, 99
urn true;	
99);
default:	
	 	
return sup
er.onOptio
}	
nsItemSele
cted(item)
}	
;	
	 ...	
}
Run As..
Android application
MainActivity.java

public cla
ss MainAct
ivity exte
	 private
nds Activi
ListView l
ty {	
istView;	
	 private
static Arr
ayList<Str
	 private
ing> value
ArrayAdapt
s = new Ar
er<String>
!
rayList<St
adapter;	
ring>();	
	 @Overri
de	
	 protect
ed void on
Create(Bun
	 	 supe
dle savedI
r.onCreate
nstanceSta
(savedInst
te) {	
	 	 setC
anceState)
ontentView
;	
(R.layout.
	 	 list
activity_m
View = (Li
a i n) ; 	
stView) fi
	 	 adap
ndViewById
ter = new
( R . i d .l i s t
ArrayAdapt
View1);	
	 	 	 	
er<String>
	 	 	 	
(t h i s , 	
	 	 andr
	 	 list
oid.R.layo
View.setAd
ut.simple_
a p t e r (a d a p
	 }	
list_item_
ter);	
1, v a l u e s )
;	
!
	
	
	
	
	
	
}

@Override	
protected
void onRes
ume() {	
	 super.o
nResume();
	
	 adapter
.notifyDat
aSetChange
}	
d();	
...
MainActivity.java
public cla
ss MainAct
ivity exte
	 ...	
nds Activi
t y {	
	 @Overrid
e	
	 protecte
d void onA
ctivityRes
resultCode
u l t (i n t r e
, Intent d
questCode,
ata) {	
	 	 if (re
int
questCode
== 9999 &&
	 	 	 Str
resultCode
ing tarefa
== RESULT_
= data.get
	 	 	 val
OK) {	
StringExtr
ues.add(ta
a("nome");
refa);	
	
	 	 }	
	 }	
!

}
Run As..
Android application
MainActivity.java

public cla
ss MainAct
ivity exte
	 ...	
nds Activi
t y {	
	 private
SharedPref
erences se
	 @Overri
ttings;	
de	
	 protect
ed void on
Create(Bun
	 	 ...	
dle savedI
nstanceSta
te) {	
	 	 sett
ings = Pr
eferenceMa
	 	 Edit
nager.getD
or editor
efaultShar
= settings
edPreferen
	 	 edit
.edit();	
ces(this);
or.putStri
	
ng("ultimo
	 	 edit
", "");	
or.commit(
);	
	 }	
	 ...	
	 @Overri
de	
	 protect
ed void on
ActivityRe
	 	 if (
s u l t (i n t r
requestCod
equestCode
e == 9999
, int resu
	 	 	
&& resultC
ltCode, In
String tar
ode == RES
tent data)
efa = data
ULT_OK) {	
	 	 	
{	
.getString
values.add
Extra("nom
(tarefa);	
e");	
	 	 	
Editor edi
t o r = sett
	 	 	
ings.edit(
editor.put
);	
String("ul
	 	 	
timo", tar
editor.com
efa);	
mit();	
	 	 }	
	 }	
}
NovaActivity.java
public cla
ss NovaAct
ivity

!

	

!

private Ed
itText tex
t;	

extends Ac
tivity {	

	 protect
ed void on
Create(Bun
	 	 super
dle savedI
.onCreate(
nstanceSta
savedInsta
te) {	
	 	 setCo
nceState);
ntentView(
	
R.layout.a
	 	 text
ctivity_no
= (EditTex
v a) ; 	
t) findVie
	 	 Share
wById(R.id
dPreferenc
.e d i t T e x t 1
es setting
);	
	 	 	 	
s = 	 	
	 	 Prefe
	
renceManag
	 	 Strin
er.getDefa
g valor =
ultSharedP
settings.g
references
	 	 text.
etString("
(this);	
setText(va
ultimo", "
lor);	
Tarefa");	
	 }	
	 ... 	
}
Run As..
Android application
mlns:andr
<menu x
ndroid" >	
res/a
!

://schem
o i d= " h t t p

d.com/apk/
as.androi

<item	
/ e x i b i r "	
d : i d= " @ + i d
	
androi
g o r y= " 1 0 0 "
rderInCate
android:o
="never"	
owAsAction
android:sh
Exibir"/>	
i d : t i t l e= "
andro
!

</menu>	

context_menu.xml
MainActivity.java

public cla
ss MainAct
ivity exte
	 ...	
nds Activi
t y {	
	 @Overrid
e	
	 protecte
d void onC
reate(Bund
	 	 	 ...
le savedIn
	
stanceStat
e ) {	
	 	 	 reg
isterForCo
ntextMenu(
	 }	
listView);
	
!
	 @Overrid
e	
	 public v
oid onCrea
teContextM
ContextMen
enu(Contex
uInfo menu
tMenu menu
Info) {	
, View v,
	 	 super.
onCreateCo
ntextMenu(
	 	 MenuIn
menu, v, m
flater inf
enuInfo);	
later = ge
	 	 inflat
tMenuInfla
er.inflate
ter();	
(R.menu.co
	 }	
ntext_menu
, menu);	
...	
}
MainActivity.java
public cla
ss MainAct
ivity exte
	 ...	
nds Activi
t y {	
	 public b
oolean onC
ontextItem
	
AdapterCon
Selected(M
textMenuIn
enuItem it
fo info =
item.getMe
em) {	
(AdapterCo
nuInfo();	
ntextMenuI
	
switch (it
nfo)
em.getItem
Id()) {	
	
case R.id.
action_set
	
t i n g s: 	
String val
or = (Stri
listView.g
ng)
etItemAtPo
sition(inf
	
o .p o s i t i o n
Toast.make
);	
Text(this,
	
valor, Toa
return tru
s t .L E N G T H _
e;	
L O N G) . s h o w
	
default:	
();	
	
return sup
er.onConte
	
xtItemSele
}	
cted(item)
;	
	 }	
...	
}
Run As..
Android application
xmlns:andr
<menu
ndroid" >	
a
!

://schemas
o i d= " h t t p

.a

m/apk/res/
ndroid.co

	
<item	
id/exibir"
@+
	
droid:id="
an
g o r y= " 1 0 0 "
te
:orderInCa
	
android
o n= " n e v e r "
i
:showAsAct
android
	
“Exibir"/>
=
roid:title
and
<item	
/ e x c l u i r "	
id
oid:id="@+
andr
r y= " 1 0 0 " 	
go
rderInCate
"	
android:o
i o n= " n e v e r
ct
id:showAsA
andro
xcluir"/>	
E
i d : t i t l e= "
andro
!
</menu>	

context_menu.xml
MainActivity.java
public cla
ss MainAct
ivity exte
	 ...	
nds Activi
t y {	
	 public
boolean on
ContextIte
	
mSelected(
AdapterCon
MenuItem i
textMenuIn
tem) {	
item.getMe
fo info =
nuInfo();	
(AdapterCo
ntextMenuI
	
nfo)
switch (it
em.getItem
	
Id()) {	
	 case R.i
d.exibir:	
	
		 String
valor = (S
	
tring) lis
tView.getI
Toast.make
temAtPosit
Text(this,
	
i o n ( i n f o .p
valor, Toa
return tru
osition);	
s t .L E N G T H _
e;	
	
L O N G) . s h o w
case R.id.
();	
excluir:	
	
	v a l u e s . r e
move(info.
	
position);
	a d a p t e r . n
	
otifyDataS
	
etChanged(
return tru
);	
e;	
	
default:	
	
return sup
er.onConte
	
}	
xtItemSele
cted(item)
...	
;	
}
Run As..
Android application
r o i d= " h t t p
xmlns:and

s.android.
://schema

com

	
android" >
/apk/res/

<menu
!
	
<item	
tion_nova"
/ac
d : i d=" @ + i d
	
androi
g o r y= " 1 0 0 "
ate
d:orderInC
androi
n= " n e v e r " 	
tio
d:showAsAc
androi
T a r e f a "/ > 	
ova
d : t i t l e= " N
androi
<item	
	
@+id/site"
="
	
android:id
g o r y= " 1 0 0 "
ate
d:orderInC
	
androi
o n= " n e v e r "
ti
d:showAsAc
androi
	
e= " S i t e "/ >
tl
android:ti
</menu>

menu.xml
MainActivity.java

public cla
ss MainAct
ivity exte
	 ...	
nds Activi
t y {	
	 public
boolean on
OptionsIte
	 	 switc
mSelected(
h (item.ge
MenuItem i
tItemId())
tem) {	
	 	 case
{	
R.id.actio
n _ n o v a: 	
	 	 	 no
va();	
	 	 	 re
turn true;
	
case R.id.
site:	
	 Intent i
ntent = 	
	 new Inte
nt(Intent.
"http://ww
ACTION_VIE
w.google.c
W,Uri.pars
o m ") ) ; 	
e (	
	 startAct
ivity(inte
nt);	
	 return t
rue;	
	 	 defau
lt:	
	 	 	 re
turn super
.onOptions
	 	 }	
ItemSelect
ed(item);	
	 }	
...	
}
Run As..
Android application
Esta obra está licenciada sob a licença Creative Commons
Atribuição-CompartilhaIgual 3.0 Não Adaptada. Para ver uma cópia
desta licença, visite http://creativecommons.org/licenses/by-sa/3.0/.
ANDROID
Mario Jorge Pereira
Como me encontrar?
http://www.mariojp.com.br
twitter.com/@mariojp
mariojp@gmail.com

More Related Content

What's hot

The rise and fall of a techno DJ, plus more new reviews and notable screenings
The rise and fall of a techno DJ, plus more new reviews and notable screeningsThe rise and fall of a techno DJ, plus more new reviews and notable screenings
The rise and fall of a techno DJ, plus more new reviews and notable screeningschicagonewsyesterday
 
Mad Max is back, plus the rest of our new reviews and notable screenings
Mad Max is back, plus the rest of our new reviews and notable screeningsMad Max is back, plus the rest of our new reviews and notable screenings
Mad Max is back, plus the rest of our new reviews and notable screeningschicagonewsonlineradio
 
https://www.facebook.com/valdyna.monna?fref=ts
https://www.facebook.com/valdyna.monna?fref=tshttps://www.facebook.com/valdyna.monna?fref=ts
https://www.facebook.com/valdyna.monna?fref=tsArif Alexi
 
Embracing YUI3 and Frontend Perf
Embracing YUI3 and Frontend PerfEmbracing YUI3 and Frontend Perf
Embracing YUI3 and Frontend PerfMorgan Cheng
 
Xamarin: Introduction to iOS 8
Xamarin: Introduction to iOS 8Xamarin: Introduction to iOS 8
Xamarin: Introduction to iOS 8Xamarin
 
Rushed to Victory Gardens' stage, An Issue of Blood is more effusion than play
Rushed to Victory Gardens' stage, An Issue of Blood is more effusion than playRushed to Victory Gardens' stage, An Issue of Blood is more effusion than play
Rushed to Victory Gardens' stage, An Issue of Blood is more effusion than playchicagonewsyesterday
 
Tinkerbelles return home from their Guinness world-record attempt on Sunday
Tinkerbelles return home from their Guinness world-record attempt on SundayTinkerbelles return home from their Guinness world-record attempt on Sunday
Tinkerbelles return home from their Guinness world-record attempt on Sundaychicagonewsyesterday
 
Crossing platforms with JavaScript & React
Crossing platforms with JavaScript & React Crossing platforms with JavaScript & React
Crossing platforms with JavaScript & React Robert DeLuca
 
Google I/O 2021 Recap
Google I/O 2021 RecapGoogle I/O 2021 Recap
Google I/O 2021 Recapfurusin
 
MVVM with SwiftUI and Combine
MVVM with SwiftUI and CombineMVVM with SwiftUI and Combine
MVVM with SwiftUI and CombineTai Lun Tseng
 
Introduction To Google Android (Ft Rohan Bomle)
Introduction To Google Android (Ft Rohan Bomle)Introduction To Google Android (Ft Rohan Bomle)
Introduction To Google Android (Ft Rohan Bomle)Fafadia Tech
 
Introduction to Android Wear
Introduction to Android WearIntroduction to Android Wear
Introduction to Android WearPeter Friese
 
Combining Graphical and Textual
Combining Graphical and TextualCombining Graphical and Textual
Combining Graphical and TextualDr. Jan Köhnlein
 
More android code puzzles
More android code puzzlesMore android code puzzles
More android code puzzlesDanny Preussler
 
Oracle helpdesk database shema
Oracle helpdesk database shemaOracle helpdesk database shema
Oracle helpdesk database shemaMurat Gülci
 

What's hot (19)

The rise and fall of a techno DJ, plus more new reviews and notable screenings
The rise and fall of a techno DJ, plus more new reviews and notable screeningsThe rise and fall of a techno DJ, plus more new reviews and notable screenings
The rise and fall of a techno DJ, plus more new reviews and notable screenings
 
Mad Max is back, plus the rest of our new reviews and notable screenings
Mad Max is back, plus the rest of our new reviews and notable screeningsMad Max is back, plus the rest of our new reviews and notable screenings
Mad Max is back, plus the rest of our new reviews and notable screenings
 
https://www.facebook.com/valdyna.monna?fref=ts
https://www.facebook.com/valdyna.monna?fref=tshttps://www.facebook.com/valdyna.monna?fref=ts
https://www.facebook.com/valdyna.monna?fref=ts
 
Embracing YUI3 and Frontend Perf
Embracing YUI3 and Frontend PerfEmbracing YUI3 and Frontend Perf
Embracing YUI3 and Frontend Perf
 
Xamarin: Introduction to iOS 8
Xamarin: Introduction to iOS 8Xamarin: Introduction to iOS 8
Xamarin: Introduction to iOS 8
 
Rushed to Victory Gardens' stage, An Issue of Blood is more effusion than play
Rushed to Victory Gardens' stage, An Issue of Blood is more effusion than playRushed to Victory Gardens' stage, An Issue of Blood is more effusion than play
Rushed to Victory Gardens' stage, An Issue of Blood is more effusion than play
 
Tinkerbelles return home from their Guinness world-record attempt on Sunday
Tinkerbelles return home from their Guinness world-record attempt on SundayTinkerbelles return home from their Guinness world-record attempt on Sunday
Tinkerbelles return home from their Guinness world-record attempt on Sunday
 
Send.php
Send.phpSend.php
Send.php
 
Crossing platforms with JavaScript & React
Crossing platforms with JavaScript & React Crossing platforms with JavaScript & React
Crossing platforms with JavaScript & React
 
Discontinuing Reader Matches
Discontinuing Reader MatchesDiscontinuing Reader Matches
Discontinuing Reader Matches
 
Google I/O 2021 Recap
Google I/O 2021 RecapGoogle I/O 2021 Recap
Google I/O 2021 Recap
 
MVVM with SwiftUI and Combine
MVVM with SwiftUI and CombineMVVM with SwiftUI and Combine
MVVM with SwiftUI and Combine
 
Jquery
JqueryJquery
Jquery
 
Introduction To Google Android (Ft Rohan Bomle)
Introduction To Google Android (Ft Rohan Bomle)Introduction To Google Android (Ft Rohan Bomle)
Introduction To Google Android (Ft Rohan Bomle)
 
Introduction to Android Wear
Introduction to Android WearIntroduction to Android Wear
Introduction to Android Wear
 
Combining Graphical and Textual
Combining Graphical and TextualCombining Graphical and Textual
Combining Graphical and Textual
 
More android code puzzles
More android code puzzlesMore android code puzzles
More android code puzzles
 
Android App Dev Manual-1.doc
Android App Dev Manual-1.docAndroid App Dev Manual-1.doc
Android App Dev Manual-1.doc
 
Oracle helpdesk database shema
Oracle helpdesk database shemaOracle helpdesk database shema
Oracle helpdesk database shema
 

Viewers also liked (7)

Mini curso Android
Mini curso AndroidMini curso Android
Mini curso Android
 
BI
BIBI
BI
 
Android, por onde começar?
Android, por onde começar?Android, por onde começar?
Android, por onde começar?
 
Html
HtmlHtml
Html
 
Java www
Java wwwJava www
Java www
 
Labs Jogos Java
Labs Jogos JavaLabs Jogos Java
Labs Jogos Java
 
HTTP
HTTPHTTP
HTTP
 

Similar to Minicurso Android

CouchDB on Android
CouchDB on AndroidCouchDB on Android
CouchDB on AndroidSven Haiges
 
Quick Intro to Android Development
Quick Intro to Android DevelopmentQuick Intro to Android Development
Quick Intro to Android DevelopmentJussi Pohjolainen
 
Android Best Practices
Android Best PracticesAndroid Best Practices
Android Best PracticesYekmer Simsek
 
mobl presentation @ IHomer
mobl presentation @ IHomermobl presentation @ IHomer
mobl presentation @ IHomerzefhemel
 
Voyage en monde Android. Trucs et astuces tout au long de la route.
Voyage en monde Android. Trucs et astuces tout au long de la route.Voyage en monde Android. Trucs et astuces tout au long de la route.
Voyage en monde Android. Trucs et astuces tout au long de la route.Mathias Seguy
 
Building Modern Apps using Android Architecture Components
Building Modern Apps using Android Architecture ComponentsBuilding Modern Apps using Android Architecture Components
Building Modern Apps using Android Architecture ComponentsHassan Abid
 
Architecting Android Apps: Marko Gargenta
Architecting Android Apps: Marko GargentaArchitecting Android Apps: Marko Gargenta
Architecting Android Apps: Marko Gargentajaxconf
 
SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)Oswald Campesato
 
Paris js extensions
Paris js extensionsParis js extensions
Paris js extensionserwanl
 
Android activity, service, and broadcast recievers
Android activity, service, and broadcast recieversAndroid activity, service, and broadcast recievers
Android activity, service, and broadcast recieversUtkarsh Mankad
 
Design Patterns for Tablets and Smartphones
Design Patterns for Tablets and SmartphonesDesign Patterns for Tablets and Smartphones
Design Patterns for Tablets and SmartphonesMichael Galpin
 
Android Code Puzzles (DroidCon Amsterdam 2012)
Android Code Puzzles (DroidCon Amsterdam 2012)Android Code Puzzles (DroidCon Amsterdam 2012)
Android Code Puzzles (DroidCon Amsterdam 2012)Danny Preussler
 
Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016
Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016
Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016Loïc Knuchel
 
How to become an Android dev starting from iOS (and vice versa)
How to become an Android dev starting from iOS (and vice versa)How to become an Android dev starting from iOS (and vice versa)
How to become an Android dev starting from iOS (and vice versa)Giuseppe Filograno
 
ProTips DroidCon Paris 2013
ProTips DroidCon Paris 2013ProTips DroidCon Paris 2013
ProTips DroidCon Paris 2013Mathias Seguy
 
20110525[Taipei GTUG] titanium mobile簡介
20110525[Taipei GTUG] titanium mobile簡介20110525[Taipei GTUG] titanium mobile簡介
20110525[Taipei GTUG] titanium mobile簡介Justin Lee
 
droidQuery: The Android port of jQuery
droidQuery: The Android port of jQuerydroidQuery: The Android port of jQuery
droidQuery: The Android port of jQueryPhDBrown
 

Similar to Minicurso Android (20)

CouchDB on Android
CouchDB on AndroidCouchDB on Android
CouchDB on Android
 
Quick Intro to Android Development
Quick Intro to Android DevelopmentQuick Intro to Android Development
Quick Intro to Android Development
 
Android Best Practices
Android Best PracticesAndroid Best Practices
Android Best Practices
 
mobl presentation @ IHomer
mobl presentation @ IHomermobl presentation @ IHomer
mobl presentation @ IHomer
 
Voyage en monde Android. Trucs et astuces tout au long de la route.
Voyage en monde Android. Trucs et astuces tout au long de la route.Voyage en monde Android. Trucs et astuces tout au long de la route.
Voyage en monde Android. Trucs et astuces tout au long de la route.
 
Building Modern Apps using Android Architecture Components
Building Modern Apps using Android Architecture ComponentsBuilding Modern Apps using Android Architecture Components
Building Modern Apps using Android Architecture Components
 
Architecting Android Apps: Marko Gargenta
Architecting Android Apps: Marko GargentaArchitecting Android Apps: Marko Gargenta
Architecting Android Apps: Marko Gargenta
 
mobl
moblmobl
mobl
 
Svcc 2013-d3
Svcc 2013-d3Svcc 2013-d3
Svcc 2013-d3
 
SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)
 
Android 3
Android 3Android 3
Android 3
 
Paris js extensions
Paris js extensionsParis js extensions
Paris js extensions
 
Android activity, service, and broadcast recievers
Android activity, service, and broadcast recieversAndroid activity, service, and broadcast recievers
Android activity, service, and broadcast recievers
 
Design Patterns for Tablets and Smartphones
Design Patterns for Tablets and SmartphonesDesign Patterns for Tablets and Smartphones
Design Patterns for Tablets and Smartphones
 
Android Code Puzzles (DroidCon Amsterdam 2012)
Android Code Puzzles (DroidCon Amsterdam 2012)Android Code Puzzles (DroidCon Amsterdam 2012)
Android Code Puzzles (DroidCon Amsterdam 2012)
 
Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016
Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016
Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016
 
How to become an Android dev starting from iOS (and vice versa)
How to become an Android dev starting from iOS (and vice versa)How to become an Android dev starting from iOS (and vice versa)
How to become an Android dev starting from iOS (and vice versa)
 
ProTips DroidCon Paris 2013
ProTips DroidCon Paris 2013ProTips DroidCon Paris 2013
ProTips DroidCon Paris 2013
 
20110525[Taipei GTUG] titanium mobile簡介
20110525[Taipei GTUG] titanium mobile簡介20110525[Taipei GTUG] titanium mobile簡介
20110525[Taipei GTUG] titanium mobile簡介
 
droidQuery: The Android port of jQuery
droidQuery: The Android port of jQuerydroidQuery: The Android port of jQuery
droidQuery: The Android port of jQuery
 

More from Mario Jorge Pereira

More from Mario Jorge Pereira (19)

Educacao e Inteligencia Artificial Generativa
Educacao e Inteligencia Artificial GenerativaEducacao e Inteligencia Artificial Generativa
Educacao e Inteligencia Artificial Generativa
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
 
Guia rapido java v2
Guia rapido java v2Guia rapido java v2
Guia rapido java v2
 
Guia Rápido de Referência Java
Guia Rápido de Referência JavaGuia Rápido de Referência Java
Guia Rápido de Referência Java
 
Java Nuvem Appengine
Java Nuvem AppengineJava Nuvem Appengine
Java Nuvem Appengine
 
Java Server Faces
Java Server FacesJava Server Faces
Java Server Faces
 
Hands-On Java web passando por Servlets, JSP, JSTL, JDBC, Hibernate, DAO, MV...
Hands-On Java web passando por  Servlets, JSP, JSTL, JDBC, Hibernate, DAO, MV...Hands-On Java web passando por  Servlets, JSP, JSTL, JDBC, Hibernate, DAO, MV...
Hands-On Java web passando por Servlets, JSP, JSTL, JDBC, Hibernate, DAO, MV...
 
Android e Cloud Computing
Android e Cloud ComputingAndroid e Cloud Computing
Android e Cloud Computing
 
Threads
ThreadsThreads
Threads
 
RMI (Remote Method Invocation)
RMI (Remote Method Invocation) RMI (Remote Method Invocation)
RMI (Remote Method Invocation)
 
Socket
SocketSocket
Socket
 
Java e Cloud Computing
Java e Cloud ComputingJava e Cloud Computing
Java e Cloud Computing
 
GUI - Eventos
GUI - EventosGUI - Eventos
GUI - Eventos
 
GUI Aplicações Gráficas
GUI Aplicações Gráficas GUI Aplicações Gráficas
GUI Aplicações Gráficas
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java
 
Erros comuns em java
Erros comuns em javaErros comuns em java
Erros comuns em java
 
Introdução ao java Alo Mundo
Introdução ao java Alo MundoIntrodução ao java Alo Mundo
Introdução ao java Alo Mundo
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
 
Java Coleções
Java ColeçõesJava Coleções
Java Coleções
 

Recently uploaded

How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17Celine George
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Jisc
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptxmary850239
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxDr.Ibrahim Hassaan
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomnelietumpap1
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 

Recently uploaded (20)

How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptx
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choom
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 

Minicurso Android

  • 1. Android - 4h 100% Hands-on
  • 2.
  • 5. Agenda Setup (Ambiente e AVD’s) Development Alo Mundo (Hello World) Lista Tarefas (ToDo List) (Listar, Inserir, Excluir, Preferencias …)
  • 6.
  • 9. ADT Bundle: • Eclipse + ADT plugin • Android SDK Tools • Android Platform-tools Pré requisito: JDK instalada
  • 12. Android Virtual Device AVD Emulador
  • 13. Alô Mundo File > New > Android Application Project
  • 15.
  • 16. src/ 
 (código fonte: .java)" gen/
 (código gerado: R.java )" bin/
 (bytecodes: .dex)" libs/ 
 (bibliotecas)" Es tr ut ur a res/ 
 (recursos: layouts, strigs, icones …)" assets/ 
 (outros recursos: arquivos em geral)
  • 17.
  • 18. " rsion="1.0 <?xml ve esources> <r "utf-8"?> encoding= /string> Alo Mundo< > s</string> "app_name" s "> S e t t i n g ring name= g <st ion_settin ct </string> a llo world! ing name=" e <str o _ w o r l d "> H name="hell <string ! ! /resources < > strings.xml
  • 19. /* AUT ED FILE. O-GENERAT D I F Y .* / DO NOT MO class R { al { public fin class attr al static fin public 0; =0x7f04000 imen { } s d rgin final clas izontal_ma tic 01; _hor public sta n= 0 x 7 f 0 4 0 0 t activity argi l in vertical_m tatic fina ty_ public s int activi inal c static f publi ; } s layout { 0x7f030000 al clas fin a i n= activity_m lic static pub int tic final public sta } } ... R.java
  • 20. MainActivity.java ! ! } public cla ss MainAct ivity exte ! nds Activi ty { @Override protected void onCre ate(Bundle super.onCr savedInsta eate(saved nceState) InstanceSt { setContent ate); View(R.lay o u t .a c t i v i } t y _ m a i n) ; @Override public boo lean onCre ateOptions getMenuInf Menu(Menu later().in menu) { flate(R.me return tru n u .m a i n , m e; enu); }
  • 21. AndroidManifest.xml utfencoding=“ sion="1.0" 8"?> <?xml ver . . .> <manifest ... . > ication .. i t y " <appl .MainActiv mundo xample.alo <activity com.e : n a m e=" b r . " > android g/app_name strin d : l a b e l= " @ " /> androi ction.MAIN t e r> /> tent.a intent-fil LAUNCHER" android.in < m e= " gory. android:na ntent.cate roid.i <action : n a m e= " a n d droid ategory an <c l t e r> /intent-fi < > </activity i o n> </applicat > </manifest
  • 22. ToDo br.mobileday.todo File > New > Android Application Project
  • 23. Log.[n NSAGEM”); e l ] (“ T A G ”, “ M E iv ! (Verbose) Log.v (Debug) Log.d (Info) Log.i (Warning) Log.w e (Erro) Log. ( .wtf ...) Log Log
  • 24. yout ... > elativeLa <R ... <Button d / b o t a o " i d : i d= " @ + i andro _ c o n t e n t " i d t h= " w r a p d:layout_w androi p_content" e i g h t= " w r a d:layout_h t V i e w 1 " roi x and w= " @ + i d / t e ayout_belo oid:l l= " t r u e " andr rHorizonta yout_cente android:la "Botao" r o i d : t e x t= and etodo" /> o n C l i c k= " m android: ... L a y o u t> </Relative activity_main.xml
  • 25. MainActivity.java public cla ss MainAct ivi ! ty extends Activity { @Override protected void onCre ate(Bundle super.onCr savedInsta eate(saved nceState) InstanceSt { setContent ate); View(R.lay o u t .a c t i v i } t y _ m a i n) ; ... public voi d metodo(V iew v){ Log.i(“T AG”,"TEXTO "); } }
  • 27. TOAST .show a s t .L E N G T H _ L O N G) , To x t (t h i s , " T E X T O " t.makeTe Toas ! ! G Toast.LENGTH_LON ! st.LENGTH_SHORT Toa ! ();
  • 28. MainActivity.java public cla ss MainAct ivity exte ! nds Activi ty { @Override protected void onCre ate(Bundle super.onCr savedInsta eate(saved nceState) InstanceSt { setContent ate); View(R.lay o u t .a c t i v i } t y _ m a i n) ; ... public voi d metodo(V iew v){ Toast.ma keText(thi s, "ToDo!" } , Toast.LE N G T H _ L O N G) } .show();
  • 30. findbyid y I d ( R . i d .[ i d ] ) ; B [Tipo]) findView [Tipo] var = ( ! v a r . m e t o d o ( ) ; !
  • 31. MainActivity.java public cla ss MainAct ivity exte ! nds Activi ty { @Override protected void onCre ate(Bundle super.onCr savedInsta eate(saved nceState) InstanceSt { setContent ate); View(R.lay o u t .a c t i v i } t y _ m a i n) ; ... public voi d metodo(V iew v){ TextVie w tv = (Te xtView) fi tv.setTex ndViewById t( "ToDO!") (R.id.text ; } View1); }
  • 33.
  • 34. NovaActivity.java public cla ss NovaAct ivity ! extends Ac tivity { @Overrid e protecte d void onC reate(Bund super. le savedIn onCreate(s stanceStat avedInstan e) { setCon ceState); tentView(R .layout.ac } tivity_nov a) ; ! @Overrid e public b oolean onC reateOptio getMen nsMenu(Men uInflater( u menu) { ).inflate( return R.menu.nov true; a, menu); } ! }
  • 35. AndroidManifest.xml “utf-8"?> encoding= sion="1.0" <?xml ver f e s t . . .> <mani ... tion ... > <applica ... A c t i v i t y " va tivity ay.todo.No ed <ac ="br.mobil me ty_nova" > vi android:na title_acti / l= " @ s t r i n g be android:la > </activity > pplication </a /manifest> <
  • 36. MainActivity.java public cla ss MainAct ivity exte ! nds Activi ty { @Override protected void onCre ate(Bundle super.onCr savedInsta eate(saved nceState) InstanceSt { setContent ate); View(R.lay o u t .a c t i v i } t y _ m a i n) ; ... public voi d metodo(V iew v){ ntent in I tent = new Intent(thi ntent.pu i s,NovaActi tExtra("ch v i t y .c l a s s ave", "val ); tartActi s or"); vity(inten t); } }
  • 37. yout ... > elativeLa <R ... <Button d / b o t a o " i d : i d= " @ + i andro _ c o n t e n t " i d t h= " w r a p d:layout_w androi p_content" e i g h t= " w r a d:layout_h t V i e w 1 " roi x and w= " @ + i d / t e ayout_belo oid:l l= " t r u e " andr rHorizonta yout_cente android:la "Voltar" r o i d : t e x t= and oltar" /> o n C l i c k= " v android: ... L a y o u t> </Relative activity_nova.xml.java
  • 38. NovaActivity.java public cla ss NovaAct ivity exte ! nds Activi ty { @Override protected void onCre ate(Bundle super.onCr savedInsta eate(saved nceState) set InstanceSt { ContentVie ate); w(R.layout Bun . activity_ dle extas n o v a) ; = getInten Tex t().getExt tView tv = ras(); (TextView) tv. findViewBy setText(ex Id(R.id.te tas.getStr xtView1); } ing("chave ")); ... public voi d voltar(V iew v){ fin ish(); } }
  • 40. > t 1 " ayout ... lativeL id/editTex <Re "@+ n d r o i d : i d= t " a fill_paren <EditText t h= " t " layout_wid android: rap_conten t= " w yout_heigh e" android:la t L e f t= " t r u ren ut_alignPa " o i g h t= " t r u e ndroid:lay a entR t_alignPar you " android:la t T o p= " t r u e aren out_alignP y android:la f a " "Nome Tare n t= android:hi xt" u t T y p e= " t e p android:in > d : e m s= " 1 0 " androi /> uestFocus <req > " </EditText id/button1 ="@+ t " android:id rap_conten Button < h= " w ayout_widt t " android:l rap_conten ="w out_height " y /editText1 android:la @+id u t _ b e l o w= " t a l= " t r u e " droid:layo an izon _centerHor yout android:la r" i c k= " s a l v a Cl android:on Salvar" /> x t=" android:te > tiveLayout </Rela activity_nova.xml
  • 41. public cla ss NovaAct ivity ! ! private Ed itText tex t; NovaActivity.java extends Ac tivity { @Overri de protect ed void on Create(Bun supe dle savedI r.onCreate nstanceSta (savedInst te) { setC anceState) ontentView ; (R.layout. text activity_n = (EditTex o v a) ; t) findVie } wById(R.id .e d i t T e x t 1 ); ! @Overri de public boolean on CreateOpti getM onsMenu(Me enuInflate nu menu) { r().inflat retu e(R.menu.n rn true; ova, menu) ; } ! } public voi d salvar(V iew v){ Intent d ados = new Intent(); dados.putE xtra("nome ", text.ge setResul tText().to t( RESULT_O String()); K, d a d o s ) ; finish() ; }
  • 42. MainActivity.java public cla ss MainAct ivity exte nds Activi ty { ... ! ! } public voi d metodo(V iew v){ Intent i ntent = ne w Intent(t startAct his,NovaAc ivityForRe t i v i t y .c l a sult(inten ss); } t,9999); @Override protected void onAct ivityResul if(reque t (i n t r e q u stCode == estCode, i 9999 && re nt resultC oast.make T sultCode = ode, Inten Text(this, = RESULT_O t data) { data.getSt K){ } ringExtra( "nome"), T } oast.LENGT H _ L O N G) . s h ow();
  • 44. ut ... > ativeLayo <Rel ... <ListView s t V i e w 1 " i i d=" @ + i d / l ndroid: h _ p a r e n t " a c w i d t h= " m a t id:layout_ ro c o n t e n t " _ and i g h t= " w r a p :layout_he oid t o m= " t r u e " andr nParentBot ayout_alig oid:l t= " t r u e " f andr gnParentLe layout_ali id: t= " t r u e " andro ParentRigh yout_align id:la "true" > = andro nParentTop ayout_alig android:l ListView> </ ... L a y o u t> </Relative activity_main.xml
  • 45. tp://schem d r o i d= " h t as com/apk/re .android. s/ n nu xmlns:a <me android" > ! " <item ction_nova /a d:id="@+id androi o r y= " 1 0 0 " eg orderInCat android: n= " n e v e r " io :showAsAct > android a T a r e f a "/ v : t i t l e= " N o android ! </menu> main.xml
  • 46. MainActivity.java ! public cla ss MainAct ivity exte private nds Activi ListView l ty { istView; @Override protected void onCre ate(Bundle super.onCr savedInsta eate(saved nceState) InstanceSt { setContent ate); View(R.lay o u t .a c t i v i listView = t y _ m a i n) ; (ListView) findViewBy String[] v I d ( R . i d .l i alues = ne s t V i e w 1) ; w String[] ArrayAdapt {"Acorda", er<String> "MobileDay adapter = andro ", " H a p p y H new ArrayA o u r "} ; id.R.layou dapter<Str t.simple_l listView.s i n g > (t h i s , ist_item_1 etAdapter( ,values); adapter); } public boo lean onOpt ionsItemSe switch lected(Men (item.getI uItem item temId()) { ) { case R.id. action_nov a: Int ent intent = new Inte sta nt(this, N rtActivity ovaActivit ForResult( ret y .c l a s s ) ; intent, 99 urn true; 99); default: return sup er.onOptio } nsItemSele cted(item) } ; ... }
  • 48. MainActivity.java public cla ss MainAct ivity exte private nds Activi ListView l ty { istView; private static Arr ayList<Str private ing> value ArrayAdapt s = new Ar er<String> ! rayList<St adapter; ring>(); @Overri de protect ed void on Create(Bun supe dle savedI r.onCreate nstanceSta (savedInst te) { setC anceState) ontentView ; (R.layout. list activity_m View = (Li a i n) ; stView) fi adap ndViewById ter = new ( R . i d .l i s t ArrayAdapt View1); er<String> (t h i s , andr list oid.R.layo View.setAd ut.simple_ a p t e r (a d a p } list_item_ ter); 1, v a l u e s ) ; ! } @Override protected void onRes ume() { super.o nResume(); adapter .notifyDat aSetChange } d(); ...
  • 49. MainActivity.java public cla ss MainAct ivity exte ... nds Activi t y { @Overrid e protecte d void onA ctivityRes resultCode u l t (i n t r e , Intent d questCode, ata) { if (re int questCode == 9999 && Str resultCode ing tarefa == RESULT_ = data.get val OK) { StringExtr ues.add(ta a("nome"); refa); } } ! }
  • 51. MainActivity.java public cla ss MainAct ivity exte ... nds Activi t y { private SharedPref erences se @Overri ttings; de protect ed void on Create(Bun ... dle savedI nstanceSta te) { sett ings = Pr eferenceMa Edit nager.getD or editor efaultShar = settings edPreferen edit .edit(); ces(this); or.putStri ng("ultimo edit ", ""); or.commit( ); } ... @Overri de protect ed void on ActivityRe if ( s u l t (i n t r requestCod equestCode e == 9999 , int resu && resultC ltCode, In String tar ode == RES tent data) efa = data ULT_OK) { { .getString values.add Extra("nom (tarefa); e"); Editor edi t o r = sett ings.edit( editor.put ); String("ul timo", tar editor.com efa); mit(); } } }
  • 52. NovaActivity.java public cla ss NovaAct ivity ! ! private Ed itText tex t; extends Ac tivity { protect ed void on Create(Bun super dle savedI .onCreate( nstanceSta savedInsta te) { setCo nceState); ntentView( R.layout.a text ctivity_no = (EditTex v a) ; t) findVie Share wById(R.id dPreferenc .e d i t T e x t 1 es setting ); s = Prefe renceManag Strin er.getDefa g valor = ultSharedP settings.g references text. etString(" (this); setText(va ultimo", " lor); Tarefa"); } ... }
  • 54. mlns:andr <menu x ndroid" > res/a ! ://schem o i d= " h t t p d.com/apk/ as.androi <item / e x i b i r " d : i d= " @ + i d androi g o r y= " 1 0 0 " rderInCate android:o ="never" owAsAction android:sh Exibir"/> i d : t i t l e= " andro ! </menu> context_menu.xml
  • 55. MainActivity.java public cla ss MainAct ivity exte ... nds Activi t y { @Overrid e protecte d void onC reate(Bund ... le savedIn stanceStat e ) { reg isterForCo ntextMenu( } listView); ! @Overrid e public v oid onCrea teContextM ContextMen enu(Contex uInfo menu tMenu menu Info) { , View v, super. onCreateCo ntextMenu( MenuIn menu, v, m flater inf enuInfo); later = ge inflat tMenuInfla er.inflate ter(); (R.menu.co } ntext_menu , menu); ... }
  • 56. MainActivity.java public cla ss MainAct ivity exte ... nds Activi t y { public b oolean onC ontextItem AdapterCon Selected(M textMenuIn enuItem it fo info = item.getMe em) { (AdapterCo nuInfo(); ntextMenuI switch (it nfo) em.getItem Id()) { case R.id. action_set t i n g s: String val or = (Stri listView.g ng) etItemAtPo sition(inf o .p o s i t i o n Toast.make ); Text(this, valor, Toa return tru s t .L E N G T H _ e; L O N G) . s h o w default: (); return sup er.onConte xtItemSele } cted(item) ; } ... }
  • 58. xmlns:andr <menu ndroid" > a ! ://schemas o i d= " h t t p .a m/apk/res/ ndroid.co <item id/exibir" @+ droid:id=" an g o r y= " 1 0 0 " te :orderInCa android o n= " n e v e r " i :showAsAct android “Exibir"/> = roid:title and <item / e x c l u i r " id oid:id="@+ andr r y= " 1 0 0 " go rderInCate " android:o i o n= " n e v e r ct id:showAsA andro xcluir"/> E i d : t i t l e= " andro ! </menu> context_menu.xml
  • 59. MainActivity.java public cla ss MainAct ivity exte ... nds Activi t y { public boolean on ContextIte mSelected( AdapterCon MenuItem i textMenuIn tem) { item.getMe fo info = nuInfo(); (AdapterCo ntextMenuI nfo) switch (it em.getItem Id()) { case R.i d.exibir: String valor = (S tring) lis tView.getI Toast.make temAtPosit Text(this, i o n ( i n f o .p valor, Toa return tru osition); s t .L E N G T H _ e; L O N G) . s h o w case R.id. (); excluir: v a l u e s . r e move(info. position); a d a p t e r . n otifyDataS etChanged( return tru ); e; default: return sup er.onConte } xtItemSele cted(item) ... ; }
  • 61. r o i d= " h t t p xmlns:and s.android. ://schema com android" > /apk/res/ <menu ! <item tion_nova" /ac d : i d=" @ + i d androi g o r y= " 1 0 0 " ate d:orderInC androi n= " n e v e r " tio d:showAsAc androi T a r e f a "/ > ova d : t i t l e= " N androi <item @+id/site" =" android:id g o r y= " 1 0 0 " ate d:orderInC androi o n= " n e v e r " ti d:showAsAc androi e= " S i t e "/ > tl android:ti </menu> menu.xml
  • 62. MainActivity.java public cla ss MainAct ivity exte ... nds Activi t y { public boolean on OptionsIte switc mSelected( h (item.ge MenuItem i tItemId()) tem) { case { R.id.actio n _ n o v a: no va(); re turn true; case R.id. site: Intent i ntent = new Inte nt(Intent. "http://ww ACTION_VIE w.google.c W,Uri.pars o m ") ) ; e ( startAct ivity(inte nt); return t rue; defau lt: re turn super .onOptions } ItemSelect ed(item); } ... }
  • 64.
  • 65. Esta obra está licenciada sob a licença Creative Commons Atribuição-CompartilhaIgual 3.0 Não Adaptada. Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-sa/3.0/.
  • 66. ANDROID Mario Jorge Pereira Como me encontrar? http://www.mariojp.com.br twitter.com/@mariojp mariojp@gmail.com