Vous êtes sur la page 1sur 84

Curso de iniciación a Android

Curso de iniciación a Android

Introducción a Android
Curso de iniciación a Android

Temario

● Un poco de historia
● Características de Android
– Licencias
– Terminología
– Componentes
– Market
Curso de iniciación a Android

Que es Android?

● Esto mismo :-)


Curso de iniciación a Android

Aplausos!!!
Curso de iniciación a Android

Un poco de historia

● Android lo comienza a desarrollar la empresa Android


Inc. (22 meses tenía la empresa)
● La compra Google en Julio de 2005, junto con toda la
plantilla
– Andy Rubin, creador del SO y líder del proyecto, entre
ellos
● El Sr Rubin tenía ya otra empresa de móviles, Danger Inc.
● La idea de Rubin es crear un SO móvil que sea
“context-aware”
– Consciente de los cambios de contexto del entorno
Curso de iniciación a Android

Características de Android

● Es un proyecto de la Open Handset Alliance


– Garantes del desarrollo de Android (80 empresas)
– Lidera el proceso Google
– HTC (Corea), Motorola(USA), T-Mobile, Qualcomm, NTT
Docomo (Japón), Telefónica, Telecomitalia...
– http://www.openhandsetalliance.com/oha_members.html

● Es un SO basado en el kernel Linux


– Con licencia GPL (el kernel)
– EL SO tiene licencias apache, GPL, LGPL..
● Es el SO móvil más vendido en el mercado }:-)
Curso de iniciación a Android

Características de Android (II)

● Licencia
– Todo el SO, incluyendo la parte de telefonía y redes tiene
licencia apache
● El proceso es “abierto” y se puede consultar el desarrollo,
etc.
● http://code.google.com/p/android/issues/list?q=status
%3AReviewed
– Para el licenciamiento de móviles, existe el Compatibility
Definition Document (CDD), para los fabricantes
● Algunos operadores tienen su propio Android
– Algunas partes son cerradas
● Las dependientes de hardware específico de fabricante
Curso de iniciación a Android

Terminología android

● Utilizando el símil open source, las versiones de


android se “cocinan”
– Amplia comunidad de “cocineros”
● CyanogenMod, LiquidSmooth...
– En xda-developers hay cientos.
● Android 1.5 Cupcake
– A-GPS, Javascript, mejores de UX, teclado en pantalla
● Android 1.6 Donut
– Search Box, Categorías en el Market
● Android 2.0/2.1 Éclair
– Rediseño de interfaz para adaptarlo a HTML5
– Soporte de Exchange Nativo, Facebook nativo, Bluetooth
2.1
Curso de iniciación a Android

Terminología android (II)

● Android 2.2 FroYo:


– Mejoras de rendimiento
– Motor V8 de Javascript → EL que usan para desarrollo de
Chromium
– Tethering y uso del móvil como Hotspot
– Soporte para Flash
– Uso del JIT (Just In Time Compilation)
● Android 2.3 Gingerbread
– Adaptación a pantallas y resoluciones grandes
– Soporte para NFC → futuro pago móvil
– Sensórica: barómetros, giroscopios..
Curso de iniciación a Android

Terminología Android (III)

● Android 3.0 Honeycomb


– Soporte para tablets
– Videochat por Google Talk
Curso de iniciación a Android

Componentes de Android - Entorno

● Google proporciona bajo el kit Android


– Código fuente del SO
– SDK para programar
● Librerías
● AVD Manager: Emulador de terminales Android
– Herramientas de debug
● Dalvik Debug Monitor System → DDMS
● Android Debug Bridge → ADB
● Monkey → Estresar aplicaciones...
● Proguard → ofusca el código
Curso de iniciación a Android

Componentes de Android – El kernel

● Basado en Linux
– Pero fuera del desarrollo principal del kernel
– No tiene ni servidor X, ni herramientas GNU
– Los cambios no se integran dentro de la rama principal del
kernel de Linux
● Literalmente están hasta la breva de los developers de
Google → salsa rosa :-)
Curso de iniciación a Android

Componentes de Android (I)


Curso de iniciación a Android

Componentes de Android (II)

● Aplicaciones
– Escritas en Java, a parte superior del Stack
● Framework de aplicaciones
– Está estructurado de forma atómica
– Cualquier aplicación puede publicar sus capacidades y
cualquier otra puede hacer uso de éstas
● Dependiendo del nivel de seguridad que queramos
Curso de iniciación a Android

