Você está na página 1de 29

20/01/14

1
1 / 33
!"#"$%&'( * +#,&(",
Arthur Souza, Thiago Csar, Nlio Cacho
ueparLamenLo de lnformuca e MaLemuca Apllcada
naLal - 8n - 8rasll
2 / 33
Quem.
20/01/14
2
3 / 33
Conteuo
! AmblenLe de desenvolvlmenLo
! Pello World
! LsLruLura de um app
! Clclo de vlda
! Muluplas Lelas
! Salvando e lendo prefernclas
! LlsLvlew
4 / 33
Boiiio
! ue 8h a 12h
! ausa de 13 a 20 mln no melo do mlnlcurso
20/01/14
3
3 / 33
Anuioiu
! llha de sowares para
dlsposluvos mvels
(Wlklpedla)
! SlsLema Cperaclonal
! Mlddleware (8lblloLecas
+ lramework +
Mqulna vlrLual)
! Apllcaes chaves
6 / 33
Bispositivos
! SmarLphones,
1ableLs, 1vs,
consoles,
compuLador
pessoal..
20/01/14
4
7 / 33
0S - Anuioiu
! Comprado pela Coogle em 2003
! Anunclado em 2007 e lanado em 2008
! usa o kernel do Llnux
! 8oda uma mqulna vlrLual !ava prprla: ualvlk vM
! vrlas blblloLecas !ava funclonam sem alLeraes na
ualvlk (porem nem Lodas)
8 / 33
Notivao
20/01/14
3
9 / 33
Empacotamento
! Comblna recursos de pacoLes e arqulvo .dex e salva
Ludo em um arqulvo apk.
10 / 33
veises
! 1.0: mulLo anuga
! 2.0: smarLphones
! 3.0: LableLs
! 4.0: smarLphones e LableLs
20/01/14
6
11 / 33
veises
! hup://developer.androld.com/abouL/dashboards/lndex.hLml
12 / 33
20/01/14
7
13 / 33
Ambiente ue uesenvolvimento
! hup://developer.androld.com/sdk/lndex.hLml

