Este documento presenta una introducción a la plataforma Android. Explica conceptos clave como el patrón MVC, los tipos de aplicaciones, y el ciclo de vida de las actividades y servicios. También describe componentes como actividades, servicios, proveedores de contenido y notificaciones. Finalmente, cubre temas como la estructura de un proyecto Android, el manifiesto y el uso de recursos.
2. Introducción a la plataforma
¿Qué debo hacer primero?
Entender el patrón de
diseño MVC
Entender los tipos de
aplicaciones
Entender el ciclo de vida
3. Introducción a la plataforma
El modelo MVC en Android
La parte visual
que permite al Código que
usuario recibe y
interactuar procesa los
eventos de la
vista
Define el
comportamiento
u objetivo del
programa
4. Introducción a la plataforma
Veamos más Pila de componentes
a detalle …
6. Introducción a la plataforma
Pila de componentes
API Mi
Android código En conclusión
Para programar en Android se requiere un
buen conocimiento de JAVA
Java ME Java SE Luego hay que comprender el API de
Android
Finalmente, reusar nuestro propio código y
hacerlo cada vez mas profesional, útil y
eficiente
7. Introducción a la plataforma
Tipos de aplicación
Aplicaciones en primer plano
Tienen funcionalidad solo cuando estan en primer plano.
Ejemplo: juegos y aplicaciones con mapas
Oh! Aplicaciones en segundo plano
Después de ser configuradas pasan la mayor parte del tiempo
ejecutandose en segundio plano, normalmente responden a
eventos causados por el HW, sistema u otras aplicaciones por
ejemplo la interfaz de las llamadas entrantes o salientes y el
gestor de red
8. Introducción a la plataforma
Tipos de aplicación
Aplicaciones intermitentes
Necesitan algunas interacciones con el usuario,
pero generalmente resuelven todas sus
actividades por si mismas, por ejemplo: el
reproductor multimedia
Widgets
Se ejecutan desde la pantalla de Home del
usuario.
9. Introducción a la plataforma
Componentes de una aplicación
El usuario Actividades
puede
Consiste en una pantalla con una sola interfaz de usuario, una
interactuar a
través de aplicación se compone de un conjunto de actividades. Se
ellas compone por la definición de un esqueleto xml de la interfáz o
varios y una clase controladora que hace uso de dichos
elementos.
Servicios
Se ejecuta en segundo plano y provee funcionalidad a otras
aplicaciones. Por ejemplo el reproductor de música que corre en
segundo plano mientras hacemos otras tareas
Tienen un
ciclo de vida
diferente a las
actividades
10. Introducción a la plataforma
Componentes de una aplicación
Por ejemplo,
existe un Proveedores de contenido
proveedor
para los Permiten compartir datos con otras actividades y servicios.
contactos del Usan una interfáz estándar en forma de URI.
teléfono
Cuando una aplicación es registrada en el sistema como
proveedor de contenido, puede ser capaz de responder a
estas peticiones
Notificaciones
Permiten desplegar de forma visual y/o auditiva mensajes
para capturar la atención del usuario.
Se pueden
personalizar
visualmente u obtener
datos a través de
ellas
11. Introducción a la plataforma
El ciclo de vida de una
Actividad
Para cada Actividad se deben
sobrecargar los metodos:
onCreate
onStart
onResume
onPause
onStop
onDestroy
12. Introducción a la plataforma
Ciclo de vida
onCreate
es llamada cuando la aplicacion se crea por primera vez.
Crear e inicar elementos de las vistas, bd
Obtener mensajes de otras actividades (mediante un Bundle)
onStart
es llamada cuando la actividad se muestra en pantalla,
onResume
Me! se ejecuta despues de onStart si la actividad corre en segundo
plano de la vista, puede manejar los eventos derivados de la
vista.
Si otra aplicacion pide el foco en pantalla y luego al finalizar
devuelve la vista a nuestra aplicacion, se ejecuta para poder
actualizar datos en la vista.
13. Introducción a la plataforma
Ciclo de vida
onPause
Cuando se hace la transición a otra actividad, aqui se puede
definir que partes del programa no se deben seguir
ejecutando para ahorrar recursos.
En este estado, si el dispositivo de queda sin memoria,
considerara terminar la aplicación.
onStop
se ejecuta cuando la actividad no esta visible ya sea porque
otra actividad solicitó el foco o porque la activida será
Me! destruida
onDestroy
es el último método de la aplicación que se ejecutará antes
de que el proceso sea destruido
14. Introducción a la plataforma
Ciclo de vida
onPause
Cuando se hace la transición a otra actividad, aqui se puede
definir que partes del programa no se deben seguir
ejecutando para ahorrar recursos.
En este estado, si el dispositivo de queda sin memoria,
considerara terminar la aplicación.
onStop
se ejecuta cuando la actividad no esta visible ya sea porque
otra actividad solicitó el foco o porque la activida será
Me! destruida
onDestroy
es el último método de la aplicación que se ejecutará antes
de que el proceso sea destruido
15. Introducción a la plataforma
Ciclo de vida de los Servicios
El proceso de servicio es independiente del componente
que lo creo y puede correr indefinidamente.
onStartCommand() El sistema llama este método cuando
una activity pide que un servicio sea iniciado usando
startService().
onBind El sistema llama este método cuando otro
Me! componente quiere unirse con el servicio llamado a
bindeService().
onCreate() Cuando el servicio es creado por primera vez.
onDestroy() El sistema llama este método cuando el servicio
ya no es usado y esta siendo destruido
16. Introducción a la plataforma
Errores en tiempo de ejecución
ADB juega un
papel fundamental
para hallar el error
Android monitorea
los procesos para
evitar que
“congelen” al OS
17. Entorno de desarrollo
Requisitos mínimos
Sistemas operativos soportados
• Windows XP (32-bit), Vista (32- ó 64-bit), o
Windows 7 (32- ó 64-bit)
• Mac OS X 10.5.8 o mayor (x86)
• Linux (probado en Ubuntu Linux, Lucid
Lynx)
o GNU C Library (glibc) 2.7 o mayor es
requerido
o En Ubuntu Linux, versión 8.04 o mayor
Se recomiendan al menos 2Gb
es requierido.
en RAM o Las 64-bit deben ser capaces de ejecutar
aplicaciones de 32 bits
18. Entorno de desarrollo
Eclipse IDE
• Eclipse 3.6 (Helios) o mayor
• Eclipse JDT plugin (Incluido en la mayoría de los paquetes)
• Los paquetes específicos recomendados para la instalación son
o Eclipse IDE for Java Developers
o Eclipse Classic
o Eclipse IDE for Java EE Developers
• JDK 5 or JDK 6 (JRE por si solo no es suficiente)
• Android Development Tools plugin (recomendado)
• No compatible con Gnu Compiler for Java (gcj)
19. Entorno de desarrollo
Instalación
Se deben seguir los siguientes pasos para instalar el SDK de
Android
1.Preparar su computadora de desarrollo y asegurarse que
cumpla los requisitos mínimos.
– Instale el SDK starter package
– Instale el ADT Plugin para Eclipse
– Agregue los componentes de Android al SDK.
20. Instalación
Contenido del SDK
Docs
Copia de la documentación mas reciente
Platforms
Librerias, imagenes de sistema, codigo de muestra,
skins y adb.
Platform-tools
Herramientas de desarrollo y depuración que
dependen de la plataforma y se actualizan cuando se
libera una nueva.
Tools
Herramientas de desarrollo y depuración, se
actualizan periodicamente.
23. Introducción: Android
ADB (Linea de comandos)
Cliente y servidor en la maquina de desarrollo
Servicio (deamon) en el dispositivo
Establecer conexion con los dispositivos
Ejecutar comandos
Instalar aplicaciones
<3 Obtener el log del sistema
Acceder a bases de datos SQLite en el dispositivo
28. Introducción Android
Creando un dispositivo virtual
En la herramienta android se pueden crear
tanto dispositivos virtuales se deseen
Por linea de comandos:
./RUTA_SDK_ANDROID/tools/android
Por medio del IDE
29. Introducción: Android
MAS INFORMACION
http://developer.android.com/
guide/developing/tools/index.html
Yes!
31. Estructura del proyecto
• Carpeta /src/
Contiene todo el código fuente de la
aplicación, código de la interfaz
gráfica, clases auxiliares, etc.
Inicialmente, Eclipse creará por
nosotros el código básico de la pantalla
(Activity) principal de la aplicación,
siempre bajo la estructura del paquete
java definido.
32. Estructura del proyecto
Carpeta /res/
Contiente todos los ficheros de recursos necesarios para el proyecto: imágenes,
vídeos, cadenas de texto, etc. Los diferentes tipos de recursos de deberán
distribuir entre las siguientes carpetas:
• /res/drawable/
• /res/layout/
• /res/anim/
• /res/menu/
• /res/values/ de texto (strings.xml),
estilos (styles.xml), colores (colors.xml),
etc.
• /res/xml/
• /res/raw/
33. Estructura del proyecto
• Carpeta /gen/
Contiene una serie de elementos de código generados
automáticamente al compilar el proyecto. Cada vez que
generamos nuestro proyecto, la maquinaria de
compilación de Android genera
por nosotros una serie
de ficheros fuente en java
dirigidos al control de los
recursos de la aplicación.
34. Estructura del proyecto
Carpeta /assets/
• Contiene todos los demás ficheros
auxiliares necesarios para la aplicación
• Diferencia entre los recursos incluidos
en la carpeta /res/raw/ y los incluidos en
la carpeta /assets/
35. Android Manifest
Propósito
Este archivo define la estructura y los metadatos de la aplicación, sus
componentes y requerimientos.
Define cada componente de la aplicación en un nodo y para cada uno
define filtros de intentos y permisos que controlan la interacción entre
ellos.
Define configuraciones de seguridad, requerimientos de hardware y de
plataforma.
Algunos elementos:
reqFiveWayNav - especifica que el dispositivo debe tener un trackball o
un D-pad
reqHardKeyboard - especifica que se necesita un teclado físico
36. Programando en Android
AndroidManifest.xml
Algunos elementos:
uses-feature
android.hardware.camera si se requiere la camara del
dispositivo
suports-screns
smallScreens - QVGA
normalScreen - WVGA
anyDensity - si la aplicacion se acomodaa cualquier
densidad
application
Oh! activity
provider
receiver
uses-permision - habilita el uso de recursos
permision - establece restricciones al acceder a la aplicacion
instrumentation - declara clases de prueba de la aplicacion
.
37. Android Manifest
Configuración de AndroidManifest.xml
Configuraciones que ya tenemos
Declaración de las actividades que forman la aplicación
Lo que vamos a agregar
Indicar qué actividad es la inicial
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
39. Android Manifest
Configuración de AndroidManifest.xml
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.VIBRATE"
/>
Por ejemplo aquí estamos otorgando a la aplicación permiso para
que pueda generar vibraciones a través del hardware del teléfono.
40. Recursos del proyecto
¿Que es un resource?
¿Porque utilizar resources?
Unificar nombres
Unificar formatos
Agrupar tipos
41. ¿Que tipos de resources existen?
Animaciones
Colores
Imágenes
Layouts
Menús
Strings / Valores
XMLs
Archivos en general
44. Compatibilidad
Requerimientos de hardware
(Reconocimiento del hdw disponible en el dispositivo)
Requerimientos de software
(Reconocimiento de la versión de la API, mínima y óptima)
Localidad e idioma
45. Directrices de diseño de UI
• Diseño de iconos.
• Íconos de launch
• Íconos de menú
• Íconos de List view
• Diseño de widgets
46. Otras buenas prácticas
Diseño de actividades y tareas
Usabilidad del task
Minimalismo en el diseño
de las actividades
Diseño de menús
Menú de opciones, para funcionalidades primarias
Menú contextual para funciones secundarias