TALLER DE INICIACIÓN A ANDROID



Documentos relacionados
INTRODUCCIÓN.

U2. Introducción al desarrollo de aplicaciones móviles Smartphone y Android Desarrollo de Aplicaciones III TIC-UTSV Enero 2015 I.S.C.

Desarrollo de apps para móviles Android. Entorno de desarrollo

Tema 2: Introducción a Android

PRACTICAS DE ANDROID 12 - Lanzar un segundo "Activity" y pasar parámetros Problema:

Capitulo 4: Componentes Android

Programación Android. Alejandro Alcalde. elbauldelprogramador.com

Hola, Mundo con pretensiones

Android Creación de una aplicación sencilla: Forwarding - Página 1 -

Android Con Java. Ejercicio 2. Ciclo de Vida de las Actividades en Android. Ejercicio 2. Ciclo de Vida de las Actividades en Android

Mi Primer Proyecto en Android Studio

Capitulo 1: Plataforma Android

Desarrollo de apps para móviles Android. Conceptos básicos de las aplicaciones Android

ANDROID BÁSICO - E-LEARNING - EN LÍNEA

Crear una Activity en Android. Paso por paso

Unidad II. Interfaz Grafica (continuación ) Basado en clases de Ing. Carlos A. Aguilar

CAPÍTULO 1. Visión general y entorno de desarrollo... 21

Android 4 Principios del desarrollo de aplicaciones Java

Programación en Android LSUB, GSYC, URJC

CODIGO PROYECTO: AppPixelproServicioWeb Proyecto Android - Servicio Web

Android Basic Development Jorge Luis Hernández C.

MODELO DE IMPLEMENTACIÓN


Programación Android Completo

Índice. Herramientas de desarrollo. Historia Qué es Android? Arquitectura del sistema. Componentes Android Modelos de Negocio

TEMA 1. Introducción

Desarrollo de apps para móviles Android. Introducción a Android

Curso de Android con Java

Tutorial 1. Instalación del entorno de desarrollo de Android. Curso de perfeccionamiento: Programación de Android TUTORIAL 1: INSTALACIÓN DEL SOFTWARE


Tema 2: Diseño de servicios para móviles

Cookbook Creando un Proyecto Android (ADT-Eclipse)

Practica 1 Estructura De Un Proyecto En ANDROID

Android Professional

INTRODUCCIÓN A ANDROID

Presentación y objetivos

Principios de la programación en Android y API básico

Ejercicio 18. Configuración de Widgets en Android. Android Con Java. Ejercicio 18. Configuración de Widgets en Android. Curso de Android con Java

Anexo IV Configuración del Entorno de Desarrollo. Guía de puntos de interés de la Ciudad de Madrid

Android Guía de desarrollo de aplicaciones para Smartphones y Tabletas

Por medio de la presente nos complace presentar a ustedes nuestra propuesta de certificaciones de alta cobertura por volumen.

MANUAL DE USUARIO Guía de Entregas con Subversion de proyectos de movilidad

Índice. Prólogo Capítulo I. Introducción Capítulo II. Conceptos...19

online Programación para dispositivos Android 4.x

Interfaz de usuario Layout Vistas Adaptadores Eventos de interacción Estilos y temas

1. El entorno de desarrollo Eclipse

Grupo de Usuarios de Linux Universidad Carlos III de Madrid Jornadas de Noviembre Desarrollando Aplicaciones para Android.

CURSO INTERMEDIO DE PROGRAMACIÓN EN ANDROID

Unidad I. Introducción a la programación de Dispositivos Móviles

Desarrollo de Aplicaciones Web Por César Bustamante Gutiérrez. Módulo I: Conceptos Básicos Tema 1: Concepto iniciales.

Taller Caldum Introducción al desarrollo Android

Servicios Avanzados. Índice. 1 Servicios en segundo plano Notificaciones AppWidgets Publicación de software...8

Ejercicios - Servicios

Hola Android. Introducción al desarrollo de aplicaciones para Android

Cursos de orientación profesional

Android Programming. Código: S15 Duración: 25 horas OBJETIVOS

Introducción a la extensión de scripting en gvsig 2.0

SIEWEB. La intranet corporativa de SIE

App Android: Desarrollo de aplicaciones en Android.

