30
Introducción a Android Por Gonzalo Toledano y David Luque

Iniciación android

Embed Size (px)

Citation preview

Introducción a Android

Por Gonzalo Toledano y David Luque

Conceptos

fundamentales

Gonzalo Toledano - David

Luque

Gonzalo Toledano - David

Luque

Cada capa usa servicios de las anteriores

Kernel de Android

Kernel

● Kernel Linux → proporciona la abstracción para mayor

portabilidad

● Gestión interna (memoria, proceso, operaciones de red

y demás) con Linux.

● El núcleo no es accesible por el usuario.

● El núcleo abstrae de las capas de arquitectura.

● El kernel se encarga de gestionar los recursos del

teléfono

Gonzalo Toledano - David

Luque

Estructura de aplicaciones

La estructura viene preinstalada en el sistema pero se puede modificar. Los

elementos más importante son:

● Gestor de actividad: controla el ciclo de vida de la aplicación (muy

importante) y mantiene un orden de aplicaciones para poder navegar entre

ellas.

● Proveedor de contenido (content providers): estos encapsulan información

para compartirla con otras aplicaciones.

● Gestor de recursos: El recurso es cualquier contenido incluido en la

aplicación que no es código.

● Gestor de notificaciones: eventos varios que son mostrados al usuario.

Gonzalo Toledano - David

Luque

Funcionamiento de Android

En el sistema hay una aplicación en primer plano que,

normalmente, ocupa toda la pantalla, a veces incluso la

barra de estado.

Una vez que el usuario inicia una, se pone en primer plano.

El usuario puede abrir otras o nuevas pantallas en la

aplicación.

Estos programas o pantallas se almacenan en una pila

para poder proporcionar utilidad de volver.

Gonzalo Toledano - David

Luque

Proceso vs Aplicación

Internamente, las aplicaciones se componen de

Actividades (Activity). Una aplicación es un conjunto de

Actividades más un proceso.

Los procesos son contenedores desechables de

actividades.

Gonzalo Toledano - David

Luque

Activities

● Una actividad es una pantalla de la interfaz de usuario.

● Se pueden usar una o varias para diferentes partes del

programa. Cada una es responsable de guardar su

estado para reestablecerlo más adelante.

● Las actividades heredan de Context.

Gonzalo Toledano - David

Luque

Fases ciclo de vida

● onCreate(Bundle): se llama cuando se inicia la actividad por

primera vez. Normalmente se usa para inicializaciones.

● onStart(): indica que va a ser mostrada al usuario

● onResumen(): cuando puede empezar a interactuar con el

usuario.

● onPause(): cuando va a pasar a segundo plano. Guardar

estado.

● onStop(): no es visible para el usuario y no se mostrará en

un tiempo.

● onRestart(): se está volviendo a mostrar.

● onDestroy(): se llama para destruir la aplicación.

● onSaveInstanceState(Bundle): permite guardar el estado de

la instancia (un texto o datos en pantalla).

Gonzalo Toledano - David

Luque

Gonzalo Toledano - David

Luque

Intents

● Mecanismo para describir una acción específica (por

ejemplo abrir otra actividad o un Fragment).

● Prácticamente todo funciona con intenciones (Intent).

Gonzalo Toledano - David

Luque

Services

● Tarea que se ejecuta en segundo plano sin la intención

del usuario (algo como un demonio en Linux).

● Android contiene múltiples servicios.

Gonzalo Toledano - David

Luque

Content Providers

● Conjunto de datos envueltos en una API local a la que

se puede acceder y leer (incluso hasta escribir).

● Es un excelente método para compartir datos globales

entre aplicaciones

Ejemplo: la agenda del teléfono

Gonzalo Toledano - David

Luque

Recursos

● Un recurso es cualquier contenido, exceptuando

código, que necesite el programa. Ej: iconos.

● Se almacenan en la carpeta /res del proyecto.

● El compilador de recursos comprime y etiqueta sus

recursos y genera una clase llamada R que contiene

los identificadores de los recursos (y cualquier

contenido, como los TextView).

IMPORTANTE: NO TOCAR ESTE ARCHIVO

MANUALMENTE

