You are on page 1of 25

Formacin en Tecnologas Java

App Android: Desarrollo de aplicaciones en Android.


Introduccin a Android
Charla-taller impartida en CAMON Alicante el 11-12 de enero de 2011. Boyn Bonev, Pablo Suau, Miguel A. Lozano y el Dep. CCIA de la Universidad de Alicante

CAMON Alicante, 11-12 enero 2010

Depto. Ciencia de la Computacin e IA (Univ. Alicante)

App Android Intro-1

Formacin en Tecnologas Java

Puntos a tratar
Licencia Qu hay dentro? Quin lo hace? Dispositivos, hardware Android SDK, capas, tipos de aplicaciones Desarrollo y consideraciones Planificacin del taller AppAndroid

CAMON Alicante, 11-12 enero 2010

Depto. Ciencia de la Computacin e IA (Univ. Alicante)

App Android Intro-2

Formacin en Tecnologas Java

Android

Sistema operativo para dispositivos mviles Ncleo basado en el de Linux Programacin de aplicaciones en Java
Depto. Ciencia de la Computacin e IA (Univ. Alicante) App Android Intro-3

CAMON Alicante, 11-12 enero 2010

Formacin en Tecnologas Java

Historia: motivacin
Los dispositivos embebidos se programaban a bajo nivel: necesidad de entender todo su hardware Sistemas operativos: abstraccin del hardware
Ej: Symbian. Cdigo en C/C++. Nivel medio/bajo, bibliotecas propietarias, complicaciones con hardware especfico.

Java ME: abstrae del HW y del SO. Mquina virtual limita el acceso a hardware.

CAMON Alicante, 11-12 enero 2010

Depto. Ciencia de la Computacin e IA (Univ. Alicante)

App Android Intro-4

Formacin en Tecnologas Java

Licencia
Android
Sistema operativo (Licencia Apache) Plataforma de desarrollo (Licencia Apache)

Licencia Apache
Open Source Permite a los fabricantes aadir extensiones propietarias sin ponerlas en manos de la comunidad del software libre

CAMON Alicante, 11-12 enero 2010

Depto. Ciencia de la Computacin e IA (Univ. Alicante)

App Android Intro-5

Formacin en Tecnologas Java

Open Source
El open source hace posible:
Una comunidad de desarrollo, gracias a sus completas APIs y documentacin ofrecida. Desarrollo desde cualquier plataforma (Linux, Mac, Windows, etc). Un sistema operativo para cualquier tipo de dispositivo mvil, al no estar diseado para un slo tipo de mvil. Posibilidad para cualquier fabricante de disear un dispositivo que trabaje con Android, y la posibilidad de abrir el sistema operativo y adaptarlo o extenderlo para su dispositivo. Valor aadido para los fabricantes de dispositivos: las empresas se ahorran el coste de desarrollar un sistema operativo completo para sus dispositivos. Valor aadido para los desarrolladores: los desarrolladores se ahorran tener que programar APIs, entornos grficos, aprender acceso a dispositivos hardware particulares, etc.

CAMON Alicante, 11-12 enero 2010

Depto. Ciencia de la Computacin e IA (Univ. Alicante)

App Android Intro-6

Formacin en Tecnologas Java

De qu est hecho?
Ncleo (branch) basado en linux (memoria, procesos, hardware) Bibliotecas open source (SQLite, WebKit, OpenGL, manejador de medios, etc). Entorno de ejecucin Dalvik Framework de desarrollo: pone a disposicin de las aplicaciones los servicios del sistema SKD: herramientas, plug-in para Eclipse, emulador, ejemplos, doc. Interfaz de usuario para pantalla, dispositivos de entrada, etc. Aplicaciones preinstaladas (destacamos Flash Player) Android Market

CAMON Alicante, 11-12 enero 2010

Depto. Ciencia de la Computacin e IA (Univ. Alicante)

App Android Intro-7

Formacin en Tecnologas Java

Desarrollan Android:
Open Handset Alliance
Trata de definir estndares abiertos para dispositivos mviles Consorcio de decenas de compaas (entre ellas est Google):
Operadores de telefona mvil Fabricantes de dispositivos Fabricantes de procesadores y microelectrnica Compaas de software Compaas de comercializacin