Componentes de Android (III)

– Bajo Todas las aplicaciones están todas las siguientes


servicios y sistemas:
● Conjunto de Vistas (Views) para hacer formularios, etc
● Content Providers, que roporcionan datos (como los
contactos)
● Resource Manager (resource manager) para el acceso a
strings de traduccion, graficos, layouts...
● Notification Manager, para poner alertas personalizadas en
la barra de estado
● Activity Manager, que maneja el ciclo de vida de las
aplicaciones
Curso de iniciación a Android

Componentes de Android (IV)

● Librerías
– Un conjunto de librerías en C/C++utilizada por varios
componentes de Android
● Libc
● Media libraries → para el manejo de ficheros multimedia
● Surface Manager → para el acceso al subsistema de la
pantalla
● LibWebCore → proporciona la vista navegador web
embebido
● SGL → motor gráfico 2D
● Librerías 3D que implementan el OpenGL ES 1.0
● FreeType para el manejo de fuentes vectoriales y bitmap
● SQLite una base de datos interna
Curso de iniciación a Android

Componentes de Android (V)

● Runtime
– Cada aplicación corre su propia instancia de Máquina
Virtual
– Binarios .dex
– Optimizado para gestión óptima de memoria
● Kernel Linux
– Viejo conocido entre Nosotros
Curso de iniciación a Android

Sobre las aplicaciones

● Las aplicaciones se escriben en java → genera .apk


● Ejecutadas en un sandbox
– Cada aplicación tiene su propia ID, y SOLO puedo
acceder a los recursos de mi ID
– Cada proceso corre en su propia VM
● Cada proceso tiene los mínimos privilegios necesarios
– Es posible acceder a elementos externos: camara, etc
garantizando privilegios en tiempo de instalación
Curso de iniciación a Android

Preguntas varias

● Para qué versión programo?


● Qué entorno uso para programar?
● Cómo hago pruebas?
● Cómo publico?
Curso de iniciación a Android

Para qué versión programar


Curso de iniciación a Android

Entorno para programar

● Soporte oficial para eclipse


– Herramientas integradas dentro del IDE
– DDBMS, Debug, AVD
● Aunque es posible ponerlo en otros entornos
– Invocación desde consola para los builds, etc
– Algún fan de Vi / Emacs ? ;-)
Curso de iniciación a Android

Hacer Pruebas

● Android proporciona tres herramientas principales


– Android Virtual Device
● Generar diferentes terminales
● Permite conectarse por medio de telnet y enviarle
comandos → WIN!
– DDVMS
● Integrado con Eclipse y el logcat
● Permite ver el comportamiento del terminal en base a la
presentación, entre otras cosas
– Testing:
● Clases de test
● Monkey, MonkeyRunner
● ADB → información de debug
Curso de iniciación a Android

Android Market

● El sitio para publicar las aplicaciones


– Requiere un proceso de darse de alta, 20$.
● Solo una vez }:-)
– https://market.android.com/publish/Home
– Permite más de una dirección de correo por cuenta para
testeo de las aplicaciones
● Para publicar, la aplicación debe ir firmada por
nosotros
– De ahí que haya tantos campos en el registro
– Ya ha habido problemas de seguridad en el pasado:
● Trojan-SMS.AndroidOS.FakePlayer.a enviaba SMS desde el
teléfono infectado
Curso de iniciación a Android
Curso de iniciación a Android

Instalación del sistema base


Curso de iniciación a Android

Instalación del sistema base

● Comprobar que tenemos java instalado :-)


– Java –version
– Apt-get install openjdk-6-jre
● Descompimir los dos archivos que tenemos en la
carpeta tools
– tar xvfz android-sdk***
– tar xfz eclipse-java-helios***
● Vamos a la carpeta android
– ejecutamos tools/android update sdk
● Vemos todos los paquetes del API disponibles
● Aceptamos las licencias y a descargar
Curso de iniciación a Android

Instalación del sistema base

Descompimir los dos archivos que tenemos en la


carpeta tools
– tar xvfz android-sdk***
– tar xfz eclipse-java-helios***
● Vamos a la carpeta android
– ejecutamos tools/android update sdk
● Vemos todos los paquetes del API disponibles
● Aceptamos las licencias y a descargar
– Luego descargaremos los paquetes disponibles
● Lo cogemos todo para ver las características diferentes que
nos proporcionan
Curso de iniciación a Android

● Mientras descarga...
Curso de iniciación a Android

