Upload
david-luque-quintana
View
87
Download
0
Embed Size (px)
Citation preview
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
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.
● /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
● 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
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