DESARROLLADOR ANDROID INTRODUCCIÓN ANDROID. Ing. Marco Antonio Toscano Freire tw: martosfre

Instalación del entorno de desarrollo

IVista: es la interfaz con la que el Presentador se comunica con la vista.

Se trata de una herramienta de desarrollo visual muy fácil de usar, con la que incluso los no programadores podrán desarrollar sus aplicaciones.

COMO CREAR UN PROYECTO EN ANDROID. Para crear un proyecto en androide se necesitamos los siguientes software para realizar lo en un simulador.

Programación Android. Rafael Morón Abad

La obra se proporciona bajo los términos de esta licencia pública de Sisoft de México

Android 5 Principios del desarrollo de aplicaciones Java

PROGRAMA DE MATERIA DATOS DE IDENTIFICACIÓN DESCRIPCIÓN GENERAL OBJETIVO (S) GENERAL (ES) OPTATIVA PROFESIONALIZANTE II

Lista de siglas y acrónimos... xvii. Cómo leer este libro?... xix

Diseño de aplicaciones móviles seguras en Android.

Introducción al desarrollo para plataformas móviles con Phonegap

Ejercicio 4. Manejo de Layouts en Android. Android Con Java. Ejercicio 4. Manejo de Layouts en Android. Curso de Android con Java

Objetivos y Temario CURSO DESARROLLO APLICACIONES ANDROID 4.0

Guía del Curso Analista Programador Android: Business Android Apps Expert

ALMACENAMIENTOS DE DATOS EN ANDROID CON SQLITE

Person IP CRM Manual MOBILE

TOMO II. Línea de Investigación. Redes y Sistema Operativo. Nombre del egresado. Antonio Nicolás Rodríguez Andrade.

Programación Android. Rafael Morón Abad

Especialista TIC en Desarrollo y Programación de Aplicaciones para Android (Online)

GESTORES BIBLIOGRÁFICOS EN LA UNIVERSIDAD COMPLUTENSE: ENDNOTE WEB

Servicios - Ejercicios

Mini-guía: Gestión Backup

App para realizar consultas al Sistema de Información Estadística de Castilla y León

Cursos de orientación profesional

ESTRUCTURA Y COMPONENTES DE UNA APLICACIÓN ANDROID

OnePAD 700 Preguntas Frecuentes

1. INTRODUCCIÓN Acerca de este libro A quién va dirigido

Curso Tecnologías Móviles

Guía de instalación del software de la asignatura

Tecnología de Programación

Gestor de Citas Bibliográficas Zotero

Propuesta ANDROID ATC

CURSO ONLINE DE DESARROLLO DE APLICACIONES EN ANDROID NIVEL I

Android avanzado. Sesión 6: Depuración y pruebas. Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

Manual CMS Mobincube

Ejercicio 16. Mejora de Notificaciones en Android. Android Con Java. Ejercicio 16. Mejora de Notificaciones en Android. Curso de Android con Java

Unidad I. Introducción a la programación de Dispositivos Móviles (Continuación )

Temas. CopyRight emmmnmmma - All rights reserved 2

Prototipado y ejecución de aplicaciones SD con GeneXus

DoSport, una aplicación móvil para practicar deporte

Transcripción:

TALLER DE INICIACIÓN A ANDROID Eduardo Guzmán José Antonio Montenegro {guzman, monte}@lcc.uma.es Universidad de Málaga

Qué es Android? Una plataforma software y un sistema operativo para dispositivos móviles Basada en el kernel de Linux Desarrollado inicialmente por Google y posteriormente por la Open Handset Alliance (OHA) Permite la escritura de código en Java Permite la escritura de aplicaciones en otros lenguajes y compilarlos al código nativo ARM La plataforma fue anunciada el 5 de Noviembre de 2007 a la vez que se funda la OHA Está presente en móviles, tabletas, auriculares, Relojes, portátiles, netbooks, Google TV, etc.

Qué es Android? Crecimiento en cuanto a presencia en dispositivos