Familiarizandonos con el sistema instalado

● Android no es un único entorno


– Desarrollo del SO
● Es un sistema que evoluciona más rápido que el Delorean

– Librerías Vendor-specific: galaxy tab, motorola xoom, etc


– Las propias de google para gmaps, etc.
Curso de iniciación a Android

Familiarizándonos con el sistema

● Miramos las herramientas que nos proporciona


– Una de las cosas buenas, es que proporciona herramientas
de todo tipo para el debug de aplicaciones
● Monkeyrunner, integración con ecplise, ddms...
● Las iremos viendo a lo largo del curso → si nos da tiempo
Curso de iniciación a Android

Configurar eclipse

● Añadimos las fuentes de google para conectar las


herramientas que nos hemos descargado con eclipse
– Integración muy buena
Curso de iniciación a Android

Componentes típicos de android

● Los componentes típicos son:


– Activities: bloque funcional mínimo visible de una
aplicación android. Cada actividad es independiente
– Services: procesos en background que están un período de
tiempo largo
– Broadcast Receivers: ítem que recibe y responde a
anuncios broadcast
– Content Provides: exponen datos específicos a las
aplicaciones
Curso de iniciación a Android

Componentes típicos de android

● Se comunican por medio de


– Intents → API no asíncrona. VOY a hacer algo
● Será el SO el que te de la opción de hacerlo
– Intent Filters → Yo puedo hacer determinado trabajo
● Componentes de usuario
– Views
– Notifications
Curso de iniciación a Android

Componentes típicos de android

● Intents → Hay dos tipos:


– Explicit Intents → especificas la actividad que debe
responder al intent
– Implicit Intent → declaras el intent y lo dejas a la
plataforma, que encuentre 1 actividad que pueda
satisfacerlo
– Dentro de cada Intent hay:
● Action
● Category
● Data
● Intent Filters → Declarados en el AndroidManifest.xml
Curso de iniciación a Android

Componentes típicos de android

● Si quiero recibir determinados intents, tengo que


declararlo por medio de los intent Filters
– Un componente puede declarar 1-N intent filters
– Si hay 2 actividades que puedan manejaar el mismo
IntentFilter, se le da al user la opción de que elija cuál
quiere.
● Es posible establecer prioridades para los intent filters
para definir el orden de respuesta
Curso de iniciación a Android

Ha terminado de descargar?

● Si ha descargado...
Curso de iniciación a Android

Configurando el sistema

● Abrimos eclipse, solapa de desarrollo Java


● Help >Install New software
– New source:
● ADT Plugin
● https://dl-ssl.google.com/android/eclipse/
– Si nos da problemas, tenemos el ADT descargado, por si las
moscas
Curso de iniciación a Android

Devkit

● Tenemos descargado el eclipse estándar


● Tenemos descargado el SDK de Android
– Con todos las librerías de terceros, versiones, etc
● Eclipse configurado para que nos compile, ejecute,
depure todo
● Configurar el AVD para que nos genere un dispositivo
virtual
– Actualizas librerías y ves descargas para el galaxy tab, de
sony ericsson para el xperia play ^_^
– ADV - Android Virtual Device
● Configuraremos screen por defecto + Android 2.2
Curso de iniciación a Android

Hello World

● Utilizamos el instalador de Eclipse


– New > Project >...
● Atención al código:
– Una Activity es una entidad de una aplicación que se usa
para ejecutar acciones.
– Una aplicación puede tener muchas actividades separadas,
pero el usuario interactúa con una de ellas
– OnCreate() es el método que se ejecuta cuando la
actividad comienza.
● Configuración de la interfaz de usuario e inicialización
– Snippet0
Curso de iniciación a Android

Hello World (II)

● La interfaz de android
– Basada en jerarquía de objetos llamadas vistas View
– Los objetos que se dibujan en pantalla son instancias de
objetos View
– Recibe el contexto como parámetro
– El contexto es un handler del sistema
● El que accede a los recursos, etc
● Activity es hijo de Context, por eso lo pasamos como primer
parámetro
● A ejecutarlo!
Curso de iniciación a Android

Ejecución

● A subrayar:
– Nombre superior de la aplicación
● res/values/strings.xml referenciado
● AndroidManifest.xml
Curso de iniciación a Android

Independencia UI y programación

● La lógica del sistema va por un lado