CAMON Alicante, 11-12 enero 2010

Depto. Ciencia de la Computacin e IA (Univ. Alicante)

App Android Intro-8

Formacin en Tecnologas Java

Cuestiones ticas
Aspectos positivos
Cdigo abierto
Valor aadido para todos Mantenibilidad Seguridad informtica Transparencia del uso de sensores

Servicios gratuitos de Google

CAMON Alicante, 11-12 enero 2010

Depto. Ciencia de la Computacin e IA (Univ. Alicante)

App Android Intro-9

Formacin en Tecnologas Java

Cuestiones ticas
Aspectos negativos
Obligatorio log-in con el ID de Google (dependencia) Constante intercambio de datos con Google Envo de localizacin (desactivable) Los usuarios no estn concienciados de la dependencia de los servidores de Google y lo aceptan sin ms. Aunque el SO sea libre, gran parte de su valor est en los servicios gratuitos de Google, que no son libres ni conocemos el tratamiento que dan a nuestra informacin privada.
CAMON Alicante, 11-12 enero 2010 Depto. Ciencia de la Computacin e IA (Univ. Alicante) App Android Intro-10

Formacin en Tecnologas Java

Dispositivos

CAMON Alicante, 11-12 enero 2010

Depto. Ciencia de la Computacin e IA (Univ. Alicante)

App Android Intro-11

Formacin en Tecnologas Java

Procesador
Snapdragon de Qualcomm
Arquitectura ARM (el 98% de los mviles la usan)
Tipo RISC: reduced instruction set computer

Plataforma que incluye:


Hasta dos CPU's de 1.5 Ghz HSPA+ GPS Bluetooth Video full definition Wi-Fi TV mvil

CAMON Alicante, 11-12 enero 2010

Depto. Ciencia de la Computacin e IA (Univ. Alicante)

App Android Intro-12

Formacin en Tecnologas Java

Android SDK
Licencias, distribucin y desarrollo gratuitos, tampoco hay procesos de aprobacin del software. No diferencia entre aplicaciones nativas y de terceros. Acceso al hardware de WiFi, GPS, Bluetooth y telefona, permitiendo realizar y recibir llamadas y SMS. Control completo de multimedia, incluyendo la cmara y el micrfono. APIs para los sensores: acelermetros y brjula. Mensajes entre procesos (IPC). Almacenes de datos compartidos, proveedores de contenidos, SQLite, acceso a SD Card. Aplicaciones y procesos en segundo plano. Widgets para la pantalla de inicio (escritorio). Integracin de los resultados de bsqueda de la aplicacin con los del sistema. Uso de mapas y sus controles desde las aplicaciones. Aceleracin grfica por hardware, incluyendo OpenGL ES 2.0 para los 3D.

CAMON Alicante, 11-12 enero 2010

Depto. Ciencia de la Computacin e IA (Univ. Alicante)

App Android Intro-13

Formacin en Tecnologas Java

Capas

CAMON Alicante, 11-12 enero 2010

Depto. Ciencia de la Computacin e IA (Univ. Alicante)

App Android Intro-14

Formacin en Tecnologas Java

Tipos de aplicaciones
Primer plano (activities) Segundo plano
Servicios puros Servicios combinados con actividades

Widgets de escritorio

CAMON Alicante, 11-12 enero 2010

Depto. Ciencia de la Computacin e IA (Univ. Alicante)

App Android Intro-15

Formacin en Tecnologas Java

Consideraciones para el desarrollo


Pequea capacidad de procesamiento Memoria RAM limitada Memoria permanente de poca capacidad Pantallas pequeas de poca resolucin Transferencias de datos costosa (en trminos de energa y econmicos) y lenta Inestabilidad de las conexiones de datos Batera muy limitada Necesidad de terminar la aplicacin en cualquier momento
CAMON Alicante, 11-12 enero 2010 Depto. Ciencia de la Computacin e IA (Univ. Alicante) App Android Intro-16

Formacin en Tecnologas Java

