píldoras android i. intro - 2ª parte

32
Píldoras Android I Introducción – 2ª parte Sergi Martínez

Upload: sergi-martinez

Post on 13-Jun-2015

7.165 views

Category:

Technology


0 download

DESCRIPTION

2ª parte de la introducción al desarrollo para Android.Es una pequeña introducción a las acitvites, los intents y los Recursos del sistema

TRANSCRIPT

Page 1: Píldoras android i. Intro - 2ª parte

Píldoras Android I Introducción – 2ª parteSergi Martí nez

Page 2: Píldoras android i. Intro - 2ª parte

OverviewBloques básicos de una aplicación de Android

Activity

Intents

El Manifest

Recursos

Page 3: Píldoras android i. Intro - 2ª parte

Bloques básicos de una aplicaciónActivities

• Son los encargados de mostrar la interfaz y gestionar sus eventosServices

• Se ejecutan en backgroundBroadcast Receivers

• Responden ante sucesos del sistemaContent Providers

• Almacenan información y la ponen a disposición de otras apps

Page 4: Píldoras android i. Intro - 2ª parte

Activity«…si hay que mostrarlo, se muestra, pero mostrarlo pa ná, es tontería»

Page 5: Píldoras android i. Intro - 2ª parte

ActivitiesUna Activity es una pantalla de la interfaz

Las aplicaciones constan de una o más Activity

Cada Activity es reponsable de guardar su estado

Una Activity se encarga de:• Crear una ventana donde colocar la interfaz • Gestionar la interfaz• Responder a los eventos (onClick, onLongClick, etc).

Page 6: Píldoras android i. Intro - 2ª parte

Una Activity básica

Page 7: Píldoras android i. Intro - 2ª parte

Estados de una actividadEl sistema gestiona las actividades como una pila

Una actividad tiene cuatro estados:• Activa: la actividad está en primer plano y tiene el focus (enfoque

de usuario). Se encuentra en lo alto de la pila.• En pausa: la actividad es visible, pero no tiene el focus. Ej: hay un

diálogo sobre ella con el focus retenido.• Detenida: La actividad está tapada por otra aplicación. Mantiene

sus datos.• Destruida: Una actividad detenida ha sido destruida para liberar

memoria y ha perdido sus datos. Hay que recrearla completamente.

Page 8: Píldoras android i. Intro - 2ª parte

Ciclo de vida de una actividad

Page 9: Píldoras android i. Intro - 2ª parte

MétodosMétodo Descripción Siguiente

onCreate() Donde se crea la interfaz. Se le proporciona un bundle con su estado anterior.

onStart

onRestart() Justo antes de un onStart cuando venimos de onStop onStart

onStart() La actividad se hace visible al usuario onResumeonStop

onResume() La actividad está en primer plano interactuando con el usuario

onPause

onPause La actividad va a ser detenida. Se utiliza para guardar información

onResumeonStop

onStop La actividad ya no es visible al usuario. onRestartonDestroy

onDestroy Última llamada antes de que la actividad sea destruida. El método isFinishing() nos ayuda a saber si es final o temporal

Page 10: Píldoras android i. Intro - 2ª parte

Iniciar otra ActivityUso del método startActivity(Intent) o startActivityForResult (Intent, int)

Podemos pasar parametros con Intent.putExtra(int, <type>)

Recibirlos con getIntent().getExtras().get<Type>(clave);

Page 11: Píldoras android i. Intro - 2ª parte

Devolver valores de una ActivityEstablecemos el valor a devolver con setResult(int resultCode) o setResult (int resultCode, Intent data)

La actividad «llamadora» implementa el método onActivityResult(int requestCode, int resultCode, Intent data)

resultCode puede ser uno de estos valores:• RESULT_CANCELED• RESULT_OK• RESULT_FIRST_USER

Page 12: Píldoras android i. Intro - 2ª parte

Intent«… Trata de arrancarlo, Carlos, por tu…»

Page 13: Píldoras android i. Intro - 2ª parte

IntentsAndroid se basa en multitud de pequeños componentes

Estos componentes se comunican via Intents

Mensajes utilizados para notificar a las aplicaciones de eventos• Cambios de Hardware. Ej: tarjeta SD insertada.• Recepción de datos. Ej: llegada de un sms• Eventos de la apliación. Ej: se ha lanzado la aplicación• Etc

Es posible crear nuestros propio intents

Page 14: Píldoras android i. Intro - 2ª parte

Partes de un IntentPartes básicas

• La acción: una constante que indica la acción que se lanza. Ej.: VIEW_ACTION, EDIT_ACTION

• Los datos: uri indicando el recurso asociado. Ej.: content://contacts/people/1