● La interfaz por otra
– Definimos UI en /res/layout/main.xml
– Snippet 1
– Strings de la aplicación en res/values/strings.xml
– Snippet 2
– Actualizamos la app para que nos funcione con el interfaz
definido como $DEITY manda
– Snippet 3
● Atención al parámetro setContentView
– R.layout.main → res/layout/main.xml ;-)
– R.layout.XXXX → res/layout/XXXX.xml
Curso de iniciación a Android

La clase R

● R.java es la puerta a todas los recursos de una


aplicación → directorio gen del proyecto
● SE MIRA PERO NO SE TOCA!
– Referencias hexadecimales a recursos del sistema
● Algun h4x0rz entre los presentes?
● public static final class layout
– Aquí dentro estarán las referencias a strings.xml
Curso de iniciación a Android

Explicit Intent

● Los explicit Intent se usan para pasar mensajes entre


componentes de la aplicación
● En un intent implícito declaras el intent y dejas que el
sistema encuentre la actividad que responde a ese
intent → EPIC WIN de Android
– Examples/01_Explicit_Intent
Curso de iniciación a Android

Implicit Intent

● En un intent implícito no se especifica el destinatario


– Cómo se elige quién es el destinatario
● Un intent contiene: Action, Category y Data
● El destinatario especifica esos 3 campos en su intent
Filter → así se hace el matching
– Se hace en el Manifest.xml
● Cada componente puede especificar N intent Filters
● Existen prioridades para los Intent Filters
– Example/02_implicit_Intent
Curso de iniciación a Android

Implicit Intents para aplicaciones del sistema

● Vamos a ver diferentes intents para aplicaciones del


sistema:
– android.content.Intent.ACTION_CALL
– Intent.ACTION_WEB_SEARCH
– Intent.ACTION_VIEW

– Ejemplos/03-NativeIntents2.1
Curso de iniciación a Android

Cogiendo el resultado de una actividad

● Si queremos que nos devuelvan un resultado


– StartActivityForResult()
– OnActivityResult()
● El proceso hijo deberá implementar
– SetResult()
– Finish()

– Ejemplos/04-ActivityForResult
Curso de iniciación a Android

Notifications

● Sirven para alertar al usuario de que algo pasa


● Cuatro formas de notificar
– Barra de estado
– Vibrar
– Luces
– Sonido
● Para manejarlo
– Notification → modifica la barra de estado
– NotificationManager → Objeto del sistema, que no
podemos instanciarlo, solo referenciarlo

– Ejemplos/ 05 - Notifications
Curso de iniciación a Android

Servicios Locales

● Componente que reside en el sistema y no tiene


interfaz
● El usuario interacciones con el servicio por medio de
una actividad que tenga UI
● Pero un servicio hay que crearlo...
– Hacer bind a un servicio
– Existen servicios externos, que tienen su propio espacio de
memoria

– Ejercicios 06- Service Notification


Curso de iniciación a Android

Servicios Remotos

● Vamos a utilizar servicios remotos, con su propio


espacio de memoria
● La comunicación se realiza por medio de AIDL
– Actúa de forma similar a CORBA
● En cuanto lo escribo eclipse me genera
automáticamente las clases que he de implementar
– Para hace el bind explicit Intent

– Ejemplos/07 –RemoteService
Curso de iniciación a Android

Content Providers

● Hasta ahora no manejábamos datos entre aplicaciones


– Aparecen los content Providers
● Son los que nos proporcionan de datos para la
aplicación
– Preferencias
– Ficheros
– RDBMS → Sqlite
– Network
● Content Providers hacen de abstracción sobre éstos
Curso de iniciación a Android

Content Providers

● Content Providers desgranados:


– content://com.irontec.cp/tasks/123 → Formato URI
– Content:// ← estándar
– Com.irontec.cp ← autoridad de los datos
– Tasks ← nombre de la tabla
– 123 ← _ID único
● Comprobamos en el ejemplo
– Ejemplos/08 - ContentProviderSample
Curso de iniciación a Android

Broadcast Receivers

● Son aplicaciones que responden a cualquier intent que


ha sido enviada por otra aplicación
– Declararemos los intents a los que vamos a responder en
AndroidManifest.xml
● Los posibles intents están en:
– http://developer.android.com/reference/android/content/Inte
● Ejemplos/09 – BroadCastReceivers
– Necesitaremos el adb para modificar el tiempo
– Platform-tools/abs shell
● Date ← nos da el tiempo ahora mismo
● Date -s 20110522.1234 ← establece el tiempo
Curso de iniciación a Android

