You are on page 1of 35

dit

UPM
Anllsls y dlseno de soware
Algunos derechos reservados. LsLe documenLo se dlsLrlbuye ba[o llcencla
Creauve Commons 8econoclmlenLo-noComerclal-Comparurlgual 3.0 unporLed.
hup://creauvecommons.org/llcenses/by-nc-sa/3.0/deed.es
uesarrollo de apllcaclones
en Androld
!uan AnLonlo de la uenLe <[puenLe[dlL.upm.es>
reparado con maLerlal de Carlos ngel lgleslas y !ose AnLonlo Manas
07-04-2014
AuSW - lnLroduccln a Androld 2014 ul1/uM
Cb[euvos
- Comprender los elemenLos bslcos de una apllcacln de
androld
! acuvldad
! loyoot
! elemenLos grcos
- Aprender a depurar apllcaclones de androld en ecllpse
! Lrazas
- Aprender a exporLar apllcaclones compleLas (apk)
2
Acuvldades
AuSW - lnLroduccln a Androld 2014 ul1/uM
Acuvldad
- una ocuvlJoJ se corresponde con una panLalla de la
apllcacln
- 1lene dos aspecLos
! aspecLo funclonal: programado en [ava
- clase que exuende AcuvlLy.[ava
! aspecLo grco: normalmenLe especlcado en xml
- dlsposlcln (loyoot) y elemenLos grcos (vlews)
" Lamblen podemos crear elemenLos grcos programando en [ava
- una acuvldad puede Lener ftoqmeotos
! comporLamlenLo o lnLerfaz parclal denLro de una acuvldad
4
2014 ul1/uM AuSW - lnLroduccln a Androld
Clclo de vlda de una acuvldad
- Ln cada Lranslcln de
esLado se lnvoca un
meLodo de la clase
correspondlenLe
! podemos denlr el
comporLamlenLo de la
acuvldad programando
esLos meLodos
3
loeote. bup.//Jevelopet.ooJtolJ.com/tefeteoce/ooJtolJ/opp/Acuvlty.btml
2014 ul1/uM AuSW - lnLroduccln a Androld
LsLados de una acuvldad
6
loeote. bup.//Jevelopet.ooJtolJ.com/ttololoq/boslcs/ocuvlty-llfecycle/stotuoq.btml
2014 ul1/uM AuSW - lnLroduccln a Androld
Lsquema en [ava
public class MyActivity extends Activity {

@Override
public void onCreate(Bundle bundle){super.onCreate(bundle);}

@Override
protected void onStart() { super.onStart(); ... }

@Override
protected void onResume() { super.onResume(); ... }

@Override
protected void onPause() { super.onPause(); ... }

@Override
protected void onStop() { super.onStop(); ... }

@Override
protected void onDestroy() { super.onDestroy(); ... }

...

}
7
loyoots y vlsLas
2014 ul1/uM AuSW - lnLroduccln a Androld
lnLerfaz grca
- Se especlca en xml
- LsLrucLura [errqulca
! loyoot: grupo de
elemenLos
! vlew: elemenLo grco
9
loeote. bup.//Jevelopet.ooJtolJ.com/qolJe/toplcs/ol/ovetvlew.btml
2014 ul1/uM AuSW - lnLroduccln a Androld
L[emplo
10
loeote. bup.//Jevelopet.ooJtolJ.com/qolJe/toplcs/ol/Jeclotloq-loyoot.btml
2014 ul1/uM AuSW - lnLroduccln a Androld
LayouL
- LlnearLayouL
! horlzonLal

! verucal

- 1ableLayouL
11
2014 ul1/uM AuSW - lnLroduccln a Androld
vlews
- LlemenLos grcos de una
apllcacln
- or e[emplo:
! 1exLvlew
! LdlL1exL
! 8uuon
! Check8ox
! eLc
- armeLros
! aspecLo
! comporLamlenLo
- enlace con !ava
12
L[emplo
AuSW - lnLroduccln a Androld 2014 ul1/uM
royecLo 5obte1eleco
- 8asado en un e[emplo
! hup://apcmag.com/bulldlng-a-slmple-androld-app.hLm
- una acuvldad con un esquema senclllo
! uLulo
! foLo que cambla al plcar en ella
! boLn que lanza un LexLo oLanLe
14
2014 ul1/uM AuSW - lnLroduccln a Androld
Lsquema de comporLamlenLo
13
2014 ul1/uM AuSW - lnLroduccln a Androld
Crear un proyecLo androld
16
2014 ul1/uM AuSW - lnLroduccln a Androld
Congurar proyecLo
17
2014 ul1/uM AuSW - lnLroduccln a Androld
Congurar lcono
18
2014 ul1/uM AuSW - lnLroduccln a Androld
Crear acuvldad
19
2014 ul1/uM AuSW - lnLroduccln a Androld
nombre de la acuvldad
20
acuvldad lnlclal
1 fragmenLo
2014 ul1/uM AuSW - lnLroduccln a Androld
Lspaclo de Lraba[o
21
2014 ul1/uM AuSW - lnLroduccln a Androld
LsLrucLura del proyecLo
22
cdlgo fuenLe (edlLar)
cdlgo generado }no camblar!
recursos
lnLerfaz grca (edlLar)
conguracln
2014 ul1/uM AuSW - lnLroduccln a Androld
lragmenL layouL
23
2014 ul1/uM AuSW - lnLroduccln a Androld
Camblar propledades
- Ln el edlLor grco, con el
boLn derecho




- C edlLando el LexLo xml
24
2014 ul1/uM AuSW - lnLroduccln a Androld
Anadlr elemenLos grcos (vlews)
- ArrasLrar desde la paleLa
grca
! o anadlr en el LexLo xml
- Anadlmos vlsLas
! una lmoqevlew para la foLo
- hay que coplar las lmgenes a
tes/Jtowoble/bJpl
! un 8ouoo
- con un rLulo 5obte lo escoelo
23
AuSW - lnLroduccln a Androld 2014 ul1/uM
MalnAcuvlLy
- Androld llama a onCreaLe() cuando arranca la apllcacln
26
AuSW - lnLroduccln a Androld 2014 ul1/uM
Anadlr funclonalldad al boLn
- Ln fragmenL_maln.xml






- Ln MalnAcuvlLy.[ava
27
noucacln en panLalla
<Button
android:id="@+id/button1"
android:onClick="muestraMensaje"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/imageView1"
android:layout_centerHorizontal="true"
android:layout_marginTop="51dp"
android:text="@string/sobre_la_escuela" />
public void muestraMensaje (View v) {
Toast.makeText(this, "La Escuela decana de Ingeniera de Telecomunicacin",
Toast.LENGTH_LONG).show();
}
AuSW - lnLroduccln a Androld 2014 ul1/uM
Anlmar la lmagen
- Ln fragmenL_maln.xml





- Ln MalnAcuvlLy.[ava
public void cambiaImagen (View v) {
ImageView foto = (ImageView) findViewById(R.id.imageView1);
if (imagenInicial) {
foto.setImageResource(R.drawable.etsit);
} else {
foto.setImageResource(R.drawable.etsit_b);
}
imagenInicial = !imagenInicial;
}
28
<ImageView
android:id="@+id/imageView1"
android:onClick="cambiaImagen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:layout_marginTop="78dp"
android:contentDescription="@string/foto"
android:src="@drawable/etsit" />
AuSW - lnLroduccln a Androld 2014 ul1/uM
LogCaL - reglsLro

- LuqueLas con dlsunLos upos de mensa[es
- Se pueden lLrar por euqueLas o por LexLo
- 1amblen por nlvel de gravedad
! verbose/debug/lnfo/warn/error/asserL
29
AuSW - lnLroduccln a Androld 2014 ul1/uM
1razas
- SoporLe en Androld
! import android.util.Log;
- Se usa una euqueLa para ldenucar la apllcacln
! static final String Tag = SOBRE_TELECO;
- Se escrlben mensa[es de dlsunLos nlveles para segulr la
e[ecucln
! Log.v(TAG, mensaje);
! Log.d(TAG, mensaje);
! Log.i(TAG, mensaje);
! Log.w(TAG, mensaje);
! Log.e(TAG, mensaje);
30
ADSW Introduccin a Android 2014 ul1/uM
Ejemplo
public class MainActivity extends ActionBarActivity {

private static final String TAG = "SOBRE_TELECO";

@Override
protected void onCreate(Bundle savedInstanceState) {
Log.d(TAG, onCreate");
...
}
- odemos hacer lo mlsmo en oLros meLodos y segulr la
evolucln de la acuvldad
31
2014 ul1/uM AuSW - lnLroduccln a Androld
LxporLar apk
32
2014 ul1/uM AuSW - lnLroduccln a Androld
llrmar la apllcacln
33
2014 ul1/uM AuSW - lnLroduccln a Androld
Cuardar y publlcar
34
hups://moodle.lab.dlL.upm.es/mod/resource/vlew.php?ld=9183
AuSW - lnLroduccln a Androld 2014 ul1/uM
8esumen
- Acuvldad
! clclo de vlda
! fragmenLos
- lnLerfaz grca
! loyoots y vlews
- rogramacln
! xml / [ava
- 1razas
- ubllcar
33

You might also like