Qué es Android? Su nombre es un homenaje a la novela de Philip K. Dick Sueñan los Androides con Ovejas Eléctricas? Cada versión recibe el nombre en inglés de un postre siguiendo un orden alfabético (fuente: wikipedia): A: Apple Pie (v1.0), Tarta de manzana B: Banana Bread (v1.1), Pan de plátano C: Cupcake (v1.5), Magdalena glaseada D: Donut (v1.6), Rosquilla E: Éclair (v2.0/v2.1), pastel francés conocido en España como pepito, petisú, suso o canuto. F: Froyo (v2.2), (Abreviatura de «frozen yogurt») Yogur helado. G: Gingerbread (v2.3), Pan de jengibre. H: Honeycomb (v3.0/v3.1/v3.2), Panal de miel. I: Ice Cream Sandwich (v4.0), Sándwich de helado. J: Jelly Bean (v4.1/v4.2), Judía de gominola. K: Key Lime Pie (v4.3), Tarta de lima.

Qué es la Open Handset Alliance? Un consorcio de diversas compañías Objetivo: avanzar en el desarrollo de estándares para dispositivos móviles Desarrollan tecnologías que disminuirán significativamente el coste de desarrollo y distribución de dispositivos y servicios móviles

Arquitectura

La plataforma No es específica para un hardware concreto, sino que puede adaptarse a diversas configuraciones Sistema operativo: Utiliza linux para los drivers de los dispositivos, la gestión de la memoria, los procesos y la red. El siguiente nivel contiene las librerías nativas Android Están escritas en C/C++ aunque se invocan a través de interfaces Java Contiene: Gestor de superficie, gráficos 2D y 3D, codecs, una base de datos SQL (SQLite) y un navegador web nativo (WebKit) Máquina virtual Dalvik: ejecuta archivos dex que obtiene, en tiempo de compilación, a partir de clases estándar y archivos jar. Conectividad: Soporta comunicación wireless (GSM, 3G y redes Wi-Fi 802.11)

Desarrollo de aplicaciones Requisitos: Java Android SDK (Software Development Kit) La IDE Eclipse (opcional) Plugin: Android Developer Tools (ADT) Descargar en: http://developer.android.com/intl/es/sdk/index.html

Emulador: Creación de un dispositivo móvil virtual Android Virtual Device Manager

Estructura de un proyecto en Android Carpeta src: 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 Carpeta res: ficheros de recursos necesarios para el proyecto: imágenes, vídeos, cadenas de texto, etc. /res/drawable/: imágenes de la aplicación /res/layout/: ficheros de definición de las diferentes pantallas de la interfaz gráfica. /res/anim/: definición de las animaciones utilizadas por la aplicación. /res/menu/: definición de los menús de la aplicación. /res/values/: otros recursos como por ejemplo cadenas de texto (strings.xml), estilos (styles.xml), colores (colors.xml), etc. /res/xml/: ficheros XML utilizados por la aplicación. /res/raw/: recursos adicionales.

Estructura de un proyecto en Android Carpeta gen: contiene una serie de elementos de código generados automáticamente al compilar el proyecto. El más importante, quizás, es la clase R.java: contiene una serie de constantes con los ID de todos los recursos incluidos en la carpeta /res/ Podemos acceder fácilmente a estos recursos. Ejemplo: la constante R.drawable.icon contendrá el ID de la imagen icon.png contenida en la carpeta /res/drawable/ Archivo AndroidManifest.xml: Contiene la definición en XML de los aspectos principales de la aplicación, como por ejemplo: su identificación (nombre, versión, icono, ), sus componentes (pantallas, mensajes, ), o los permisos necesarios para su ejecución

Compilación y empaquetado de una aplicación Las aplicaciones una vez compiladas se convierten al formato DEX de Dalvik El código resultante junto con otros datos y recursos se empaquetan en un fichero APK (App PacKage) que es el que se empleará para distribuir e instalar la aplicación Cada APK debe ser firmado con un certificado que identifica al autor

Componentes de una aplicación Android Activity: representan el componente principal de la interfaz gráfica de una aplicación Android. Equivale a una ventana View: componentes básicos con los que se construye la interfaz gráfica (cuadros de texto, botones, listas desplegables, imágenes, etc.) Equivale a los controles Service: Componentes sin interfaz que se ejecutan en segundo plano pueden realizar cualquier tipo de acciones (actualizar datos, lanzar notificaciones, o mostrar activities) Content Provider: mecanismo para compartir datos entre aplicaciones Broadcast Receiver: componente destinado a detectar y reaccionar ante determinados mensajes o eventos globales generados por el sistema (batería baja, SMS recibido, tarjeta SD insertada, etc.) o por otra aplicaciones Intent: Elemento básico de comunicación asíncrona entre componentes Widget