Uso de SQLite

● Ejemplo de uso de SQLite


– Creación a Piñón de los datos
– Muestra por pantalla

● Ejemplos/10-SQLiteDBSample
Curso de iniciación a Android

Preferencias compartidas

● Generalmente en android se almacenan bajo una tabla


específica:
– Dato, valor
● En el ejemplo almacenaremos las preferencias para
visualizarlas después
– Primero vamos a usar el adb para poner la imagen en el
teléfono
– Adb push <local> <remote>
● Ejemplo/11-SharedPreferencesSample
Curso de iniciación a Android
Curso de iniciación a Android

Conceptos intermedios
Curso de iniciación a Android

Qué vamos a ver en este módulo

● Vista Google Maps


● Un poco de UI
● Hilos
● Programación de la UI
Curso de iniciación a Android

Mapas de Google

● Servicio de mapas de google es una aplicación externa


● Es necesario conseguir una key para los mapas
– Necesitamos una clave para debug
● Habrá que cambiarla cuando pasemos a producción
● Windows>prefs>Android>Build y ver el keystore
● keytool -list -alias androiddebugkey -keystore
<path_to_debug_keystore>.keystore -storepass android
-keypass android
● http://code.google. com/android/maps-api-signup.html
Curso de iniciación a Android

Mapas de Google (II)

● La clase MapActivity extiende de Activity


– Se comporta de la misma manera
● La clase MapView extiende View
– Responderá al uso del teclado
– Permite manipular el MapView de forma programática
● Cambiaremos el target del API a una que tenga Google
Maps
● Cambiaremos en el Manifest el uso de librerías externas
● Ejemplos/12
Curso de iniciación a Android

Location Manager

● Queremos conocer donde estamos, posicionamiento


de nuestro terminal
● Clase LocationManager
– Accede a los servicios de localización
– Elimina aquellas solicitudes menos exactas que la actual
● El ejemplo nos enseña una aplicación con el sitio
hardcodeado
– Lo cambiaremos por medio de telnet
– Telnet locahost 5554
– Geo fix Lat, Lng
● Ejemplos/13
Curso de iniciación a Android

Listas Simples

● Comenzaremos con el uso de vistas simples


– Un poco de UI
● Las vistas se definen dentro de los layouts
– En forma de XML
– Si no defines un ListView, la aplicación coge la ListView
por defecto que abarca toda la pantalla
– Para juntar los datos ArrayAdapter
● Ejemplos/14
Curso de iniciación a Android

ListView personalizada

● Haermos listas dentro de listas cambiando ligeramente


el color

● Ejemplo/15
Curso de iniciación a Android

Hilos y Handlers

● Vamos a lidiar con el usuario-histérico-15milisegundos


es demasiado ;-)
● Solucionar esto → separando hilos
– Por un lado principal + UI
– Por otro lado los currelas
● Comunicamos los hilos por medio de un Handler
– Un Handler permite enviar Mensajes y Objetos en
ejecucion (runnable) asociados a la Cola de Mensajes de
ese Hilo MessageQueue
– Creamos el handler en el padre y lo comunicamos con el
hijo
Curso de iniciación a Android

Hilos y Handlers (II)

● En este caso, el ejemplo simplemente espera 800ms y


devuelve el control con un status 0
– En la vida real, invocaremos algún WS :-)
● Le mostraremos al usuario un progress Dialog, para que
no se impaciente
● Peeeeero hay una mejor opción
– Hacerlo por medio de una AyncTask

● Ejemplos/16
Curso de iniciación a Android

Conexión HTTP usando hilos y handlers

● Descargaremos una imagen y un texto de internet


● La parte HTTP es Java estandar → nada nuevo bajo el
sol
– EL tema es comunicarlos por medio de un Message
● En el ejemplo → todo dentro de un absolute Layout
Ejemplos/17
Curso de iniciación a Android

Un poco más de UI → fecha y hora

● Ejemplo típico para cuando existe una parte donde


queremos que introduzca la fecha y la hora
– En plan widget de Jquery, por ejemplo

● Analizamos el código
– Ejemplos/18
Curso de iniciación a Android

Un poco más de UI → Autocompletado

● El autocompletado se realiza desde una lista


predefinida de elementos
● Provee feedack rápido a los usuarios
– Calma muchas ansias

● Analizamos el código
– Ejemplos/19
Curso de iniciación a Android

Spinner