Consideraciones para el desarrollo


Ser eficiente
CPU Memoria Recursos y red

Respetar al usuario
No robar el foco Pocos avisos Interfaz intuitiva y coherente con Android

Ver Gua de desarrollo de Android antes de publicar


CAMON Alicante, 11-12 enero 2010 Depto. Ciencia de la Computacin e IA (Univ. Alicante) App Android Intro-17

Formacin en Tecnologas Java

Actividades
Activity: tarea destinada a mostrar una interfaz grfica al usuario. Slo podemos ver en pantalla una actividad a la vez. Una aplicacin suele estructurarse en un conjunto de actividades. Una aplicacin puede mostrar actividades de otras aplicaciones o actividades nativas del sistema (por ejemplo, la de enviar SMS).
CAMON Alicante, 11-12 enero 2010 Depto. Ciencia de la Computacin e IA (Univ. Alicante) App Android Intro-18

Formacin en Tecnologas Java

Ciclo de vida de las actividades


Se define sobrecargando los siguientes mtodos:
public class Activity extends ApplicationContext { protected void onCreate(Bundle savedInstanceState); protected void onStart(); protected void onRestart(); protected void onResume(); protected void onPause(); protected void onStop(); protected void onDestroy();
}

CAMON Alicante, 11-12 enero 2010

Depto. Ciencia de la Computacin e IA (Univ. Alicante)

App Android Intro-19

Formacin en Tecnologas Java

Ciclo de vida de las actividades


Ciclo de vida entre onCreate( ) onDestroy( ) Tiemo de vida visible entre onStart( ) onStop( ) Tiempo de vida en primer plano entre onResume( ) onPause( ) puede ser terminada!
Depto. Ciencia de la Computacin e IA (Univ. Alicante) App Android Intro-20

CAMON Alicante, 11-12 enero 2010

Formacin en Tecnologas Java

Intents
Intent, propsito. Es una descripcin abstracta de una operacin a realizar. Los utilizaremos para pasar de una actividad a otra. Usos:
Con startActivity para lanzar una actividad Con broadcastIntent para enviarse a cualquier componente receptor BroadcastReceiver. Con startService o bindService para comunicar con un servicio (Service) que corre en segundo plano.

CAMON Alicante, 11-12 enero 2010

Depto. Ciencia de la Computacin e IA (Univ. Alicante)

App Android Intro-21

Formacin en Tecnologas Java

Intents: lanzar actividades


Lanzar una actividad propia:
Intent intent = new Intent(this, MiActividad.class); startActivity(intent);

Lanzar una actividad del sistema:


Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:965903400")); startActivity(intent);

CAMON Alicante, 11-12 enero 2010

Depto. Ciencia de la Computacin e IA (Univ. Alicante)

App Android Intro-22

Formacin en Tecnologas Java

Intents
Otras acciones del sistema
ACTION_ANSWER ACTION_CALL ACTION_DELETE ACTION_DIAL ACTION_EDIT ACTION_INSERT ACTION_PICK ACTION_SEARCH ACTION_SENDTO ACTION_VIEW ACTION_WEB_SEARCH

CAMON Alicante, 11-12 enero 2010

Depto. Ciencia de la Computacin e IA (Univ. Alicante)

App Android Intro-23

Formacin en Tecnologas Java

Guin de AppAndroid
Introduccin a Android y a la programacin de aplicaciones Prctica 1: Hola Mundo (layouts y Descanso de 10 min? componentes para la interfaz). Prctica 2: Lector de noticias CAMON
Creacin de la aplicacin, recursos, interfaz, AsyncTask

(da 2)
Carga de imgenes, dilogos, sntesis del habla Generar paquete instalable

Otros aspectos (servicios, p.ej.) y conclusiones


CAMON Alicante, 11-12 enero 2010 Depto. Ciencia de la Computacin e IA (Univ. Alicante)

App Android Intro-24

Formacin en Tecnologas Java

Preguntas...?

CAMON Alicante, 11-12 enero 2010

Depto. Ciencia de la Computacin e IA (Univ. Alicante)

App Android Intro-25