Themes Para dar un estilo consistente a las aplicaciones en Android se utilizan los temas (Themes) El estilo especifica las propiedades visuales (color, altura, tamaño de fuente, relleno) de los elementos que caracterizan el aspecto de la interfaz Android proporciona 3 temas, para la versión Ice Cream Sandwich, de entre los cuales podemos elegir el que más nos guste para nuestra aplicación: Holo light Holo dark Holo light con ActionBar negra Eduardo Guzmán José Antonio Montenegro

Activity Lo más habitual es que una aplicación tenga varias activities En cada momento sólo habrá una activa El control se puede pasar de una activity a otra a través del método startactivity Intent intent = new Intent(this,NuevaActivity.class); startactivity(intent); Tanto para ceder el control de una activity a otra como para pasarle información, se utilizan objetos de la clase Intent Intent intent = new Intent(this, OtraActivity.class); intent.putextra("variable_integer", objeto.getid()); intent.putextra("variable_string", objeto.getnombre()); intent.putextra("objeto_float", objeto.getprecio()); startactivity(intent);

Activity Cómo indicamos recogemos la información enviada a otro Activity a través del Intent? Int vble_integer = getintent().getintextra("variable_integer"); String vble_string = getintent().getstringextra("variable_string"); float vble_float = getintent().getfloatextra("objeto_float");

Activity Cómo indicamos cuál es el Activity que se inicia cuando arranca la aplicación? <activity android:name=".exampleactivity" android:icon="@drawable/app_icon"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity>

Activity <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res /android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/text" android:layout_width="wrap_content android:layout_height="wrap_content android:text="hello, I am a TextView" /> <Button android:id="@+id/button android:layout_width="wrap_content android:layout_height="wrap_content android:text="hello, I am a Button" /> </LinearLayout> Asociado a cada Activity tiene que haber un fichero XML con la descripción de los componentes que contiene En la clase del Activity, cuando se crea, hay que vincular la descripción XML del aspecto que tendrá, con la clase que modelará su comportamiento public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main_layout); }

Activity setcontentview(r.layout.hello_activity); //cargará el archivo XML Eduardo Guzmán José Antonio Montenegro

Flujo de funcionamiento de un Activity

Activity public class ExampleActivity extends Activity { @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); // La activity está siendo creada. } @Override protected void onstart() { super.onstart(); // La activity va a ser visible. } @Override protected void onresume() { super.onresume(); // La activity es visible. }