14 / 33
20/01/14
8
13 / 33
EmulauoiAnuioiu viitual Bevice (AvB)
16 / 33
Pitica
! Abrlr o amblenLe de desenvolvlmenLo
! Crlar e execuLar uma Avu
! Abrlr o Suk Manager
20/01/14
9
17 / 33
Pitica
! Abrlr o uuMS, LmulaLor ConLrol e slmule uma llgao
Lelefnlca.
18 / 33
Piojeto hello, woilu!
! novo pro[eLo
20/01/14
10
19 / 33
Novo piojeto
20 / 33
Estiutuia ua aplicao
! "#$% - cdlgo-fonLe
! #&"% - Lelas, sLrlngs, lcones do app...
! '""&("% - ouLros arqulvos usados por seu
app (lmagem, muslca, LexLo...)
! )&*% cdlgo-fonLe gerado
auLomaucamenLe
! +*,#-.,/'*.0&"(1234 - congurao do
app (nome, verso do androld, Lelas
(acuvlLys), permlsses...)
20/01/14
11
21 / 33
Activity
! L uma Lela
! Ao crlar um pro[eLo, uma AcuvlLy (Maln) e crlada
! Cada AcuvlLy e denlda em dols arqulvos.
! res/layouL/acuvlLy_*-3&.xml (vlsual)
! src/.../5-3&AcuvlLy.[ava (comporLamenLo)
! L e llsLada no arqulvo AndroldManlfesL.xml
22 / 33
Layout
! res/layouL/acuvlLy_maln.xml
20/01/14
12
23 / 33
stiings.xml
! res/values/sLrlngs.xml
24 / 33
Couigo }ava
! src/.../MalnAcuvlLy.[ava
20/01/14
13
23 / 33
R (aiquivo geiauo pelo compilauoi)
! Cada recurso e ldenucado por um numero. C
compllador gera consLanLes para faclllLar o uso de
recursos no cdlgo-fonLe.
26 / 33
Pitica
! SubsuLua, no arqulvo sLrlngs.xml, Pello world!" por
Alo mundo!"
! LxecuLe o app.
20/01/14
14
27 / 33
Inteiao
! Adlclonando um boLo
28 / 33
Ius...
! res/layouL/acuvlLy_maln.xml
20/01/14
13
29 / 33
R (aiquivo geiauo pelo compilauoi)
! gen/8.[ava
30 / 33
Clique
! res/layouL/acuvlLy_maln.xml
20/01/14
16
31 / 33
Ntouo botaoClicauo
! src/.../MalnAcuvlLy.[ava
32 / 33
E paia fazei o que, quanuo clicai no
boto.
! Lxlblr algo na Lela
! Lxlblr algo no log
! Mudar o LexLo do 1exLvlew
20/01/14
17
33 / 33
Toast (mensagem na tela)
! 1oasL.make1exL(Lhls, Pello World!", 1oasL.LLnC1P_SPC81).show(),
34 / 33
Log (no apaiece paia o usuiio)
! Log.l(mlnhaLag", Mlnha mensagem")
! // MeLodos de log
! Log.v // verbose
! Log.d // uebug
! Log.l // lnfo
! Log.w // Warnlng
! Log.e // Lrror
! Log.wu // WhaL a 1errlble lallure
20/01/14
18
33 / 33
Alteiai o Textview (usai finuviewByIu)
! src/.../MalnAcuvlLy.[ava
36 / 33
Pitica
! Adlclone um campo de LexLo (LdlL1exL)
! Ao cllcar no boLo, alLere o 1exLvlew para o valor
do campo de LexLo (use geL1exL()).
! 8oa pruca: crle um aLrlbuLo para cada vlew e
lnlclallze Lodos no onCreaLe (usando ndvlewbyld)
20/01/14
19
37 / 33
Ciclo ue viua ue uma activity
38 / 33
Pitica
! lmplemenLe os meLodos do clclo de vlda de uma
acuvlLy para emlur uma mensagem de log para cada
um.
! 1enLe fazer com que onuesLroy se[a chamado.
20/01/14
20
39 / 33
Pitica
! 8oLaclone o dlsposluvo (CLrl+l11). Cuals meLodos so
chamados?
40 / 33
Piefeincias
! Como salvar dados para que eles possam ser acessados
da prxlma vez que o app se[a execuLado?
! Sharedreferences e uma forma convenlenLe de salvar
pequenas quanudades de dados.
20/01/14
21
41 / 33
Piefeincias
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(this);

Editor editor = prefs.edit();
editor.putString("texto", texto);
editor.commit();
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(this);

String texto = prefs.getString("texto", "");
42 / 33
Pitica
! laa o app guardar o LexLo
! Carregue no onCreaLe, salve no onuesLroy
! 8oa pruca: use aLrlbuLos sLauc nal para as chaves
20/01/14
22
43 / 33
PA0SA
44 / 33
Intents
! So mensagens que seu programa envla para o
slsLema para requlslLar funclonalldades de ouLros
componenLes
! Lxemplo: uma AcuvlLy envla um lnLenL para requlslLar
ao slsLema que ouLra AcuvlLy se[a aberLa
! CuLro exemplo: uma AcuvlLy envla um lnLenL para
requlslLar ao slsLema que abra um navegador na
pglna www.google.com
20/01/14
23
43 / 33
Abiinuo outia Activity
! MalnAcuvlLy.[ava
ode ser chamado, por exemplo, ao cllcar em um boLo.

A nova AcuvlLy e empllhada sobre a aLual.
46 / 33
Fechanuo a Activity
! CuLraAcuvlLy.[ava
Cuando uma AcuvlLy e fechada
(desempllhada), o slsLema mosLra a AcuvlLy
anLerlor, que esLava abalxo da aLual.

CuLraAcuvlLy deve se fechar, e no empllhar
MalnAcuvlLy.
20/01/14
24
47 / 33
Pitica
! Crle um pro[eLo.
! Crle uma nova AcuvlLy, chamada CuLraAcuvlLy
! na MalnAcuvlLy, adlclone um boLo que, ao ser
cllcado, abre CuLraAcuvlLy
! na CuLraAcuvlLy, adlclone um boLo que, ao ser
chamado, feche a AcuvlLy
48 / 33
Passanuo uauos ue uma activity paia outia
! CuLraAcuvlLy.[ava
! MalnAcuvlLy.[ava
ode ser chamado no onCreaLe()
20/01/14
23
49 / 33
Retoinanuo uauos ue uma activity
! MalnAcuvlLy.[ava
! CuLraAcuvlLy.[ava
! MalnAcuvlLy.[ava
30 / 33
Pitica
20/01/14
26
31 / 33
Intents Implicitos
// Abrir navegador
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("http://www.google.com/"));
startActivity(intent);

// Enviar mensagem (SMS)
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(android.content.Intent.EXTRA_TEXT, "Oi!");
startActivity(intent);
32 / 33
Listview
! lunclonamenLo:
20/01/14
27
33 / 33
Listview
34 / 33
Listview
ListView listView = (ListView) findViewById(R.id.mylist);





listView.setAdapter(adapter);
20/01/14
28
33 / 33
AiiayAuaptei
ListView listView = (ListView) findViewById(R.id.mylist);

String[] values = new String[] { Ada, Basic, C++ };
ArrayAdapter<String> adapter = new ArrayAdapter<String>
(this, android.R.layout.simple_list_item_1, // layout de
um item values);

listView.setAdapter(adapter);
36 / 33
Listview: inteiao
listView.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View
view, int position, long id) {

// ...

}
});
20/01/14
29
37 / 33
Pitica

Você também pode gostar