Partes opcionales• Una categoría: agrupa el tipo de Intent• Un tipo MIME: indica el tipo de recurso si no concemos una uri• Un componente: la clase que debe tener el receptor. Obvia las

otras propiedades, pero es más frágil.• Extras: un Bundle con información extra que el receptor va a

necesitar

Page 15: Píldoras android i. Intro - 2ª parte

Ejemplos de IntentANSWER_ACTION

CALL_ACTION

DELETE_ACTION

DIAL_ACTION

EDIT_ACTION

FACTORY_TEST_ACTION

GET_CONTENT_ACTION

INSERT_ACTION

MAIN_ACTION: Inicio de aplicación

PICK_ACTION: permitir a otras apps elegir contenido de la tuya

VIEW_CONTENT: para ver contenido

EDIT_CONTENT: para editar contenido

Page 16: Píldoras android i. Intro - 2ª parte

Categorias de IntentALTERNATIVE_CATEGORY

BROWSABLE_CATEGORY

DEFAULT_CATEGORY

GADGET_CATEGORY

HOME_CATEGORY

LAUNCHER_CATEGORY

PREFERENCE_CATEGORY

SELECTED_ALTERNATIVE_CATEGORY

TAB_CATEGORY

TEST_CATEGORY

Page 17: Píldoras android i. Intro - 2ª parte

Llegando a la actividad adecuadaUna actividad debe cumplir tres reglas para responder un Intent

• La actividad debe soportar la acción especificada• La actividad debe soportar el tipo MIME si lo hay• La actividad debe soportar TODAS las categorias nombradas en el

Intent

Uso de Intent-Filter en el manifest

Page 18: Píldoras android i. Intro - 2ª parte

Ejemplo

Page 19: Píldoras android i. Intro - 2ª parte

Manifest.xml«…un xml para atarlos a todos en las sombras…»

Page 20: Píldoras android i. Intro - 2ª parte

ManifestEl Manifest es el archivo donde la aplicación le dice al sistema que elementos requiere para funcionar

Siempre debe llamarse AndroidManifest.xml y estar en la raiz del proyecto

Entre otras cosas contiene:• Atributos de la aplicación y metadatos• La declaración de actividades y otros componentes• Librerías externas• Permisos

Se puede editar via GUI o editando el XML

Page 21: Píldoras android i. Intro - 2ª parte

Manifest inicial

Page 22: Píldoras android i. Intro - 2ª parte

Versión de la aplicaciónVersionCode es importante para el Market

VersionName es importante para el usuario y/o nosotros

Page 23: Píldoras android i. Intro - 2ª parte

Definición de la actividadDefinimos las actividades y sus intent-filter

Page 24: Píldoras android i. Intro - 2ª parte

Versión del SDKminSdkVersion, maxSdkVersion y targetSdkVersion

Page 25: Píldoras android i. Intro - 2ª parte

Permisos de la aplicación

Avisan al usuario de las acciones que realizará la apliación

Listados en: http://developer.android.com/reference/android/Manifest.permission.html

Page 26: Píldoras android i. Intro - 2ª parte

Recursos«…¡Adelante gadget-o-Layout!…»

Page 27: Píldoras android i. Intro - 2ª parte

RecursosUn recurso es un elemento a utilizar durante la ejecución de la aplicación

Existen diferentes tipos de recursos:• Layouts• Imágenes• Cadenas de texto• Sonidos• Colores• Temas• Animaciones• etc

Page 28: Píldoras android i. Intro - 2ª parte

RecursosSe almacenan en la carpeta resources

Cada tipo de recurso tiene va en una carpeta específica

Utilizan sufijos para determinar que recursos utlizar según contexto (tamaño de pantalla, idioma, orientación, etc.)

Nombre en mínusculas

La extensión se ignora (mismo nombre, diferente extensión se considera duplicado)

Page 29: Píldoras android i. Intro - 2ª parte

La clase RLa clase R es generada y mantenida por el sistema y no debe ser modificada

Contiene un identificador (int) único por cada recurso

Podemos hacer referencia a un recurso en código por R.<tipo>.<nombre>. Ej.: R.layout.main

Page 30: Píldoras android i. Intro - 2ª parte

Nombrar recursos en XMLPara referirnos a un recurso utilizamos la siguiente sintaxis:

@<tipo de recurso>/<nombre del recurso>

Por ejemplo

@string/app_name

Para definir un nombre utilizamos:

@+<tipo de recurso>/<nombre de recurso>

Page 31: Píldoras android i. Intro - 2ª parte

Ejemplo

Page 32: Píldoras android i. Intro - 2ª parte

Fin¿Hay preguntas? ¿no? Pues vamos a comer

[email protected]

[email protected]

www.sergiandreplace.com

@sergiandreplace