Gonzalo Toledano - David

Luque

Gonzalo Toledano - David

Luque

AndroidManifest.xml

● Es un archivo básico, para determinar ciertos criterios

de configuración. Podemos administrar permisos,

número de la API, mínima versión requerida...

● Cualquier Activity que creemos en Java, debe ir aquí

definida sino tendremos error de compilación.

Elementos de un

proyecto

Gonzalo Toledano - David

Luque

● /src: contiene el código fuente Java

● /gen: código generado de forma automática por el SDK. No modificar

(contiene R). En Android Studio está oculto.

● /android x.x: API de Android.

● /assets: puede contener de forma arbitraria archivos para utilizarlos en la

aplicación. No se puede modificar.

● /res: recursos que se usan en la aplicación.

o drawable: iconos de la aplicación.

o layout: archivos .xml con las vistas de la aplicación.

o menú: archivos .xml para los menús.

o anim: descriptores de animaciones.

o xml: otros archivos XML.

Elementos básicos

Gonzalo Toledano - David

Luque

Diseñando una interfaz

Gonzalo Toledano - David

Luque

● Procedimental: a través de código → Java

● Declarativo: mediante unos archivos

layout.xml que describen lo que queremos

ver en pantalla y no como hacerlo.

Podemos usar los dos, declarando

componentes en XML y dándole contenido en

Java.

Tipos de interfaces

Gonzalo Toledano - David

Luque

Google recomienda usar XML por dos

cuestiones:

● Mucho más sencillo que Java.

● Tiene menos probabilidad a cambiar en un

futuro.

Tipos de interfaces

Gonzalo Toledano - David

Luque

Estilos y temas

Un estilo es una colección de propiedades que

definen el formato de una vista.

res/values/style.xm

l

res/layout/activity_principal.x

ml

Gonzalo Toledano - David

Luque

Resoluciones e id’s

Android soporta varios tipos de resoluciones:

● px: pixeles.

● in (pulgadas): tamaños según una regla.

● mm (milímetros): tamaño según una regla.

● pt (puntos): 1/72 de una pulgada.

● dp (píxeles independientes de densidad): unidad abstracta basada en la

densidad de pantalla.

● dip: es un sinónimo de dp, usado en ejemplos de Google.

● sp (píxeles independientes de escala): similar a dp.

Recomendación personal: dp y dip. Son mucho más fáciles de usar y más

estándar.

Gonzalo Toledano - David

Luque

Resoluciones e id’s

Las id’s identifican a los componentes de la pantalla en la aplicación y

en el código.

Las id’s se almacenan en la clase R. Se pueden llamar desde Java

(R.elemento) para introducir texto o modificar el contenido.

Para declarar uno nuevo esta es la nomenclatura:

@+id/identificador

Así podremos llamarla desde Java de la siguiente: R.identificador.

Gonzalo Toledano - David

Luque

Nombres

El nombre o texto que queramos mostrar en

pantalla se definen en el archivo

/res/values/string.xml

/res/values/string.xml

/res/layout/principal.xml

Gonzalo Toledano - David

Luque

Ejemplo: Nueva ventana

Para el primer ejemplo, imaginemos que

queremos que nuestra app tenga una ventana

nueva con nuestros datos.

Usaremos el botón creado antes.

Hay otras dos formas: usando la clase

AlertDialog y otra subclase de Dialog.

Gonzalo Toledano - David

Luque

Ejemplo: Nueva ventana

Ahora creamos un elemento string con los

datos que queremos mostrar.

En Java creamos una clase About.java.

En /res/layout creamos un archivo about.xml

Gonzalo Toledano - David

Luque

Ejemplo: Nueva ventana

La clase en Java quedará de esta forma:

Gonzalo Toledano - David

Luque

Ejemplo: Nueva ventana

Ahora hay que definir los escuchadores. Los

escuchadores son los encargados de recibir los

“click” con nuestro dedo.

Gonzalo Toledano - David

Luque

Ejemplo: Nueva ventana

Por último queda dar de alta la actividad en el

AndroidManifest.xml.

Gonzalo Toledano - David

Luque

Eso es todo...por ahora

Gonzalo Toledano - David

Luque