Curso Android Tema 2

Post on 18-Nov-2014

2.435 views 4 download

description

Curso de Android Tema 2 de UNAM Mobile

Transcript of 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