● Un spinner es... un spinner


– Widget proporcionado por la SDK de Android, como los
anteriores
– Hay que porporcionarle un array de datos
– Y un handler del array para que lo maneje

● Analizamos el código
– Ejemplos/20
Curso de iniciación a Android

Gallery View

● Clase para manejo de fotos de Android


● Viene bien para aplicaciones de manejo de fotos, etc
– Modificar iconos, etc
● En este caso no hemos usado ImageAdapter
– Extendemos la clase BaseAdapter
● Definimos los atributos en el Xml
● Obtenidos por medio de obtainStyledAttributes
– Definido en resources
● Retorno en TypedArray ← un array de lo que sea
● Echamos un ojo al código
– Ejemplos/21
Curso de iniciación a Android

Image Switcher

● También para el uso de fotografías


– Pero utilizando transiciones de por medio ^_ ^
● Similar al ejemplo anterior, pero en vez de utilizando
un ImageView, utilizamos un ImageSwitcher
● Nuestra clase deberá extender de Activity
– E implementar ViewFactory → crea las vistas que luego se
muestran en el Image Switcher
– AnimationUtils nos implementa las animaciones que
queramos usar
● Analizamos el código
– Ejemplos/22
Curso de iniciación a Android

Crear la UI programáticamente

● Interesante para cuando recoges datos, pero


desconoces longitud, etc
● Cada vista (view) o grupo de vistas (viewgroup) tiene un
equivalente en el SDK
– Similar a la definición en XML

● Analizamos ListView en el siguiente ejemplo


– Ejemplos/23
Curso de iniciación a Android

Creación de UI dinámica

● Es posible definir la UI por medio de programas


– Pero poco recomendable
● En Android, la lógica va por un lado, la UI por otro
● Para modificar la UI en tiempo de ejecución
– XML inflation
● Ejemplo: un botón que se usa muchas veces y quiero
reutilizarlo → optimización de memoria
– XML separado
● La clase que nos provee esto LayoutInflater
– Ejemplos/24
Curso de iniciación a Android

Población de una pantalla desde base de datos

● Crear una base de datos, poblarla


● Crear una pantalla que muestre los datos
● Sacar el contenido de la base de datos y poblar el la
lista con el contenido de la base de datos

● Resultado final en
– Ejemplos/25
Curso de iniciación a Android

Y si alguien tiene ganas de más UI...

● La UI se puede diseñar desde el propio eclipse


● Droiddraw
● Appbuilder
– Les echamos un ojo?
Curso de iniciación a Android
Curso de iniciación a Android

Programación de Tests en Android


Curso de iniciación a Android

Ejemplo de Test Project

● Explicación sobre la aplicación de los tests?

● New > Project > Android > Test Project


Curso de iniciación a Android

Metodos de las clases de test

● HelloAndroidTest: Contructor de la clase.


● setUp(): inicializa el entorno antes de ejecutar cada test
● testPreconditions(): Se asegura que la aplicación
principal ha inicializado bien
● testText(): Comprueba que se muestra por pantalla la
cadena requerida
– Deberíamos usarla cuando problemos UI
● Añadimos la clase test con botón derecho
– Nombre : HelloAndroidTest
– Superclase:
android.test.ActivityInstrumentationTestCase2<HelloAnd
roid>
Curso de iniciación a Android

Casos de test (II)

● Creamos el contructor
– Le echamos un ojo e importamos
com.irontec.helloandroid.HelloAndroid ← la clase
destino
– test_snippet1
● Añadimos el método setup
– test_snippet2
– Compueba inicialización y que TextView exista
– test_snippet3
– E incluímos las variables que faltan
– test_snippet4
● Añadimos el test de precondiciones
– test_snippet5
Curso de iniciación a Android

Casos de test (III)

● Añadimos el test de unidad


– En este caso, comprobar que el texto que se muestra y el
del string original es el mismo
● Esto se puede complicar la vida: validaciones de objetos
mostrados por pantalla y lo que se recoge de los web
services, formatos de archivos, json...
– test_snippet6
Curso de iniciación a Android

Ejecutar el test

● Run As >Junit project Test


● Para futuras referencias
– Instrumentation testRunner
– Instrumentation testCase
Curso de iniciación a Android

Testeo de Actividades

● Utilizaremos la aplicación de Spinner


– Import > from existing source
● samples/android-8/Spinner
● Samples/android-8/Spinner-Test

Vous aimerez peut-être aussi