Software">
PM - Android Programacion
PM - Android Programacion
PM - Android Programacion
Programación Móvil
Ing. Ana Carolina Ricaurte
Módulo II
Android: Introducción a la
Programación
Módulo II - Android: Introducción a la Programación
Contenido
- Objetivos
- Entorno de Desarrollo
- Aplicaciones
- Definición
- Tipos
- Componentes
- Bloques básicos
Módulo II - Android: Introducción a la Programación
Contenido
Seleccionamos este icono para que se nos abra la ventana que estará vacía.
Entorno de Trabajo
Android en Eclipse y configuración
• AVD Manager (Android Virtual Device Manager)
Creamos un nuevo emulador pulsando en “New…”
Entorno de Trabajo
Android en Eclipse y configuración
• AVD Manager (Android Virtual Device Manager)
Se nos abrirá otra ventana para configurar el emulador.
Aquí definiremos cosas como el nombre del emulador, el
tamaño de pantalla y resolución del dispositivo que
utilizaremos, la versión del sistema operativo de Android,
entre otros.
Se recomienda para empezar definir solo “AVD Name” con
un nombre identificativo que nos indique el tamaño (como
si simulará un Tablet o un Smartphone) y la versión de
Android que elegiremos. En “Device” escogeremos un tipo
de pantalla de dispositivo; se recomienda usar una de baja
resolución, sobre todo si tenemos ordenadores poco
potentes y para que el tamaño en pantalla sea manejable.
Entorno de Trabajo
Android en Eclipse y configuración
• AVD Manager (Android Virtual Device Manager)
Igual podremos escalar estas pantallas por si no cupieran
en la pantalla del ordenador en el que vamos a desarrollar.
También un “Target” que será la versión del sistema
operativo que se iniciará con nuestro emulador.
Recomiendo poner algo de memoria a la “SD Card” pues se
necesitara más adelante; pero cuidado, todo este tamaño
que definamos aquí será memoria de disco duro
consumida (definir un tamaño pequeño, ya que se ocupará
esa memoria al instante de crear el emulador). Pulsamos
“OK” para terminar.
Entorno de Trabajo
Android en Eclipse y configuración
• AVD Manager (Android Virtual Device Manager)
Ya lo tendremos configurado:
Entorno de Trabajo
Android en Eclipse y configuración
• AVD Manager (Android Virtual Device Manager)
Podemos iniciar el emulador al pulsar “Start…”. Aunque se puede hacer desde
aquí, también desde Eclipse, desde donde es más cómodo para el desarrollo.
Podemos cerrar la ventana del AVD y volver a Eclipse.
Entorno de Trabajo
Android en Eclipse y configuración
• AVD Manager (Android Virtual Device Manager)
¿Para qué sirve cada configuración del emulador?
• AVD Name: ponemos un nombre identificativo
(recomendable poner la versión del sistema operativo o
el nivel de la API), como por ejemplo “Emu_4.3_Movil”
• Device: Elegimos una resolución de pantalla acorde con
la potencia de nuestro ordenador (recomiendo la
densidad de “HVGA” (Por ejemplo, 3.2″ HVGA slider
(ADP1) (320 x 480; mdpi) ). Por dos razones, una porque
no exige un ordenador muy potente al ser de 320×480
hay pocos píxeles que procesar; y segunda, para que sin
tocar más, el emulador tenga un tamaño manejable en
pantalla para la mayoría de los monitores).
Entorno de Trabajo
Android en Eclipse y configuración
• AVD Manager (Android Virtual Device Manager)
¿Para qué sirve cada configuración del emulador?
• Target: Elegimos el sistema operativo que instalaremos
en el emulador que estamos fabricando.
• CPU/ABI: Aquí se puede elegir que procesador simulado
queremos que tenga nuestro emulador. Recomendamos
que selecciones “ARM (armeai-v7a)”. Seleccionaremos
otros para otras arquitecturas o para poder emplear
tecnologías de aceleración del emulador de Android.
• Keyboard: Si queremos poder usar nuestro teclado físico
o no (en este caso solo podremos hacer uso del de
pantalla). Se recomienda marcar la casilla.
Entorno de Trabajo
Android en Eclipse y configuración
• AVD Manager (Android Virtual Device Manager)
¿Para qué sirve cada configuración del emulador?
• Skin: Para mostrar los botones físicos (como atrás, home,
volumen, apagar, etc). Recomendamos marcar la casilla.
• Front Camera: Como queremos simular la cámara
frontal.
• Back Camera: Como queremos simular la cámara trasera.
• Memory Options: Definimos la memoria RAM de unos
512 y VM Heap de unos 16 (espacio de almacenamiento
dinámico para la máquina virtual; es el espacio necesario
para tener una instancia de la máquina virtual Dalvik).
Entorno de Trabajo
Android en Eclipse y configuración
• AVD Manager (Android Virtual Device Manager)
¿Para qué sirve cada configuración del emulador?
Internal Storage: Para definir la memoria interna de unos
200 MegaBytes (que es lo que está por defecto como
“MiB”).
SD Card: en el campo “Size” ponemos una cantidad de 100
MegaBytes (que es lo que está por defecto como “MiB”).
Ponemos una cantidad no muy elevada, ya que todo lo que
pongamos será espacio que el emulador reserve en el
disco duro.
Entorno de Trabajo
Android en Eclipse y configuración
• AVD Manager (Android Virtual Device Manager)
¿Para qué sirve cada configuración del emulador?
• Snapshot: De momento la casilla quedará desactivada hasta
que veamos más adelante como usarlo. Como en algunos
sistemas operativos, permite poner el emulador en suspensión
para que cargue en el estado en el que lo dejamos la última
vez (ahorra el tiempo de tener que esperar a que el sistema
operativo se inicie). Así podremos iniciar el emulador más
rápidamente.
• Use Host GPU: Para usar la GPU de tu tarjeta gráfica (Usará las
librerías de OpenGL instaladas por los drivers gráficos del
ordenador). Si no vas a crear videojuegos, mejor déjala
desmarcada de momento (más adelante podrás editarlo).
Entorno de Trabajo
Android en Eclipse y configuración
• AVD Manager (Android Virtual Device Manager)
Atajos de Teclado para el emulador
Teclas físicas del dispositivo:
• Esc: Atrás
• Inicio: Home
• F2: Menú
• F7: Bloqueo y apagado
• +: Subir volumen
• -: Bajar volumen
• F5: Buscar
• F6: TrackBall
Entorno de Trabajo
Android en Eclipse y configuración
• AVD Manager (Android Virtual Device Manager)
Atajos de Teclado para el emulador
Vista del dispositivo:
• 7: Cambiar la orientación
• Alt + Entrar: Pantalla completa
Aplicaciones
Aplicaciones
Toda nueva programación en Android, se denomina Proyecto. Este no es más que
una o más aplicaciones, diseñadas para cumplir con un objetivo o función
específico. Al final cada proyecto generar una App para el entorno Android. Como
pueden evidenciar, el elemento fundamental del desarrollo en Android, son las
Aplicaciones, por lo que nos internaremos un poco más en este componente.
Sin embargo primero se explicarán una serie de puntos para aclarar algunos
conceptos de Android:
• Instalación de una App: Las aplicaciones Android se firman con un certificado y
se empaquetan en un fichero .apk
• Android tiene permisos multi-usuario: Cada aplicación pertenece a un usuario
(User ID Linux) diferente y solo puede acceder desde ese
Aplicaciones
• Procesos: Cada proceso se ejecuta sobre su propia máquina virtual. Por defecto, cada
aplicación corre en su propio proceso Linux
• Principio de privilegios mínimos: una aplicación solo tiene acceso, por permisos asignados
en el AndroidManifest.xml, únicamente a los componentes que requiere y nada más
• Compartir datos entre Apps: Se puede pedir permiso para acceder a los contactos del
usuario, mensajes SMS, cámara, Bluetooth, etc
• No existe el main(): A una aplicación se puede acceder desde varios componentes si están
dispuestos para ello
• Componentes de una aplicación: son bloques para construir aplicaciones Android con
roles bien diferenciados. Todos los componentes son puntos de entrada a la aplicación
(del usuario o del sistema). Cada componente tiene su propio ciclo de vida (son creados y
destruidos)
Aplicaciones
• Programación en Android:
• Java: para programar dinámicamente. Para la lógica del programa (por
ejemplo, para hacer el qué es lo que ocurre cuando se pulsa un botón);
siguiendo el patrón MVC (Modelo_Vista_Controlador) para el controlador y
el modelo.
• XML: para programar estáticamente. Para la parte visual (por ejemplo, para
dibujar el botón en pantalla); siguiendo el patrón MVC para la vista.
También para información estática (como pueden ser los textos de la
aplicación con sus idiomas).
Aplicaciones
Tipos de Aplicaciones
Hay tres tipos de aplicaciones para Android: las de primer plano (foreground), las de segundo
plano (background) y los widget (o AppWidget).
• Las aplicaciones de primer plano constan de actividades que muestran una interfaz de
usuario. No tienen mucho control sobre su ciclo de vida, ya que en cualquier momento se
les puede robar el foco, o pueden pasar a segundo plano. Si faltan recursos, tanto de
memoria, como de procesador, pueden ser incluso terminadas. El objetivo del sistema
operativo es que la aplicación que en este momento esté en primer plano ofrezca respuestas
fluidas. Si para ello hay que terminar otras aplicaciones en segundo plano, Android lo hará.
• Las aplicaciones de segundo plano se denominan servicios. Las hay de dos tipos: servicios
puros, o servicios combinados con actividades que permiten configurarlos. El ejemplo típico
es el de un reproductor multimedia. En cuanto hemos seleccionado qué canción reproducir,
cerramos la actividad y un servicio mantiene el audio en reproducción.
Aplicaciones
Tipos de Aplicaciones
• Otro tipo de aplicaciones son los widget. Se trata de aplicaciones de pequeña
interfaz gráfica que se colocan sobre el escritorio (home) de Android y que se
refrescan cada cierto intervalo de tiempo. Normalmente detrás de ellas corre
un servicio de actualización. Un ejemplo es el del reloj, o el calendario.
Aplicaciones
COMPONENTES DE UNA APLICACION
Para diseñar una aplicación en Android, es necesario tener claros los elementos
que la componen y la funcionalidad de cada uno de ellos.
Uno de los aspectos más importantes a tener en cuenta es su funcionamiento.
Android trabaja en Linux, y cada aplicación utiliza un proceso propio. Se
distinguen por el ID, un identificador para que solo ella tenga acceso a sus
archivos. Los dispositivos tienen un único foco, la ejecución principal, que es la
aplicación que está visible en la pantalla, pero puede tener varias aplicaciones en
un segundo plano, cada una con su propia pila de tareas.
Aplicaciones
COMPONENTES DE UNA APLICACION
La pila de tareas es la secuencia de ejecución de procesos en Android. Se
componen de actividades que se van apilando según son invocadas, y solo
pueden terminarse cuando las tareas que tiene encima están terminadas, o
cuando el sistema las destruye porque necesita memoria, por lo que tienen que
estar preparadas para terminar en cualquier momento.
onPause() Al perder el foco (cuando ya no Se suele usar para guardar los Cuando el onPause() termine, se realizará
interactúe con el usuario) cambios no guardados, para detener el onResume() de la nueva activity. Se
animaciones u otras consuman recomienda código rápido
procesador
onStop() Al no ser visible para el usuario Guardar el estado Ejemplo: otra nueva activity ha hecho su
onResume() y a cubierto a esta
onDestroy() Justo antes de ser destruida Liberar sus recursos y limpiar su Por la llamada a finish() o porque Android
estado la haya mata
Activity
Hay que tener en cuenta la probabilidad de que Android destruya nuestra
Activity, en cara a salvar los datos y volverlos a cargar cuando la Activity vuelva a
pantalla; lamentablemente esto hay que hacerlo manualmente.
Estado Causa Mantiene estado Unido al gestor de Riesgo de que Android
interno ventanas la mate
Matada No existe No No -
Activity
Vidas de una Activity
Sabiendo que puede morir nuestra Activity en cualquier
momento. Es importante conocer las tres posibles
clasificaciones de la vida, para poder crear y destruir, o
guardar y cargar cuando sea necesario. Vidas:
• Completa: desde el onCreate() donde crea el estado
global, hasta el onDestroy() donde libera los recursos
• Visible: desde el onStart() donde se recupera el estado,
hasta el onStop() donde se guarda el estado
• Primer plano: desde el onResume(), hasta el onPause()
Activity
Muertes de una Activity
Una activity puede ser destruida si está:
• En ejecución:
• Durante la ejecución de los métodos
onPause(), onStop() u onDestroy().
• Al cambiar algo de la configuración
del dispositivo. Por ejemplo, al rotar
la pantalla.
• Si ha perdido el foco o no es visible: Si
Android requiere los recursos que está
consumiendo
Activity
Tratar el estado ante la muerte y re-creación
Tendremos que:
• Guardar el estado al hacerse no visible (solo si tiene sentido ser re-creada):
onSaveInstanceState(Bundle)
• Recuperar el estado al re-crearse (tiene que haber muerto previamente):
• Al ser creada otra vez con onCreate (Bundle savedInstanceState): El Bundle
será diferente de null
• Después de onStart(): onRestoreInstanceState (Bundle savedInstanceState)
Fragments
Fragments
Fragments
Es un comportamiento (no visible) o una porción de la
interfaz gráfica (visible). Es decir, es un módulo que puede
unirse a otros. Surgieron para que una misma aplicación
pudiera ser multi-pantalla. Por este motivo, su mayor virtud
es la reutilización de código.
Ofrecen
• Modularidad: Se pueden poner donde queramos
• Reusabilidad: Se pueden reutilizar tantas veces como se
necesiten
Se colocan siempre sobre una Activity. Dicha Activity se
denomina “Activity contenedora” de Fragments. Tienen ciclo
de vida, el Fragment se mantendrá en ejecución mientras lo
esté su Activity contenedora. No hay que declararlo en el
AndroidManifest.xml, solo se declara su Activity contenedora
Fragments
Fragments
Supongamos que tenemos ciertas funcionalidades en varios Fragments. Para las diferentes
Activitys, dependiendo del dispositivo, podremos acomodarlos de diferente manera. Hay que
atender a que si nos pasamos poniendo Fragments para cierto tamaño de pantalla, se verá el
contenido de cada Fragment demasiado pequeño y podría ser difícil de manejar; por el contrario,
quedarnos supondría desaprovechar la pantalla. Unos ejemplos podrían ser (no es obligatorio
cumplir con los siguientes ejemplos):
- Smartphone: en el que cabe 1 Fragment por Activity