Activity @Override protected void onpause() { super.onpause(); // Otra activity está recibiendo el foco (ésta va a ser pausada). } @Override protected void onstop() { super.onstop(); // La activity deja de ser visible (está ahora detenida). } @Override protected void ondestroy() { super.ondestroy(); // La activity va a ser destruida. } }

Componentes para construir interfaces Scrollable tabs Fixed tabs Lists

Componentes para construir interfaces Text Fields Spinners Buttons Sliders http://developer.android.com/guide/topics/ui/controls.html Eduardo Guzmán José Antonio Montenegro

Componentes para construir interfaces Progress bar Toggle Button Checkbox Picker Radio Button

View Clase que representa a los componentes para la construcción de las interfaces Ocupa un área rectangular en la pantalla y es responsable de la gestión de: el pintado del componente los eventos que se produzcan Operaciones que admite: Modificar sus propiedades. Ejemplo: cambiar el string que se muestra en un TextView Recibir el foco de la interfaz: requestfocus() Establecer de listeners de eventos Mostrar/ocultarse: setvisibility(int)

View Todo componente visual debe declararse en xml del Activity en el que se encuentra Es donde se especifican sus propiedades <Button android:id="@+id/my_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/my_button_text"/> La propiedad id será la que sirva para luego vincular esta declaración con el objeto correspondiente Button mybutton = (Button) findviewbyid(r.id.my_button); ViewGroup: Clase que modela los layouts, que no son más que contenedores de componentes que se organizan de acuerdo a una determina disposición

Eventos Las acciones que el usuario realiza se traducen en eventos sobre los elementos de la interfaz Android proporciona los mecanismos necesarios para realizar acciones a partir de esos eventos para ello se implementan los event listeners Las interfaces event listener tienen los siguientes métodos, que se activarán en función de la acción que realice el usuario: OnClick: Al tocar la pantalla OnLogClick: Tocar de manera prolongada OnFocusChange: Si se recibe o pierde el foco onkey: al pusar una tecla hardware ontouch: movimiento gestual en la pantalla oncreatecontextmenu: Tras un long click se crea un menú

Eventos // Implementación de OnClickListener private OnClickListener mcorkylistener = new OnClickListener() { public void onclick(view v) { // Hacer algo cuando el botón se pulsa } }; protected void oncreate(bundle savedvalues) { Button button = (Button)findViewById(R.id.corky); // Registramos el listener correspondiente al pulsado del botón button.setonclicklistener(mcorkylistener);... }

Toast Es una pequeña ventana flotante que permite mostrar un breve mensaje La ventana se ajusta automáticamente al tamaño del texto Context context = getapplicationcontext(); CharSequence text = "Hello toast!"; int duration = Toast.LENGTH_SHORT; Toast toast = Toast.makeText(context, text, duration); toast.show(); Puedo determinar cuál será la posición del Toast? toast.setgravity(gravity.top Gravity.LEFT, 0, 0);

Menús A partir de la versión 3.0 (API level 11) los dispositivos Android no tienen por qué tener un botón menú Se añaden los ActionBars Los menús se definen primero en XML en res/menu: <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/new_game" android:icon="@drawable/ic_new_game" android:title="@string/new_game" android:showasaction="ifroom"/> <item android:id="@+id/help" android:icon="@drawable/ic_help" android:title="@string/help" /> </menu>

Menús Cómo hacemos que se muestre el menú? @Override public boolean oncreateoptionsmenu(menu menu) { MenuInflater inflater = getmenuinflater(); inflater.inflate(r.menu.game_menu, menu); return true; }

Menús Cómo capturamos la acción de seleccionar una opción del menú? @Override public boolean onoptionsitemselected(menuitem item) { switch (item.getitemid()) { case R.id.opcion_menu1: // Realizar acción return true; case R.id.opcion_menu2: // Realizar acción return true; default: return super.onoptionsitemselected(item); } }

Preferencias Podemos almacenar pequeñas piezas de información (nombre de usuario, etc.) Se utiliza la API SharedPreferences Cómo almacenamos información? SharedPreferences sharedpref = getpreferences(context.mode_private); Editor editor = sharedpref.edit(); editor.putstring( clave", valor ); editor.putint( claveint", valorint ); editor.commit(); Cómo recuperamos lo almacenado? SharedPreferences sharedpref = getpreferences(context.mode_private); String str = sharedpref.getstring( clave", "); int num = sharedpref.getstring( claveint", 0); Valores por defecto

Cómo depurar Existe la posibilidad de generar logs de ejecución Android ofrece su propio servicio a través de la clase: android.util.log Todos los mensajes que se generan tienen el siguiente formato: Fecha/hora Gravedad del mensaje (Error, Warning, Info, Debug, Verbose) PID Etiqueta descriptiva (tag) Mensaje Log.e( Error, "Mensaje de error"); Log.w( Warning, "Mensaje de warning"); Log.i( Info, "Mensaje de información"); Log.d( Debug, "Mensaje de depuración"); Log.v( Verbose, "Mensaje de verbose");

Referencias Android developers. http://developer.android.com Desarrolladores de Android en español. http://groups.google.com/group/desarrolladores-android Lars Vogel. Android Development Tutorial. http://www.vogella.com/android.html Desarrollo en Android. http://www.sgoliver.net/blog/?p=1313 Bruce Scharlau, Google Android Mobile Computing. University of Aberdeen, 2010 Shane Conder & Lauren Darcey. Android Wireless Application Development. Addison-Wesley Professional (vol I y II). 2012

I Android SI ERES ESTUDIANTE DE LA E.T.S. INGENIERÍA INFORMÁTICA DE LA UMA, PARTICIPA INDIVIDUALMENTE O EN PAREJA EN ESTE CONCURSO, DESARROLLANDO UNA APLICACIÓN ORIGINAL EN ANDROID ORGANIZA: Patrocinan: BASES DEL CONCURSO EN: www.informatica.uma.es Síguenos también en: @InformaticaUMA