Curso Android Tema 2

47
Android Introducción a la plataforma Yésica Hernández Jorge Frank Cesar Aguirre

description

Curso de Android Tema 2 de UNAM Mobile

Transcript of Curso Android Tema 2

Page 1: Curso Android Tema 2

Android

Introducción a la plataforma

Yésica Hernández

Jorge Frank Cesar Aguirre

Page 2: Curso Android Tema 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

Page 3: Curso Android Tema 2

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

Page 4: Curso Android Tema 2

Pila

de c

om

ponente

s

Introducción a la plataforma

Veamos más a detalle …

Page 5: Curso Android Tema 2

Pila

de c

om

ponente

s

Introducción a la plataforma

Page 6: Curso Android Tema 2

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

Page 7: Curso Android Tema 2

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

Page 8: Curso Android Tema 2

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

Page 9: Curso Android Tema 2

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

Page 10: Curso Android Tema 2

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

Page 11: Curso Android Tema 2

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

Page 12: Curso Android Tema 2

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

Page 13: Curso Android Tema 2

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

Page 14: Curso Android Tema 2

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

Page 15: Curso Android Tema 2

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

Page 16: Curso Android Tema 2

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

Page 17: Curso Android Tema 2

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

Page 18: Curso Android Tema 2

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

Page 19: Curso Android Tema 2

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

Page 20: Curso Android Tema 2

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.

Page 21: Curso Android Tema 2

Instalación

Configuración de Eclipse

Help > Install New Software

Agregar url: https://dl-ssl.google.com/android/eclipse/

Page 22: Curso Android Tema 2

Instalación

Configuración de Eclipse

Window > Preferences

Page 23: Curso Android Tema 2

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

Page 24: Curso Android Tema 2

Introducción: Android

ANDROID (herramienta por linea de comandos o GUI)

Page 25: Curso Android Tema 2

Introducción: Android

ANDROID (herramienta por linea de comandos o GUI)

Page 26: Curso Android Tema 2

Introducción: Android

ANDROID (herramienta por linea de comandos o GUI)

Aqui estamos descargando el

api14 ICS

Page 27: Curso Android Tema 2

Introducción: Android

DDMS (herramienta por linea de comandos o GUI)

Oh!

Page 28: Curso Android Tema 2

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

Page 29: Curso Android Tema 2

Introducción: Android

MAS INFORMACION

http://developer.android.com/

guide/developing/tools/index.html

Yes!

Page 30: Curso Android Tema 2

Estructura del proyecto

Page 31: Curso Android Tema 2

• 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

Page 32: Curso Android Tema 2

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

Page 33: Curso Android Tema 2

• 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

Page 34: Curso Android Tema 2

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

Page 35: Curso Android Tema 2

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

Page 36: Curso Android Tema 2

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!

Page 37: Curso Android Tema 2

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>

Page 38: Curso Android Tema 2

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" />

.

Page 39: Curso Android Tema 2

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.

Page 40: Curso Android Tema 2

Recursos del proyecto

¿Que es un resource?

¿Porque utilizar resources?

Unificar nombres

Unificar formatos

Agrupar tipos

Page 41: Curso Android Tema 2

¿Que tipos de resources existen?

Animaciones

Colores Imágenes Layouts Menús Strings / Valores

XMLs Archivos en general

Page 42: Curso Android Tema 2

¿Cómo se ven reflejados en el código?

Page 43: Curso Android Tema 2

Buenas prácticas

Page 44: Curso Android Tema 2

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

Page 45: Curso Android Tema 2

Directrices de diseño de UI

• Diseño de iconos.

• Íconos de launch

• Íconos de menú

• Íconos de List view

• Diseño de widgets

Page 46: Curso Android Tema 2

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

Page 47: Curso Android Tema 2

Tarea Revisar el ’’User

Interface Guidelines’’ de

Android