Download - Curso Android Tema 2
Android
Introducción a la plataforma
Yésica Hernández
Jorge Frank Cesar Aguirre
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
El modelo MVC en Android
La parte visual que permite al
usuario interactuar
Código que recibe y
procesa los eventos de la
vista
Define el comportamiento
u objetivo del programa
Introducción a la plataforma
Pila
de c
om
ponente
s
Introducción a la plataforma
Veamos más a detalle …
Pila
de c
om
ponente
s
Introducción a la plataforma
Introducción a la plataforma
Mi código
Java SE Java ME
API Android
Pila de componentes
En conclusión
Para programar en Android se requiere un
buen conocimiento de JAVA
Luego hay que comprender el API de
Android
Finalmente, reusar nuestro propio código y
hacerlo cada vez mas profesional, útil y
eficiente
Tipos de aplicación
Aplicaciones en primer plano
Tienen funcionalidad solo cuando estan en primer plano.
Ejemplo: juegos y aplicaciones con mapas
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
Oh!
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.
Introducción a la plataforma
Componentes de una aplicación
Actividades
Consiste en una pantalla con una sola interfaz de usuario, una
aplicación se compone de un conjunto de actividades. Se
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
El usuario puede
interactuar a través de
ellas
Tienen un ciclo de vida
diferente a las actividades
Introducción a la plataforma
Componentes de una aplicación
Proveedores de contenido
Permiten compartir datos con otras actividades y servicios.
Usan una interfáz estándar en forma de URI.
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.
Por ejemplo, existe un proveedor para los
contactos del teléfono
Se pueden personalizar
visualmente u obtener datos a través de
ellas
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
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
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.
Me!
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á destruida
onDestroy
es el último método de la aplicación que se ejecutará antes de que el proceso sea destruido
Me!
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á destruida
onDestroy
es el último método de la aplicación que se ejecutará antes de que el proceso sea destruido
Me!
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
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
Me!
Introducción a la plataforma
Errores en tiempo de ejecución
ADB juega un papel fundamental para hallar el error
Introducción a la plataforma
Android monitorea los procesos para
evitar que “congelen” al OS
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
es requierido. o Las 64-bit deben ser capaces de ejecutar
aplicaciones de 32 bits
Entorno de desarrollo
Se recomiendan al menos 2Gb en RAM
Requisitos mínimos
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)
Entorno de desarrollo
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.
Entorno de desarrollo Instalación
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.
Instalación
Configuración de Eclipse
Help > Install New Software
Agregar url: https://dl-ssl.google.com/android/eclipse/
Instalación
Configuración de Eclipse
Window > Preferences
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
Obtener el log del sistema
Acceder a bases de datos SQLite en el dispositivo
<3
Introducción: Android
ANDROID (herramienta por linea de comandos o GUI)
Introducción: Android
ANDROID (herramienta por linea de comandos o GUI)
Introducción: Android
ANDROID (herramienta por linea de comandos o GUI)
Aqui estamos descargando el
api14 ICS
Introducción: Android
DDMS (herramienta por linea de comandos o GUI)
Oh!
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
Introducción: Android
MAS INFORMACION
http://developer.android.com/
guide/developing/tools/index.html
Yes!
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.
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/
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.
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/
Estructura del proyecto
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
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
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
.
Oh!
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>
Android Manifest
Configuración de AndroidManifest.xml
<activity android:label="@string/app_name" android:name="ControladorLogo">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="ControladorJuego" />
.
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.
Recursos del proyecto
¿Que es un resource?
¿Porque utilizar resources?
Unificar nombres
Unificar formatos
Agrupar tipos
¿Que tipos de resources existen?
Animaciones
Colores Imágenes Layouts Menús Strings / Valores
XMLs Archivos en general
¿Cómo se ven reflejados en el código?
Buenas prácticas
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
Directrices de diseño de UI
• Diseño de iconos.
• Íconos de launch
• Íconos de menú
• Íconos de List view
• Diseño de widgets
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
Tarea Revisar el ’’User
Interface Guidelines’’ de
Android