Upload
oposeitor
View
220
Download
0
Embed Size (px)
Citation preview
7/29/2019 TallerAndroidETSII.pdf
1/139
Taller de Introduccin a laprogramacin en
Sevilla, 13 de Noviembre de 2012
Escuela Tcnica Superior de Ingeniera Informtica
Antonio Francisco Domnguez [email protected]
@adominguezc
mailto:[email protected]:[email protected]7/29/2019 TallerAndroidETSII.pdf
2/139
Introduccin al desarrollo de aplicaciones Android
Situacin actual
Segn los ms prestigiosos estudios demercado, el 75 % de los dispositivos mviles
vendidos a nivel mundial en el tercer trimestre de2012, poseen sistema operativo Android.
En este periodo se han vendido 136 millones deunidades, con una evolucin respecto al aopasado de un 91,50 %.
7/29/2019 TallerAndroidETSII.pdf
3/139
Introduccin al desarrollo de aplicaciones Android
Situacin actual
Mercado de 333,6 millones de dispositivosen todo el mundo con Android.
68,2 % de cuota de mercado, estimandoque a finales del 2012 ocupe un 75%.
7/29/2019 TallerAndroidETSII.pdf
4/139
Introduccin al desarrollo de aplicaciones Android
Situacin actual
7/29/2019 TallerAndroidETSII.pdf
5/139
Introduccin al desarrollo de aplicaciones Android
Situacin actual
7/29/2019 TallerAndroidETSII.pdf
6/139
Introduccin al desarrollo de aplicaciones Android
Ventajas de desarrollar en Android
Ventajas de desarrollar en Android
Aunque la mayora de las aplicaciones estnescritas en Java, de forma nativa a travs delSDK de Android, tambin podemos desarrollaraplicaciones web en HTML5, CSS3 y
Javascript o incluyendo cdigo C C++ atravs del NDK.
7/29/2019 TallerAndroidETSII.pdf
7/139
Introduccin al desarrollo de aplicaciones Android
Ventajas de desarrollar en Android
Aplicaciones Android
SDK Android (JAVA) HTML5 + CSS3 + Javascript NDK Android (C/C++)
7/29/2019 TallerAndroidETSII.pdf
8/139
Introduccin al desarrollo de aplicaciones Android
Ventajas de desarrollar con Android
A diferencia de otras plataformas, desarrollar conAndroid no supone costos en licencias y
contamos con mltiples frameworks de desarrollogratuitos y de cdigo abierto.
El SDK de Android est a disposicin de lacomunidad en todas las plataformas existentes.
7/29/2019 TallerAndroidETSII.pdf
9/139
Introduccin al desarrollo de aplicaciones Android
Ventajas de desarrollar con Android
A diferencia de otras plataformas, desarrollar conAndroid no supone costos en licencias y
contamos con mltiples frameworks de desarrollogratuitos y de cdigo abierto.
El SDK de Android est a disposicin de lacomunidad en todas las plataformas existentes.
7/29/2019 TallerAndroidETSII.pdf
10/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
Desarrollo de aplicaciones Android nativas
Qu herramientas necesitamos?
Java JDK
Entorno de desarrollo integrado (IDE) Eclipse
SDK Android
Plugin Android Development Tools (ADT) para
Eclipse Dispositivo Virtual Android (AVD)
7/29/2019 TallerAndroidETSII.pdf
11/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
Configuracin del entorno de desarrollo
Paso 1.- Descarga e instalacin de Java 7JDK
Podemos descargarlo desde la web de Oracle o bienmediante apt, incluido en los repositorios de las ltimasdistribuciones:
sudo apt-get install openjdk-7-jdk openjdk-7-jre
7/29/2019 TallerAndroidETSII.pdf
12/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
13/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
Paso 2.- Descarga e instalacin de Eclipse
Podemos obtener la ltima versin del popular entorno dedesarrollo integrado Eclipse desde la direccinhttp://www.eclipse.org/download, siendo recomendada para eldesarrollo de aplicaciones en Android la versin paradesarrolladores JAVA.
Una vez descargado bastar con descomprimirlo en cualquierubicacin.
http://www.eclipse.org/downloadhttp://www.eclipse.org/download7/29/2019 TallerAndroidETSII.pdf
14/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
15/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
16/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
Paso 3.- Descargar el SDK de Android
La ltima versin del SDK de la plataforma Android se puededescargar desde http://developer.android.com/sdk/index.html,siendo en estos momentos la ltima versin la r20 (Android4.1.2).
Una vez descargado bastar con descomprimirlo en cualquierubicacin.
http://developer.android.com/sdk/index.htmlhttp://developer.android.com/sdk/index.html7/29/2019 TallerAndroidETSII.pdf
17/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
18/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
Paso 4.- Descargar el plugin ADT para eclipse
Google pone a disposicin de los desarrolladores un plugin paraeclipse llamado Android Development Tools (ADT) que facilita engran medida el desarrollo de aplicaciones para la plataforma.
Se puede descargar mediante las opciones de actualizacin deEclipse, accediendo al men Help/ Install new software ... eindicando la URL de descarga:
https://dl-ssl.google.com/android/eclipse
Se debe seleccionar e instalar el paquete completo DeveloperTools, formado por Android DDMS y Android Development Tools.
https://dl-ssl.google.com/android/eclipsehttps://dl-ssl.google.com/android/eclipse7/29/2019 TallerAndroidETSII.pdf
19/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
20/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
21/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
22/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
Paso 5.- Configurar el plugin ADT
En la ventana de configuracin de Eclipse, se debe acceder ala seccin de configuracin de Eclipse Window / Preferencese indicar la ruta en la que hemos descomprimido el SDK
descargado en el paso 3.
7/29/2019 TallerAndroidETSII.pdf
23/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
Paso 6.- Descargar los targets necesarios
Adems del SDK de Android, tambin debemos descargar losllamados SDK Targets de Android, que son librerasnecesarias para desarrollar en cada una de las versiones
concretas de Android.Por ejemplo, si queremos desarrollar para Android 2.2 Froyo,especficamente, tendremos que descargar los targetscorrespondientes a esta versin.
Para ello accederemos al men Window / Android SDKManager, y en la seccin Available Packagesseleccionamos e instalamos los paquetes deseados.
7/29/2019 TallerAndroidETSII.pdf
24/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
25/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
26/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
Paso 7.- Configurar un dispositivo virtualAndroid
Para probar y depurar aplicaciones Android no tendremos quehacerlo necesariamente sobre un dispositivo fsico, sino que
podremos configurar un dispositivo virtual o emulador, pararealizar estas tareas.
Para ello accedemos a Window / AVD Manager, y en laseccin Virtual devices podremos aadir tantos dispositivoscomo deseemos, por ejemplo para distintas versiones deAndroid.
Seleccionaremos el target (versin) de Android que utilizar ysus caractersticas de hardware como resolucin de pantalla,memoria SD, o la disponibilidad de funciones como el GPS.
7/29/2019 TallerAndroidETSII.pdf
27/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
28/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
d i l d ll d li i d id
7/29/2019 TallerAndroidETSII.pdf
29/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
I t d i l d ll d li i A d id
7/29/2019 TallerAndroidETSII.pdf
30/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
I t d i l d ll d li i A d id
7/29/2019 TallerAndroidETSII.pdf
31/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
32/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
33/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
Qu nos ofrece el plugin ADT para Eclipse?
Desarrollar
Compilar
Empaquetar
Usar
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
34/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
Android Project Wizard .- Genera archivos requeridos porel proyecto
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
35/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
Editor de recursos .- Para disear interfaces de usuario
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
36/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
Manager Android .- Para gestionar SDK y AVD
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
37/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
Perspectiva DDMS.- Monitorizar y depurar aplicacionesAndroid
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
38/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
Construccin automatizada de aplicaciones paraemuladores y dispositivos Android
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
39/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
Soporte ProGuard.- Para optimizacin de cdigo yofuscacin
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
40/139
p
Desarrollo de aplicaciones Android nativas
Nuestro primer proyecto en Android: Hola Mundo!
Ya tenemos configurado el entorno de desarrollo paradesarrollar aplicaciones Android de forma nativa, por lo quepodemos pasar a crear nuestro primer proyecto en Android.
Para ello creamos en Eclipse un nuevo proyecto de tipoAndroid Project.
Indicamos su nombre, el target deseado, el nombre de laaplicacin, el paquete Java por defecto para nuestras clases yel nombre de la clase (activity) principal.
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
41/139
p
Desarrollo de aplicaciones Android nativas
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
42/139
p
Desarrollo de aplicaciones Android nativas
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
43/139
Desarrollo de aplicaciones Android nativas
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
44/139
Desarrollo de aplicaciones Android nativas
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
45/139
Desarrollo de aplicaciones Android nativas
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
46/139
Desarrollo de aplicaciones Android nativas
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
47/139
Desarrollo de aplicaciones Android nativas
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
48/139
Desarrollo de aplicaciones Android nativas
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
49/139
Desarrollo de aplicaciones Android nativas
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
50/139
Desarrollo de aplicaciones Android nativas
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
51/139
Desarrollo de aplicaciones Android nativas
Estructura de un proyecto AndroidCuando creamos un nuevo proyecto Android en Eclipse segenera automticamente la estructura de carpetas necesariapara poder generar posteriormente la aplicacin.
Esta estructura ser comn para cualquier aplicacin,independientemente de su complejidad.
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
52/139
Desarrollo de aplicaciones Android nativas
/src
Contiene todo el cdigo fuente de la aplicacin, cdigode la interfaz grfica, clases auxiliares, etc
Inicialmente, Eclipse crear el cdigo bsico de la
pantalla (Activity) principal de la aplicacin, siempre bajola estructura del paquete Java definido.
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
53/139
Desarrollo de aplicaciones Android nativas
/res
Contiene todos los ficheros de recursos necesarios parael proyecto: imgenes, vdeos, cadenas de texto, etc.Estarn organizados por tipos, siendo la estructura decarpetas la siguiente:
/res/drawable
Contiene las imgenes de la aplicacin. Para utilizardiferentes recursos dependiendo de la resolucin del
dispositivo, se suele dividir en varias subcarpetas: /drawable-ldpi: baja resolucin
/drawable-mdpi: resolucin media
/drawable-hdpi: resolucin alta
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
54/139
Desarrollo de aplicaciones Android nativas
/res/layout/Contiene los ficheros de definicin de las diferentespantallas de la interfaz grfica.
Para definir distintos layouts dependiendo de la orientacin
del dispositivo se puede dividir en dos subcarpetas: /layout: orientacin vertical
/layout-land: orientacin horizontal
/res/anim/
Contiene la definicin de las animaciones utilizadas por laaplicacin.
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
55/139
Desarrollo de aplicaciones Android nativas
/res/menu/Contiene la definicin de los mens de la aplicacin
/res/values/
Contiene otros recursos de la aplicacin como, por ejemplo, cadenasde texto (strings.xml), estilos (styles.xml), colores (colors.xml), etc...
/res/xml/
Contiene los ficheros XML utilizados por la aplicacin.
/res/raw/
Contiene recursos adicionales, normalmente en formato distinto a XML,que no se incluyan en el resto de la carpeta de recursos.
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
56/139
Desarrollo de aplicaciones Android nativas
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
57/139
Desarrollo de aplicaciones Android nativas
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
58/139
Desarrollo de aplicaciones Android nativas
/genContiene una serie de elementos decdigo generados automticamente alcompilar el proyecto. Cada vez quegeneramos nuestro proyecto, lamaquinaria de compilacin de Androidgenera por nosotros una serie deficheros fuente en Java dirigidos alcontrol de los recursos de la
aplicacin.
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
59/139
Desarrollo de aplicaciones Android nativas
El ms importante es el fichero R.java y la clase R.La clase R contendr en todo momento una serie deconstantes con los ID's de todos los recursos de la aplicacinincluidos en la carpeta /res, de forma que podamos accederfcilmente a estos recursos desde nuestro cdigo a travs de
este dato.
Por ejemplo, la constante R.drawable.ic_launcher contendr elID de la imagen ic_launcher.png contenida en la carpeta/res/drawable/.
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
60/139
Desarrollo de aplicaciones Android nativas
/assets/Contiene los dems ficheros auxiliares necesarios para laaplicacin (y que se incluirn en su propio paquete), porejemplo, ficheros de configuracin, de datos,
La diferencia con los ficheros incluidos en la carpeta /res/raw/es que para stos se generar un ID en la clase R y sedeber acceder a ellos con los diferentes mtodos de accesoa recursos.
Para los contenidos en la carpeta assets no se generar ID y
se podr acceder a ellos mediante su ruta como a cualquierotro fichero del sistema.
Usaremos uno u otro segn las necesidades de nuestraaplicacin.
Introduccin al desarrollo de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
61/139
Desarrollo de aplicaciones Android nativas
AndroidManifest.xmlContiene la definicin en XML de los aspectos principalesde la aplicacin, como su identificacin (nombre, versin,icono...), sus componentes (pantallas, mensajes ), ypermisos necesarios para su ejecucin.
ADT contiene un editor para este fichero llamadoAndroidManifest Editor.
Introduccin al desarrollo de aplicaciones Android
D ll d li i A d id i
7/29/2019 TallerAndroidETSII.pdf
62/139
Desarrollo de aplicaciones Android nativas
Componentes de una aplicacin AndroidEn otros entornos como Java o .NET estamosacostumbrados a manejar conceptos como ventana,control, eventos o servicios como los elementos bsicospara construir una aplicacin.
En Android vamos a disponer de esos mismos elementospero con un pequeo cambio en la terminologa y elenfoque.
Vamos a hacer un breve repaso de los componentesprincipales en desarrollo Android.
Introduccin al desarrollo de aplicaciones Android
D ll d li i A d id ti
7/29/2019 TallerAndroidETSII.pdf
63/139
Desarrollo de aplicaciones Android nativas
ActivitiesRepresentan el componente principal de la interfaz grfica deuna aplicacin Android.
Representa una ventana en cualquier otro tipo de lenguaje
visual.
Introduccin al desarrollo de aplicaciones Android
D ll d li i A d id ti
7/29/2019 TallerAndroidETSII.pdf
64/139
Desarrollo de aplicaciones Android nativas
ViewComponentes bsicos con los que seconstruye la interfaz grfica de la aplicacin.
Seran los controles en Java o .NET.
Android incorpora una gran cantidad decontroles bsicos, aunque podemosextender la funcionalidad de estos ocrearlos personalizados:
Cuadros de texto
Botones
Listas desplegables
Imgenes
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
65/139
Desarrollo de aplicaciones Android nativas
Service
Componentes sin interfaz grfica, se ejecutan en segundoplano, al igual que los de otro sistema operativo.
Pueden realizar cualquier tipo de acciones como actualizardatos, lanzar notificaciones, o mostrar elementos visuales(activities), si se necesita en algn momento la intervencin delusuario.
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
66/139
Desarrollo de aplicaciones Android nativas
Content Provider
Un content provider es el mecanismo que utiliza Android paracompartir datos entre aplicaciones.
Podemos compartir datos de nuestras aplicaciones sin mostrardetalles sobre su almacenamiento interno, su estructura, o suimplementacin.
Nuestra aplicacin podr acceder a los datos de otra a travsde los content provider definidos.
Una aplicacin que acceda a los contactos de nuestra agendautilizar content provider, por ejemplo.
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
67/139
Desarrollo de aplicaciones Android nativas
Broadcast Receiver
Es un componente destinado a detectar y reaccionar antedeterminados mensajes o eventos globales generados por el
sistema, como por ejemplo Batera baja, SMS recibido,tarjeta SD insertada, o por otras aplicaciones (cualquieraplicacin puede generar mensajes (intents) broadcast, esdecir, que no van dirigidos a una aplicacin concreta sino acualquiera que quiera escucharlo).
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
68/139
Desarrollo de aplicaciones Android nativas
Widget
Elementos visuales,normalmente interactivos, que
pueden mostrarse en la pantallaprincipal (home screen) y recibiractualizaciones peridicas.
Muestran informacin al usuariodirectamente sobre la pantallaprincipal.
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
69/139
Desarrollo de aplicaciones Android nativas
Intent
Elemento bsico de comunicacin entre los distintoscomponentes Android descritos.
Mensajes o peticiones que son enviados entre los distintoscomponentes de una aplicacin o entre distintas aplicaciones.
Mediante un intent se puede mostrar una actividad desdecualquier otra, iniciar un servicio, enviar un mensajebroadcast, iniciar otra aplicacin ...
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
70/139
Desarrollo de aplicaciones Android nativas
Componentes de una aplicacin Android
Activities
Views
Services
Content providers
Broadcast receivers
Widgets
Intents
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
71/139
Desarrollo de aplicaciones Android nativas
Desarrollando una aplicacin Android sencilla
En este sencillo ejemplo vamos a desarrollar una sencillaaplicacin con dos activities.
La pantalla principal solicitar nuestro nombre y la segundapantalla nos devolver un mensaje personalizado.
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
72/139
Desarrollo de aplicaciones Android nativas
Paso 1.- Creacin del proyecto
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
73/139
p
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
74/139
p
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
75/139
p
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
76/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
77/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
78/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
79/139
Tendremos el diseo y la lgica del activity separado endos ficheros:
Diseo Lgica
/res/layout/activity_hola_usuario.xml /src/com.holausuario/HolaUsuario.java
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
80/139
Paso 2.- Modificacin aspecto Activity principalAadiremos una serie de views (controles) modificando elfichero activity_hola_usuario.xml:
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
81/139
Paso 3.- Diseo activity secundarioCrearemos un nuevo fichero /res/layout/mensaje.xml con unasola etiqueta TextView que mostrar el mensaje al usuario:
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
82/139
Paso 4.- Implementacin lgica aplicacin (ficherosJava)
Para la pantalla principal tenemos un fichero por defecto/src/com.holausuario/HolaUsuario.java:
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
83/139
Creamos una nueva clase para la segunda pantalla de laaplicacin anloga a la primera, llamada Mensaje que extienda deActivity y que implemente el mtodo onCreate indicando queutilice la interfaz definida en R.layout.mensaje:
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
84/139
Obtenemos una referencia a los diferentes controles de laactivity principal que queremos manipular (cuadro de texto ybotn). Para ello, utilizamos el mtodo findViewById()indicando el ID de cada control, incluidos en la clase R:
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
85/139
Una vez que tenemos acceso a los diferentes controles,implementamos las acciones a tomar cuando pulsemos elbotn de la pantalla, implementando el evento onClick dedicho botn:
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
86/139
Utilizaremos el intent para llamar a una actividad desde otrade la misma aplicacin, pasaremos al constructor unareferencia a la propia actividad llamadora (HolaUsuario.this), yla clase de la actividad llamada (FrmMensaje.class).
Para pasar a la actividad el nombre del cuadro de textocreamos un objeto Bundle, que contendr una lista de paresclave-valor con toda la informacin a pasar entre lasactividades.
Aadiremos un dato de tipo String mediante el mtodoputString(clave, valor) y aadiremos la informacin al intentmediante el mtodo putExtras(bundle).
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
87/139
Paso 5.- Implementacin lgica activity secundaria
Ampliaremos el mtodo Oncreate obteniendo las referencias alos mtodos manipulados (etiqueta de texto).
Recuperaremos la informacin pasada desde la actividadprincipal y la asignaremos como texto de la etiqueta medianteel mtodo getIntent() y recuperamos su informacin asociada(objeto Bundle) mediante el mtodo getExtras().
Construiremos el texto de la etiqueta mediante el mtodo
setText(texto) y recuperamos el valor de la clave almacenadaen el objeto Bundle meduante getString(clave).
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
88/139
Utilizaremos el intent para llamar a una actividad desde otrade la misma aplicacin, pasaremos al constructor unareferencia a la propia actividad llamadora (HolaUsuario.this), yla clase de la actividad llamada (FrmMensaje.class).
Para pasar a la actividad el nombre del cuadro de textocreamos un objeto Bundle, que contendr una lista de paresclave-valor con toda la informacin a pasar entre lasactividades.
Aadiremos un dato de tipo String mediante el mtodoputString(clave, valor) y aadiremos la informacin al intentmediante el mtodo putExtras(bundle).
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
89/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
90/139
Paso 6.- Definicin AndroidManifest.xml
Definiremos las actividades que componen nuestra aplicacin:
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
91/139
Paso 7.- Ejecucin y depuracin del proyecto
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
92/139
Documentacin para desarrolladores
El punto de encuentro para desarrolladores Android es el sitioweb que Google ha habilitado al respecto y donde podremosencontrar recursos para disear, desarrollar y distribuirnuestras aplicaciones.
La direccin de Android Developers es:
http://developer.android.com/intl/es/index.html
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
http://developer.android.com/intl/es/index.htmlhttp://developer.android.com/intl/es/index.html7/29/2019 TallerAndroidETSII.pdf
93/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
94/139
Recursos para diseo de interfaces de usuario
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
95/139
Guas de aprendizaje
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
96/139
Gua completa de la API
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
97/139
Referencia de la API
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
98/139
Herramientas de desarrollo
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
D di f t d li i A d id
7/29/2019 TallerAndroidETSII.pdf
99/139
Descargas cdigo fuente de aplicaciones Android
Una de las mejores maneras de introducirse en el desarrolloAndroid y aprender a desarrollar aplicaciones profesionales, esmediante el estudio del cdigo fuente de aplicaciones ya
existentes.
En Internet existen numerosos recursos que ofrecen a lacomunidad de desarrolladores Android la descarga de cdigoabierto de aplicaciones para su uso, estudio, modificacin yredistribucin.
Pasaremos a enumerar los ms populares.
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
P t d t d E li
7/29/2019 TallerAndroidETSII.pdf
100/139
Proyectos de muestra de Eclipse
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
101/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
102/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
103/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
104/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
105/139
Google Code (http://code.google.com)
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
106/139
Github (www.github.com)
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
107/139
SourceForge (www.sourceforge.net)
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
108/139
SourceForge (www.sourceforge.net)
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
Distribucin de aplicaciones Android
7/29/2019 TallerAndroidETSII.pdf
109/139
Distribucin de aplicaciones Android
Google cuenta con un marketplace denominado Google Play (https://play.google.com/) a travs del cual cualquierdesarrollador puede distribuir sus aplicaciones a nivel mundial,
siendo su pblico objetivo los ms de 300 millones deusuarios de Android en la actualidad.
En la actualidad hay ms de 675.000 aplicaciones publicadas
en Google Play.
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
https://play.google.com/https://play.google.com/7/29/2019 TallerAndroidETSII.pdf
110/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
111/139
Para empezar a publicar aplicaciones en Google Play esnecesario abrir una cuenta como desarrolladorhttp://developer.android.com/intl/es/distribute/index.html, previopago de 25,00 $ lo cual nos da derecho a poder publicarnuestras aplicaciones mediante la consola de desarrolladorAndroid.
En Google Play podemos publicar aplicaciones de pago ogratuitas, pudiendo obtener ingresos mediante la venta deaplicaciones, por publicidad o por la prestacin de otros
servicios.Para la publicacin de la aplicacin, slo necesitaremos elpaquete .apk que encontraremos en la carpeta bin del proyectocompilado.
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
http://developer.android.com/intl/es/distribute/index.htmlhttp://developer.android.com/intl/es/distribute/index.html7/29/2019 TallerAndroidETSII.pdf
112/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
113/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android nativas
7/29/2019 TallerAndroidETSII.pdf
114/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android HTML5+CSS3+Javascript
Desarrollo de aplicaciones Android con
7/29/2019 TallerAndroidETSII.pdf
115/139
pHTML5, CSS3 y JavaScript
Hemos visto como desarrollar aplicaciones Android de formanativa, pero los programadores web con conocimientos HTML5,CSS3 y JavaScript estn de suerte ya que pueden desarrollar
aplicaciones para Android sin conocimientos especficos en Java,como si lo hicieran de forma nativa.
En la actualidad existen numerosos frameworks libres que vienena cumplir con esta tarea y cada vez con ms cuota en el nmerode desarrolladores.
Veamos algunos de ellos...
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android HTML5+CSS3+Javascript
JqueryMobile (www.jquerymobile.com)
http://www.jquerymobile.com/http://www.jquerymobile.com/7/29/2019 TallerAndroidETSII.pdf
116/139
Es un framework de Javascript basado en jQuery y jQuery UI, para el desarrollode aplicaciones web y de escritorio (nativas) en dispositivos mviles.Soportando una amplia variedad de dispositivos.
Est basado en jQuery, por lo tanto la curva de aprendizaje ser mnima paraaquellas personas que hayan utilizado jQuery.
Su peso de (20kb) y el uso mnimo de imgenes en sus componentes.
Uso de marcado HTML5 en la estructura de las pginas y componentes,utilizando los diferentes atributos para disparar automticamente los Widgetsde jQueryMobile. Adems podemos aplicar los diferentes comportamientos quetrae cada componente sin tener que aplicar ningn script adicional.
Enfocado tanto a aplicaciones web como a aplicaciones nativas.
Proporciona una potente herramientas para crear diferentes temas (themes):ThemeRoller.
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android HTML5+CSS3+Javascript
7/29/2019 TallerAndroidETSII.pdf
117/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android HTML5+CSS3+Javascript
PhoneGap (www.phonegap.com)
7/29/2019 TallerAndroidETSII.pdf
118/139
Phonegap es un framework para desarrollar aplicaciones mviles que es un clarosinnimo de sencillo.
Se basa en tecnologas como HTML, CSS, Javascript, JQuery o Sencha Touchentre otras.
Este conjunto de herramientas, porta casi cualquier cdigo HTML, CSS, Javascripty dems en cdigo nativo listo para compilar en el SDK. Abstrayendo al
programador de aprender cdigo nuevo y/o ms complejo, agilizando as eldesarrollo y el mantenimiento de las aplicaciones.
Phonegap basa todo su potencial en un fichero javascript y una librera que seencargan de hacer el port de un lenguaje a otro. Aparte, dispone de varias APIspara poder interactuar con elementos nativos del dispositivo como la cmara defotos o vdeo, el acelermetro, las redes, etc. Si queremos usar los elementos
propios de la interfaz grfica del SO tambin es posible acceder a los mismosmediante la instalacin de plugins como NativeControls.
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android HTML5+CSS3+Javascript
7/29/2019 TallerAndroidETSII.pdf
119/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android HTML5+CSS3+Javascript
7/29/2019 TallerAndroidETSII.pdf
120/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android HTML5+CSS3+Javascript
SenchaTouch (http://www.sencha.com/products/touch)
7/29/2019 TallerAndroidETSII.pdf
121/139
Sencha Touch est especficamente desarrollado paraaprovechar la mayor potencia y flexibilidad de HTML5, CSS3y JavaScript, haciendo uso de los nuevos elementos
disponibles en la nueva especificacin del estndar parautilizar video, audio, guardar datos offline, as como unalibrera con mltiples widgets de usuario y control para loseventos tctiles de los dispositivos mviles con efectos muyagradables gracias a la capa de CSS3 que incorpora.
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android HTML5+CSS3+Javascript
7/29/2019 TallerAndroidETSII.pdf
122/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android HTML5+CSS3+Javascript
7/29/2019 TallerAndroidETSII.pdf
123/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android HTML5+CSS3+Javascript
DojoMobile (http://dojotoolkit.org/features/mobile)
7/29/2019 TallerAndroidETSII.pdf
124/139
Dojo Mobile, una extensin de Dojo Toolkit, proporciona unaserie de widgets, o componentes, optimizados para su uso en undispositivo mvil, como un telfono inteligente o una pizarradigital.
Los componentes son modelados en sus contrapartes nativas, ytendrn una apariencia nativa para aquellos que estnfamiliarizados con aplicaciones de telfonos inteligentes.
Los componentes son completamente personalizables utilizando
temas que, por ejemplo, permiten obtener un conjunto de estilospara los usuarios de iOS y otro distinto para los usuarios deAndroid.
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android HTML5+CSS3+Javascript
7/29/2019 TallerAndroidETSII.pdf
125/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android HTML5+CSS3+Javascript
7/29/2019 TallerAndroidETSII.pdf
126/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android HTML5+CSS3+Javascript
Appcelerator Titanium (http://www.appcelerator.com)
7/29/2019 TallerAndroidETSII.pdf
127/139
Appcelerator Titanium es una plataforma para desarrollaraplicaciones mviles y de escritorio utilizando tecnologasweb.
Appcelerator Titanium est desarrollado por Appcelerator Inc.y fue lanzado en diciembre del 2008.
En junio de 2009 se aadi soporte para el desarrollo deaplicaciones mviles para Android e iPhone.2
En abril de 2010 se aadi soporte para el desarrollo deaplicaciones para Ipad.3
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android HTML5+CSS3+Javascript
7/29/2019 TallerAndroidETSII.pdf
128/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android HTML5+CSS3+Javascript
7/29/2019 TallerAndroidETSII.pdf
129/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android HTML5+CSS3+Javascript
Caso prctico.- Desarrollando una aplicacin Android con
JQueryMobile
7/29/2019 TallerAndroidETSII.pdf
130/139
JQueryMobilePara comenzar crearemos un nuevo proyecto Android enEclipse.
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android HTML5+CSS3+Javascript
Creamos un objeto del tipo WebView que contendr la pagina
web:
7/29/2019 TallerAndroidETSII.pdf
131/139
web:
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android HTML5+CSS3+Javascript
Creamos el archivo .html con el cdigo de la pgina en
/assets/www/index html:
7/29/2019 TallerAndroidETSII.pdf
132/139
/assets/www/index.html:
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android HTML5+CSS3+Javascript
7/29/2019 TallerAndroidETSII.pdf
133/139
Introduccin al desarrollo de aplicaciones Android
Desarrollo de aplicaciones Android HTML5+CSS3+Javascript
7/29/2019 TallerAndroidETSII.pdf
134/139
Introduccin al desarrollo de aplicaciones Android
Ventajas y desventajas de aplicaciones nativas y web
Ventajas y desventajas de aplicaciones nativas y aplicaciones web
7/29/2019 TallerAndroidETSII.pdf
135/139
Tabla 1. Aplicaciones nativas
Ventajas
El cdigo es ms rpido y se ejecuta directamente en el sistema operativo deldispositivo sin la necesidad de una aplicacin de navegador intermediaria. Apuntar adistintos dispositivos requiere versiones completamente separadas de la misma
aplicacin debido a las diferencias en los lenguajes de programacin y APIs en losdiversos SDKs de plataformas.
Pueden ser implementadas en una tienda de aplicaciones, ofreciendo un modelo dedistribucin simple y costeable. Implementar aplicaciones nativas mediante unatienda de aplicaciones normalmente requiere la aprobacin de un tercero, lo quepuede hacer considerablemente ms lento el tiempo para llegar al mercado.
Los SDKs nativos tienen incontables dispositivos especficos para el dispositivo,normalmente completos con documentacin detallada y ejemplos. Lasactualizaciones, incluso las pequeas incrementales, requieren pasar por un procesode aprobacin, haciendo ms difcil entregar actualizaciones crticas a los usuarios.
Introduccin al desarrollo de aplicaciones Android
Ventajas y desventajas de aplicaciones nativas y web
Desventajas
7/29/2019 TallerAndroidETSII.pdf
136/139
Desventajas
Apuntar a distintos dispositivos requiere versionescompletamente separadas de la misma aplicacin debido a lasdiferencias en los lenguajes de programacin y APIs en los
diversos SDKs de plataformas. Implementar aplicaciones nativas mediante una tienda de
aplicaciones normalmente requiere la aprobacin de untercero, lo que puede hacer considerablemente ms lento eltiempo para llegar al mercado.
Las actualizaciones, incluso las pequeas incrementales,requieren pasar por un proceso de aprobacin, haciendo msdifcil entregar actualizaciones crticas a los usuarios.
Introduccin al desarrollo de aplicaciones Android
Ventajas y desventajas de aplicaciones nativas y web
Tabla 2. Aplicaciones web mviles
Ventajas
7/29/2019 TallerAndroidETSII.pdf
137/139
j Escribir una aplicacin para varias plataformas. No ser requieren aplicaciones
separadas para distintos dispositivos. Las aplicaciones distribuidas en la webpara ser consumidas por los navegadores no tienen acceso a muchas funcionesde dispositivo que las aplicaciones nativas s tienen (cmara, micrfono, etc.),aunque esto puede cambiar en el futuro.
Las aplicaciones pueden ser implementadas en la web sin una tienda deaplicaciones de terceros para su distribucin. Necesita proporcionar lainfraestructura para distribuir su aplicacin, lo que puede ser ms complicado ycostoso que usar una tienda de aplicaciones.
Usted mantiene todos los ingresos generados por sus aplicaciones (si cobra porellas). Las aplicaciones nunca se ejecutarn tan rpido como sus contrapartes
nativas, ya que son representadas en un navegador en lugar de ser ejecutadaspor el sistema operativo mismo.
Introduccin al desarrollo de aplicaciones Android
Ventajas y desventajas de aplicaciones nativas y web
Desventajas
Las aplicaciones distribuidas en la web para ser consumidas
7/29/2019 TallerAndroidETSII.pdf
138/139
Las aplicaciones distribuidas en la web para ser consumidaspor los navegadores no tienen acceso a muchas funciones dedispositivo que las aplicaciones nativas s tienen (cmara,micrfono, etc.), aunque esto puede cambiar en el futuro.
Necesita proporcionar la infraestructura para distribuir suaplicacin, lo que puede ser ms complicado y costoso queusar una tienda de aplicaciones.
Las aplicaciones nunca se ejecutarn tan rpido como suscontrapartes nativas, ya que son representadas en un
navegador en lugar de ser ejecutadas por el sistema operativomismo.
MUCHAS GRACIAS POR
7/29/2019 TallerAndroidETSII.pdf
139/139
MUCHAS GRACIAS PORSU ATENCIN
Sevilla, 13 de Noviembre de 2012
Escuela Tcnica Superior de Ingeniera Informtica
Antonio Francisco Domnguez [email protected]
@adominguezc
mailto:[email protected]:[email protected]