You are on page 1of 78

Curso de iniciacin al desarrollo de aplicaciones Android

Sergio Almagro Carrin

1. Introduccin a Android.
1.1. Evolucin de Android.

ndice

1.2. Qu es Android? 1.3. La arquitectura Android.

2. Preparacin del entorno de desarrollo


2.1. Instalacin de JDK y Eclipse 2.2. Instalacin del SDK de Android va ADT bundle 2.3. Gestin del idioma y configuracin del plugin ADT con el SDK de Android. 2.4. Instalar y utilizar el emulador para Android 2.5. Otros Kits para desarrollar en Android

3. Programacin Android
3.1. Modelo de aplicacin en Android. 3.2. Estructura de una aplicacin Android (.apk) 3.3. Primer ejemplo: Hola mundo. 3.4. Ciclo de vida de una actividad. 3.5. Desarrollo de una Actividad con AppInventor.

4. Creacin de una aplicacin para leer RSS

Una breve introduccin

1.1. Evolucin de Android 1.2. Qu es Android? 1.3. La arquitectura Android

1.1 Evolucin de Android

Origen de Android:
Android era un sistema operativo para mviles prcticamente desconocido hasta que en 2005 Google lo compr. Hasta noviembre de 2007 slo hubo rumores, pero en esa fecha se lanz la Open Handset Alliance, que agrupaba a muchos fabricantes de telfonos mviles, chipsets y Google y se proporcion la primera versin de Android, junto con el SDK para que los programadores empezaran a crear sus aplicaciones para este sistema. Aunque los inicios fueran un poco lentos, debido a que se lanz antes el sistema operativo que el primer mvil, rpidamente se ha colocado como el sistema operativo de mviles ms vendido del mundo, situacin que se alcanz en el ltimo trimestre de 2010. En 2011, acab dominando el mercado (50,9%) y hacia Julio de 2012, el S.O. Android registraba casi un milln de activaciones diarias a nivel mundial, ocupando a da de hoy en Espaa el 82% del mercado.

Podis consultar el grfico con la historia de Android en www.droidlife.com

1.1 Evolucin de Android

Qu ha motivado el xito de Android? 1. Ineficacia en sus competidores:


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.

2. Un planteamiento abierto, pero comercial.


El S.O. Android y su plataforma de desarrollo se basan en Licencia Apache: Open Source. Permite a los fabricantes aadir extensiones propietarias sin ponerlas en manos de la comunidad del software libre

Qu ha motivado el xito de Android?

1.1 Evolucin de Android

3. Una comunidad de desarrollo, gracias a sus completas APIs y documentacin ofrecida:


Cualquier fabricante puede 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.

Aspectos negativos:

1.1 Evolucin de Android

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.

Fragmentacin de Android, solucionada a partir de la versin 4 (ICS): Diversidad de versiones del sistema operacional as como diversas capacidades en los dispositivos (como diferentes resoluciones, tamaos y formatos de pantalla).

Seguridad: existe la posibilidad de que ciertas apps contengan malware. Este riesgo se da al activar la opcin de activar orgenes desconocidos e instalar apps que obtengamos fuera del Google Play Store.

Acerca de Android:

1.2 Qu es Android?

Android es un conjunto (o una pila) de software. Incluye un sistema operativo. El SDK dispone de herramientas y APIs para el desarrollo de aplicaciones. Se programa usando lenguaje JAVA. Ejecuta aplicaciones sobre una maquina virtual derivada de Java VM: DALVIK VM. Al tener un kernel Linux, Android comparte la misma filosofa abierta de mejralo como quieras. Al desarrollador esta filosofa le permite tener acceso a todos los aspectos internos del dispositivo, no slo mediante las herramientas oficiales de desarrollo, sino tambin otras ms avanzadas creadas por terceros.

Curiosidades: iOS y Android pueden ser configurado para un arranque dual en un iPhone o iPod Touch liberados con la ayuda de OpeniBoot e iDroid. Tambin es posible instalar Android en dispositivos Windows Mobile 6.5 como por ejemplo el HTC HD2. Recientemente, ha sido publicada una versin de ICS para Raspberry Pie.

1.3 Arquitectura de Android

Pila de software Android: qu elementos la integran?


Ncleo (branch) basado en linux (memoria, procesos, hardware). Ej: Siyah, DorimanX El ncleo incluye las libreras nativas .so de linux para acceder a los dispositivos. Bibliotecas/servicios open source (SQLite, WebKit, OpenGL, administrador de medios, etc). Entorno de ejecucin (runtime) basado en una mquina virtual Dalvik VM. Framework de desarrollo: pone interfaces a disposicin de las aplicaciones, a fn de acceder a los servicios y bibliotecas del sistema. Interfaz de usuario para pantalla (GUI), dispositivos de entrada, etc. Aplicaciones preinstaladas (Flash Player, Google API, etc.). Android Market, para obtener e instalar aplicaciones OTA (Over The Air). SKD: herramientas, plug-in para Eclipse, emulador, ejemplos, doc.

1.3 Arquitectura de Android

Pila de software Android: ROMs


Al paquete que integra ncleo, libreras, servicios, archivos de configuracin y aplicaciones se le denomina ROM. Una ROM proviene de una versin inicial de Android liberada por Google en cdigo abierto, a la cual el fabricante le aade sus libreras nativas (drivers), aplicaciones y entornos grficos para adaptarlo a su dispositivo y lanzarlo al mercado. Segn su procedencia, a las ROMs se les etiqueta como: Oficiales (stock ROMs) : Son compiladas por el fabricante y suelen modificarlas los operadores para introducir drivers optimizados para su red, aplicaciones y darle un aspecto corporativo (publicidad). Cocinadas ( AOSP y AOKP): derivan del cdigo abierto que Google proporciona, y el desarrollador no es un fabricante ni un ente oficial, sino un usuario experto. En el caso de las ROMs AOSP(Android Open Source Project), se busca la estabilidad limitndolas a la hora de configurarlas. Por otro lado, las AOKP (Android Open Kang Proyect) parten del desarrollo de una AOSP y aaden configuraciones ms avanzadas de diseo. Un ejemplo de ROMs cocinadas son las ROMs AOSP de CyanogenMod y MIUI y la propia ROM AOKP.

1.3 Arquitectura de Android

Pila de software Android: ROMs


Segn su modo de ejecutar las aplicaciones dentro de la mquina virtual tenemos: Odexed: Utilizan archivos cache (.odex) para acelerar la carga del S.O. Las aplicaciones APK (application packages) cuentan con un archivo .odex que tiene la funcionalidad de agilizar y comprimir los recursos que usar la aplicacin de antemano. Al arrancar, Android verificar la particin /cache para cargar esos archivos .odex y agilizar el proceso de ejecucin de las mismas. Con esos archivos odex el sistema sabe de antemano qu aplicaciones hay que ejecutar primero. Las ROM que vienen por defecto en el terminal (Stock) suelen ser odexed dado que sus aplicaciones del sistema tales como Calendario, Contactos, etc no han sido modificadas. Deodexed: son ROMs con aplicaciones recompiladas y personalizables, pero ms lentas. Las aplicaciones ya no utilizan archivos fuertemente comprimidos odex, sino que los recursos quedan almacenados en el interior de las mismas (ficheros .dex). Esto facilita tareas como el hacer themes ya que todos los recursos de una aplicacin estn dentro de s misma. Como desventaja, el proceso de arranque la primera vez tomar ms tiempo de lo esperado, pues ha de generar los archivos cach para la Dalvik VM adems de que la ROM deodexed dejar menos espacio libre en nuestro dispositivo.

1.3 Arquitectura de Android

Como acta Android en un tablet / smartphone?


Firmware del dispositivo. Comprende varias partes: Cargador de arranque (Bootloader): un software desarrollado por el fabricante del dispositivo y no se puede modificar por defecto. Cuenta con un mecanismo para actualizar partes del firmware (recovery) y (no siempre) con otro para arranque en caso de error (brick). Ncleo: como hemos dicho, se basa en el kernel de Linux y permite arrancar un proceso (init.d) que inicia la Dalvik VM, la carga de los drivers y otro procesos del sistema. Mdem: Capa de drivers para el manejo de interfaces de radio (WiFi, BT,GPS, telefona, etc.). ROM: Aplicaciones y ficheros de configuracin del S.O.

1.3 Arquitectura de Android

Proceso de arranque:
Es importante conocerlo para el manejo avanzado de los dispositivos. Su funcionamiento, similar al de un PC, consta de las siguientes fases: Activacin de la CPU Carga el bootloader. El bootloader carga el kernel en memoria, el cual es personalizable, permitiendo as de instalar ROMs personalizadas. Una vez carga en la RAM el ncleo, arranca el proceso init, dando paso a la ejecucin de los demonios de sistema y al proceso Zygote, responsable de mantener en marcha la Dalvik VM y los procesos del S.O. como p. ej. la interfaz de usuario.
CPU activa Bootloader Ncleo Linux Dalvik VM + ROM

1.3 Arquitectura de Android

Arquitectura de Android:
Est formada por varias capas que facilitan la creacin de aplicaciones. Acceso a las capas ms bajas mediante el uso de libreras para evitar programar a bajo nivel las funcionalidades necesarias para que una aplicacin haga uso de los componentes de hardware de los telfonos. Cada una de las capas utiliza elementos de la capa inferior para realizar sus funciones, es por ello que a este modelo de arquitectura se le conoce tambin como pila.

1.3 Arquitectura de Android

Elementos de la arquitectura: Ncleo


El ncleo del sistema operativo Android es un kernel Linux versin 2.6, similar al que puede incluir cualquier distribucin de Linux, como Ubuntu, solo que adaptado a las caractersticas del hardware en el que se ejecutar Android (normalmente, un smartphone). Proporciona una capa de abstraccin para los elementos hardware a los que tienen que acceder las aplicaciones. Esto permite que se pueda acceder a esos componentes sin necesidad de conocer el modelo o caractersticas precisas de los que estn instalados en cada telfono. De esta forma, si una aplicacin necesita, por ejemplo, la brjula, podr utilizar la que incluya el telfono, sea cual sea. Para cada elemento hardware del telfono existe un controlador (o driver) dentro del kernel que permite utilizarlo desde el software. Adems de proporcionar controladores hardware, el kernel se encarga de gestionar los diferentes recursos del telfono (energa, memoria, ) y del sistema operativo en s: procesos, elementos de comunicacin (networking), etc.

1.3 Arquitectura de Android

Elementos de la arquitectura: Bibliotecas (I)


La capa que se sita justo sobre el kernel la componen las bibliotecas nativas de Android (tambin mal llamadas libreras, por el trmino ingls libraries). Estn escritas en C o C++ y compiladas para la arquitectura hardware especfica del telfono, tarea que normalmente realiza el fabricante, que tambin se encarga de instalarlas en el terminal antes de ponerlo a la venta. Su cometido: proporcionar funcionalidad a las aplicaciones, para tareas que se repiten con frecuencia, evitando tener que codificarlas cada vez y garantizando que se llevan a cabo de la forma ms eficiente (en teora, al menos).

Estas son algunas de las bibliotecas que se incluyen habitualmente: Gestor de superficies (Surface Manager): se encarga de componer las imgenes que se muestran en la pantalla a partir de capas grficas 2D y 3D. Cada vez que la aplicacin pretende dibujar algo en la pantalla, la biblioteca no lo hace directamente sobre ella. En vez de eso, realiza los cambios en imgenes (mapas de bits) que almacena en memoria y que despus combina para formar la imagen final que se enva a pantalla. Esto permite realizar con facilidad diversos efectos: superposicin de elementos, transparencias, transiciones, animaciones, etc. SGL (Scalable Graphics Library): desarrollada por Skia (empresa adquirida por Google en 2005) y utilizada tanto en Android como en Chrome (navegador web de Google), se encarga de representar elementos en dos dimensiones. Es el motor grfico 2D de Android.

1.3 Arquitectura de Android

Elementos de la arquitectura: Bibliotecas (II)


OpenGL | ES (OpenGL for Embedded Systems): motor grfico 3D basado en las APIs (Application Program Interface) de OpenGL ES 1.0, 1.1 (desde la versin 1.6 de Android) y 2.0 (desde la versin 2.2 de Android). Utiliza aceleracin hardware (si el telfono la proporciona) o un motor software altamente optimizado (o eso dice Google) cuando no la hay. Bibliotecas multimedia: basadas en OpenCORE, permiten visualizar, reproducir e incluso grabar numerosos formatos de imagen, vdeo y audio como JPG, GIF, PNG, MPEG4, AVC (H.264), MP3, AAC o AMR. WebKit: motor web utilizado por el navegador (tanto como aplicacin independiente como embebido en otras aplicaciones). Es el mismo motor que utilizan Google Chrome y Safari (el navegador de Apple, tanto en Mac como en el iPhone). SSL (Secure Sockets Layer): proporciona seguridad al acceder a Internet por medio de criptografa. FreeType: permite mostrar fuentes tipogrficas, tanto basadas en mapas de bits como vectoriales. SQLite: motor de bases de datos relacionales, disponible para todas las aplicaciones. Biblioteca C de sistema (libc): est basada en la implementacin de Berkeley Software Distribution (BSD), pero optimizada para sistemas Linux embebidos. Proporciona funcionalidad bsica para la ejecucin de las aplicaciones.

Elementos de la arquitectura: Entorno de ejecucin.

1.3 Arquitectura de Android

No se considera una capa en s mismo, dado que tambin est formado por bibliotecas. En concreto, las bibliotecas esenciales de Android, que incluyen la mayora de la funcionalidad de las bibliotecas habituales de Java as como otras especficas de Android. Su componente principal es la mquina virtual Dalvik: ejecuta todas y cada una de las aplicaciones no nativas de Android. Las aplicaciones se codifican normalmente en Java y son compiladas, pero no para generar un ejecutable binario compatible con la arquitectura hardware especfica del dispositivo Android. En lugar de eso, se compilan en un formato especfico para la mquina virtual Dalvik, que es la que las ejecuta. Esto permite compilar una nica vez las aplicaciones y distribuirlas ya compiladas teniendo la total garanta de que podrn ejecutarse en cualquier dispositivo Android que disponga de la versin mnima del sistema operativo que requiera cada aplicacin. Aunque las aplicaciones se escriben en Java, Dalvik no es realmente una mquina virtual Java. Es decir, no es compatible con el bytecode Java (instrucciones ejecutables independientes de la arquitectura hardware) que ejecutan las mquinas virtuales Java normales.

Elementos de la arquitectura: Entorno de ejecucin (II).

1.3 Arquitectura de Android

Java se usa nicamente como lenguaje de programacin, pero los ejecutables que se generan con el SDK de Android no son ejecutables Java convencionales y, por lo tanto, no se pueden ejecutar en mquinas virtuales Java convencionales. Durante el proceso de compilacin de los programas Java (normalmente archivos .java) s que se genera, de forma intermedia, el bytecode habitual (archivos .class). Pero esos archivos son convertidos al formato especfico de Dalvik en el proceso final (.dex, de Dalvik executable). Google hace esto por una cuestin de optimizacin. Los archivos .dex son mucho ms compactos que los .class equivalentes (hasta un 50% menos de tamao), lo que permite ahorrar espacio en el telfono (algo siempre escaso) y acelerar el proceso de carga. Adems, a diferencia de las mquinas virtuales tradicionales, Dalvik se basa en registros en lugar de una pila para almacenar los datos, lo que requiere menos instrucciones. Esto permite ejecuciones ms rpidas en un entorno con menos recursos. Las aplicaciones Android se ejecutan cada una en su propia instancia de la mquina virtual Dalvik, evitando as interferencias entre ellas, y tienen acceso a todas las bibliotecas mencionadas antes y, a travs de ellas, al hardware y al resto de recursos gestionados por el kernel.

Elementos de la arquitectura: Marco de aplicacin

1.3 Arquitectura de Android

Esta capa la forman todas las clases y servicios que utilizan directamente las aplicaciones para realizar sus funciones y que, obviamente, se apoyan en las bibliotecas y en el entorno de ejecucin que ya hemos detallado. La mayora de los componentes de esta capa son bibliotecas Java que acceden a los recursos a travs de la mquina virtual Dalvik. Entre las ms importantes se encuentran las siguientes: Administrador de actividades (Activity Manager): controla el ciclo de vida de las actividades y la propia pila de actividades (se pueden definir como las ventanas que se muestran en la pantalla del dispositivo). Administrador de ventanas (Windows Manager): se encarga de organizar lo que se muestra en pantalla, creando superficies que pueden ser rellenadas por las actividades. Proveedor de contenidos (Content Provider): permite encapsular un conjunto de datos que va a ser compartido entre aplicaciones creando una capa de abstraccin que hace accesible dichos datos sin perder el control sobre cmo se accede a la informacin. Por ejemplo, uno de los proveedores de contenido existentes permite a las aplicaciones acceder a los contactos almacenados en el telfono. Vistas (Views): son los controles que se suelen incluir dentro de las ventanas. Entre ellas encontramos botones, cuadros de texto, listas, y otras como un navegador web o un visor de GMaps.

Elementos de la arquitectura: Marco de aplicacin (II)

1.3 Arquitectura de Android

Administrador de notificaciones (Notification Manager): proporciona servicios para notificar al usuario cuando algo requiera su atencin. Ejemplos: alerta en la barra de estado, emitir sonidos, activar el vibrador o hacer pardear los LEDs. Administrador de paquetes (Package Manager): Maneja informacin sobre los paquetes actualmente instalados, adems de gestionar la instalacin de nuevos paquetes. Administrador de telefona (Telephony Manager): proporciona acceso a la pila hardware de telefona del dispositivo Android. Administrador de recursos (Resource Manager): proporciona acceso elementos propios de una aplicacin que se incluyen directamente en el cdigo: cadenas de texto en diferentes idiomas, imgenes, etc. Personaliza la aplicacin en funcin del idioma o la resolucin de pantalla que tenga, por ejemplo. Administrador de ubicaciones (Location Manager): permite determinar la posicin geogrfica mediante GPS o las redes disponibles. Administrador de sensores (Sensor Manager): permite gestionar todos los sensores hardware disponibles: acelermetro, giroscopio, etc. Cmara: proporciona acceso a las cmaras del dispositivo Android, tanto para tomar fotografas como para grabar vdeo. Multimedia: conjunto de bibliotecas que permiten reproducir y visualizar audio, vdeo e imgenes en el dispositivo.

Elementos de la arquitectura: Aplicaciones

1.3 Arquitectura de Android

La capa superior de esta pila software la forman las aplicaciones. En este saco se incluyen todas las aplicaciones del dispositivo, tanto las que tienen interfaz de usuario como las que no, tanto las nativas (programadas en C o C++) como las administradas (programadas en Java), tanto las que vienen de serie con el dispositivo como las instaladas por el usuario. Aqu est tambin la aplicacin principal del sistema: Inicio (Home), tambin llamada a veces lanzador (launcher), porque es la que permite ejecutar otras aplicaciones proporcionando la lista de aplicaciones instaladas y mostrando diferentes escritorios donde se pueden colocar accesos directos a aplicaciones o incluso pequeas aplicaciones incrustadas o widgets, que son tambin aplicaciones de esta capa. Lo principal a tener en cuenta de esta arquitectura es que todas las aplicaciones utilizan el mismo marco de aplicacin para acceder a los servicios que proporciona el sistema operativo. Esto implica dos cosas: que podemos crear aplicaciones que usen los mismos recursos que usan las aplicaciones nativas (nada est reservado o inaccesible). que podemos reemplazar cualquiera de las aplicaciones del telfono por otra de nuestra eleccin. Este es el verdadero potencial de Android y lo que lo diferencia de su competencia: control total por parte del usuario del software que se ejecuta en su telfono.

Preparacin del entorno de desarrollo

2.1. Instalacin de JDK y Eclipse 2.2. Instalacin del SDK de Android va ADT bundle 2.3. Gestin del idioma y configuracin del plugin ADT con el SDK de Android. 2.4. Instalar y utilizar el emulador para Android

2.1. Consiguiendo la Instalacin de JDK y Eclipse (Juno)


Para tener un kit de desarrollo bsico, necesitaremos: 1. Instalar el JRE o el JDK de Java, en su versin ms reciente: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html Se descarga en esta web, tras aceptar el "Oracle Binary Code License Agreement for Java SE" (solo es pulsar el radiobutton y elegir nuestra plataforma). 2. La versin de Eclipse para desarrollo de mviles (versin para arquitecturas x86 - 32bits, bajo S.O. Windows) http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/ release/juno/SR1/eclipse-mobile-juno-SR1-win32.zip 3. Instalar el idioma, ya que permite avanzar ms rpido, aunque es recomendable adaptarse al Ingls. 4. Instalar el SDK de Android, para lo cual podemos descargar directamente desde http://developer.android.com/sdk/index.html y enlazarlo con Eclipse (tedioso L). En nuestro caso, como vamos a desarrollar con Eclipse, esto no es necesario ya que recientemente google developers ha colgado el adt-bundle, un todo en uno con Eclipse+SKD tools+Plugin ADT y en principio, perfectamente configurado para la ultima version de Android J.

2.2. Instalacin del SDK de Android va ADT bundle


Una vez hemos preparado una instalacin de Eclipse, debemos instalar el SDK de Android, necesario para compilar las aplicaciones y los paquetes .apk: 1. Entrar con el navegador a http://developer.android.com/sdk/index.html 2. En esa pgina, aparece el enlace (boton azul grande) para la descarga del ADT bundle, un paquete que contiene las 3 piezas esenciales para desarrollo en Android con el IDE eclipse ya incluido J. 3. Aceptaremos las condiciones y trminos legales para poder descargar la versin que se adapte a nuestro PC, 32 o 64 bits. Para el curso os facilitaremos el bundle para las plataformas Windows 32 bits o 64 bits, de forma que lo podis instalar en cualquier lugar donde decidis desarrollar.

2.3. Gestin del idioma en Eclipse

Una vez instalado Eclipse, procederemos a configurar el plugin del idioma. Estas traducciones no vienen dadas por los desarrolladores del IDE, sino que las obtendremos desde http://babel.eclipse.org/babel/ En primer lugar, debemos pulsar la barra Help del IDE.

2.3. Gestin del idioma y configuracin del plugin ADT.


Estos son los pasos a seguir para cambiar el idioma: 1. Pulsar en Help y click en Install new software 2. Eclipse nos mostrar una ventana en la que nos pregunta por la URL del recurso a instalar, en este caso debemos agregar: http://download.eclipse.org/technology/babel/ update-site/R0.10.0/juno 3. Eclipse comenzar a descargar los recursos de la URL y entonces los mostrar en una lista.

2.3. Gestin del idioma y configuracin del plugin ADT.


4. Elegiremos de la lista el babel language Packs in Spanish. 5. Nos pedir que confirmemos la instalacin, ya que es un software no desarrollado por Eclipse y comenzar a instalarse. 6. Una vez terminado, Eclipse solicitar reiniciarse. 7. Finalmente, en el siguiente reinicio el idioma ya debe haber cambiado.

2.3. Gestin del idioma y configuracin del plugin ADT.


Proceso de instalacin y resultado: ahora ya lo tenemos en Espaol.

2.3. Gestin del idioma y configuracin del plugin ADT.


Estos son los pasos a seguir para configurar el plugin ADT (Android Developers Tools) Para configurar el entorno de desarrollo SDK, debemos abrir la pestaa Ventana Android SDK manager. Desde ah podremos instalar la versin del API que necesitemos para desarrollar una aplicacin para una o varias versiones de Android. A fecha de este curso, podemos instalar hasta el API 17 (versin 4.2), as como unas cuantas herramientas extra.

2.3. Gestin del idioma y configuracin del plugin ADT.


Como el bundle ya viene equipado con lo bsico para desarrollar, tan solo es recomendable instalar la documentacin y algunos ejemplos que nos sirvan de ayuda Si nos fijamos, ya tenemos instalados algunos elementos del SDK

Tan solo resta aceptar las condiciones y trminos (pulsa Accept All) y esperar a que se descargue todo para empezar a trabajar.

2.4. Instalar y utilizar el emulador para Android


A la hora de desarrollar y probar aplicaciones, a veces es recomendable utilizar un dispositivo virtual y que se ejecute todo bajo la plataforma donde estamos trabajando, en este caso un PC. Para ello, existen los emuladores de android, como el que nuestro IDE trae por defecto en caso de haber instalado el bundle.

El emulador ms recomendable para desarrollar es este que trae consigo el bundle, pero aqu os vamos a mostrar otro que podis utilizar como segundo recurso para probar y depurar aplicaciones Android: el emulador Bluestacks. La ventaja, es que es capaz de sincronizar las aplicaciones de nuestro mvil o tablet con el emulador (ojo! Puede llegar a ocupar mucho espacio en el disco duro si lo sincronizas).

2.4. Configurando el emulador del bundle ADT.


Para trabajar en una plataforma Android, debemos tener claro cual es el dispositivo para el que vamos a desarrollar, debido a las diferentes configuraciones de resolucin y de memoria principalmente, el emulador debe ser personalizado, a fn de tener un cierto parecido con el dispositivo real y as poder probar las aplicaciones en el entorno virtual adecuado. Para esto, debemos definir un nuevo Android Virtual Device. Esto se hace en la pestaa Ventana Android Virtual Device Manager. Cuando pulsamos la opcin del men, aparecer una ventana para gestionar los diferentes dispositivos virtuales para emular. Afortunadamente, el plugin ADT ya trae configuraciones para ciertos dispositivos reales, por ejemplo el HTC Nexus S. Podemos darle a New y generar un dispositivo de prueba, eso si, llevando cuidado para ponerle el nombre, pues no acepta espacios. En el ejemplo de la figura, le hemos puesto emulador_de_Nexus_S.

2.4. Configurando el emulador del bundle ADT.


Si nos interesa emular un tablet, Google TV u otro dispositivo con unas prestaciones distintas a las de los que trae el ADT plugin, podemos editar uno de forma manual e incluirlo en la lista del AVD Manager.

2.4. Configurando el emulador Bluestacks.


Para instalar el emulador bluestacks, tan solo hay que acceder a http://bluestacks.com/ y descargarse el paquete de instalacion msi para windows.

2.5. Otros Kits para desarrollar en Android


Todo el desarrollo de aplicaciones en Android no se hace en Java, hay una parte que de aplicaciones como Juegos y servicios delicados, por su alta exigencia de recursos que requiere de compilacin en cdigo nativo. Para ello se puede utilizar el NDK (native development kit) que Google facilita en la misma web de desarrolladores http://developer.android.com/tools/sdk/ndk/index.html Has de saber que al ser un sistema Linux, Android permite ejecutar scripts de shell y aplicaciones nativas para Linux. Un ejemplo de ello es el paquete de aplicaciones aircrack-ng que permiten, de momento, utilizar un dispositivo con chipset Broadcomm (Galaxy S2, Nexus One,etc.) para hacer auditorias Wifi. Tambin podemos ejecutar desde consola aplicaciones Dalvik (las apk que vamos a desarrollar) gracias al comando am start.

Programacin Android

3.1. Modelo de aplicacin en Android. 3.2. Estructura de una aplicacin Android (.apk) 3.3. Primer ejemplo: Hola mundo. 3.4. Ciclo de vida de una actividad. 3.5. Desarrollo de una Actividad con AppInventor.

3.1 Modelo de aplicaciones

Aplicaciones Es un paquete con componentes de Android, vque vienen comprimidos en un formato denominado Android PacKage (apk). Cada aplicacin es independiente Se ejecuta en su propio proceso de Linux Cada proceso tiene su propia mquina virtual de Java Cada aplicacin tiene asignado un ID de usuario de Linux Solo ese ID de usuario tiene permisos para acceder a los archivos de la aplicacin Componentes de una aplicacin Actividades Servicios Broadcast receivers Content providers

3.1 Modelo de aplicaciones

Actividad: Presenta una interfaz de usuario enfocada en algo que el usuario puede realizar, como elegir un contacto, seleccionar una fotografa, Aplicacin = conjunto de actividades independientes que trabajan juntas. Una de las actividades se marca como la inicial al arrancar una aplicacin. Servicio: No tiene UI y se ejecuta en background por periodo indefinido. Ej. Reproductor de msica Expone una interfaz para interactuar o Ej. Parar la reproduccin de msica Es posible acceder desde otros componentes o aplicaciones

3.1 Modelo de aplicaciones

Broadcast receivers: No realiza ningn accin por si mismo. Recibe y reacciona ante anuncios de tipo broadcast. Existen muchos originados por el sistema o Ej. Batera baja Las aplicaciones puede lanzar un broadcast No tienen UI, aunque pueden iniciar una actividad para atender al anuncio Content providers: Expone un conjunto especifico de datos a otras aplicaciones Los datos pueden estar almacenados en cualquier lugar: fichero, SQLite, internet, Hace uso de un ContentResolver para acceder a los datos expuestos por un content provider

3.1 Modelo de aplicaciones

Activacin de los componentes:


Content providers Al recibir una peticin desde un ContentResolver Actividades, Servicios y Broadcast Receivers Al recibir un mensaje asncrono llamado Intencin: En actividades y servicios Representa la intencin de querer realizar algo Ej. La intencin de seleccionar un contacto como remitente En broadcast receivers Representa el anuncio del comienzo de una accin Ej. Anunciar que se ha pulsado el botn de la cmara

3.2 Estructura de una aplicacin

Estructura de un archivo instalador (formato .apk).


Un archivo con extensin .apk es un paquete para el sistema operativo Android. Este formato es una variante del formato JAR de Java y se usa para distribuir e instalar componentes empaquetados para la plataforma Android para smartphones y tablets. Un archivo .apk normalmente contiene lo siguiente:
AndroidManifest.xml classes.dex resources.arsc res (carpeta) META-INF (carpeta) lib (carpeta)

El Formato APK es bsicamente un archivo comprimido ZIP con diferente extensin por lo cual pueden ser abiertos e inspeccionados usando un software archivador de ficheros como 7-Zip, Winzip, WinRAR o Ark.

3.2 Estructura de una aplicacin

El Fichero manifest.xml
Propiedades de la aplicacin Declaracin de todos los componentes existentes en la aplicacin Intent filters Un componente indica a intenciones puede responder Declaracin de los permisos requeridos uses-permission Acceso a determinado, estado del telefono, acceso a internet, etc. Los permisos que requiere se muestran al usuario al instalar la aplicacin.

Declaracin de permisos propios Restringe que aplicaciones pueden hacer uso de un determinado componente

Estructura de una actividad / proyecto.

3.2 Estructura de una aplicacin

Estos son los ficheros que podemos encontrar en un proyecto de Eclipse ADT. res/anim = animaciones del proyecto res/color = colores usados en la aplicacin res/drawable = imgenes usadas en el proyecto res/layout = las interfaces graficas de usuario res/menu = la estructura de los mens res/raw = Cualquier fichero que no encaje en el resto de directorios y que queramos referenciar desde R.java res/values = los valores como cadenas de texto que queramos referenciar desde R.java res/xml = los fichero de configuracin de nuestra aplicacin tales como preferencias, widget o metadatos. libs/ = librerias necesitadas por el proyecto. .jar AndroidManifest.xml = fichero que describe nuestra aplicacin. Detalla los componentes de esta, sus permisos y librerias externa. build.properties Fichero de configuracin del proyecto. build.xml Fichero de configuracin para la compilacin del proyecto. ant

Proyecto: HolaMundo

3.3. Hola mundo.apk

1. Eclipse seleccionar File > New > Project y aparecer una nueva ventana en la que hay que seleccionar Android Project. 2. A continuacin hay que indicar la siguiente informacin y hacer clic en Finish: Project name (nombre del proyecto): HolaMundo Build Target: se debe seleccionar al menos una plataforma. Application name (ttulo de la aplicacin): Hello, Android Package name (paquete de la aplicacin, debe ser nico entre los paquetes instalados en un sistema Android): com.example.helloandroid Create Activity (nombre de la clase stub generada por el plugin, subclase de la clase Activity de Android, y utilizada para ejecutar acciones): HelloAndroid Min SDK version: indicar el mnimo nivel de API requerido por la aplicacin. Si no se indica aparecer el siguiente mensaje al ejecutar la aplicacin:

WARNING: Application does not specify an API level requirement!

3.3. Hola mundo.apk

3.3. Hola mundo.apk

Proyecto: HolaMundo
El proyecto se habr creado y dentro de src contendr la clase HolaMundo.java con el siguiente contenido:

3.3. Hola mundo.apk

package com.example.holamundo; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class Hola_Mundo extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_hola__mundo); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_hola__mundo, menu); return true; } }

La clase generada hereda de la clase Activity de Android, que es el tipo de clase que se utiliza para ejecutar alguna accin. Una aplicacin puede tener definidas varias actividades pero un usuario nicamente interacta con una de ellas a la vez. El mtodo onCreate() ser llamado por el sistema Android cuando la actividad se inicia, y es donde se debe realizar toda la inicializacin y configuracin de la interfaz de usuario.

Proyecto: HolaMundo

3.3. Hola mundo.apk

Interfaz de usuario El cdigo generado se completa (lneas modificadas en negrita) para incluir la interfaz de usuario que mostrar el saludo.
package com.example.holamundo; import android.os.Bundle; import android.app.Activity; import android.view.Menu;

import android.widget.TextView;
public class Hola_Mundo extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_hola__mundo); TextView tv = new TextView(this);

tv.setText("Hello, Android"); setContentView(tv);


} ...

En este ejemplo se utiliza la clase TextView porque es la subclase que maneja los textos. Al objeto TextView se le pasa como parmetro un objeto de tipo Context, el cual ofrece servicios como la resolucin de recursos, la obtencin de acceso a base de datos, y preferencias. Como la clase Activity hereda de Context, y a su vez la clase Hola_Mundo es una subclase de Activity, es tambin Context y por lo tanto se puede utilizar this como parmetro.

Proyecto: HolaMundo

3.3. Hola mundo.apk

A continuacin, se define el contenido del texto con setText(). Por ltimo, se pasa la TextView a setContentView() con el fin de mostrarla como el contenido de la interfaz de usuario de la actividad. Si la actividad no llamara a este mtodo, entonces no habra interfaz de usuario y el sistema mostrara una pantalla en blanco. Ejecucin de la aplicacin El siguiente paso es ejecutar la aplicacin mediante la opcin Run > Run de Eclipse mientras estamos posicionados sobre el proyecto.

Proyecto: HolaMundo

3.3. Hola mundo.apk

Ejecucin de la aplicacin Finalmente, tras elegir el modo Android Application, se nos ejecutar el emulador que hemos configurado anteriormente (Nexus S) y veremos la aplicacin ejecutndose.

3.4. Ciclo de vida de una actividad

Ciclo de vida de las actividades


Como hemos visto, cada pantalla de una aplicacin se implementa como una actividad Moverse a la siguiente actividad supone llamar al mtodo startActivity(), startActivityForResult(). Una aplicacin puede reutilizar actividades de Android o de otras aplicaciones. onCreate: Se llama a este mtodo cuando se crea la actividad. setContentView: Asigna a la vista el contenido del recurso layout. R.layout.main: Recurso de layout de la aplicacin. Pero, el entorno Android debe atender a eventos de cualquier clase (llamadas, alarmas, etc.) La aplicaciones en Android no tienen control de su ciclo de vida. Deben estar preparadas para su terminacin en cualquier momento. Cada aplicacin se ejecuta en su propio proceso. El runtime de Android gestiona el proceso de cada aplicacin y por extensin de cada Actividad que contenga.

3.4. Ciclo de vida de una actividad

Ciclo de vida de las actividades


Durante la vida de una actividad esta pasa por una serie de estados Para la clase Activity existen mtodos para ser redefinidos (override) en sus clases derivadas que incluyen el cdigo a ejecutar en las transiciones entre estados. Los mtodos redefinidos siempre deben llamar al mtodo de la superclase:


protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_hola__mundo); TextView tv = new TextView(this); tv.setText("Hello, Android"); setContentView(tv); }

Estados de una actividad:


Activo (Running): La actividad est encima de la pila, es visible, tiene el foco. Pausado (Paused): La actividad es visible pero no tiene el foco. Se alcanza este estado cuando pasa a activa otra actividad transparente o que no ocupa toda la pantalla. Cuando una Actividad es tapada por completo pasa a estar parada. Parado (Stopped): Cuando la actividad no es visible. Se recomienda guardar el estado de la ui, preferencias, etc Destruido (Destroyed): Cuando la Actividad termina, o es matada por el runtime de Android. Sale de la Pila de Actividades.

3.4. Ciclo de vida de una actividad

Mtodos de transicin de estados


onCreate(Bundle):Se invoca cuando la Actividad se arranca por primera vez. Se utiliza para tareas de inicializacin como crear la interfaz de usuario de la Actividad. Su parmetro es null o informacin de estado guardada previamente por onSaveInstanceState(). onStart(): Se invoca cuando la Actividad va a ser mostrada al usuario. onResume() :Se invoca cuando la actividad va a empezar a interactuar con el usuario. onPause(): Se invoca cuando la actividad va a pasar al fondo porque otra actividad ha sido lanzada para ponerse delante. Se utiliza para guardar el estado de la actividad. onStop() : Se invoca cuando la actividad va a dejar de ser visible y no se necesitar durante un tiempo. Si hay escasez de recursos en el sistema, este mtodo podra no llegar a ser invocado y la actividad ser destruida directamente. onRestart(): Se invoca cuando una actividad parada pasa a estar activa onDestory(): Se invoca cuando la Actividad va a ser destruida. Si hay escasez de recursos en el sistema, este mtodo podra no llegar a ser invocado y la actividad ser destruida directamente. onSaveInstanceState(Bundle) :Se invoca para permitir a la actividad guardar su estado de la ui. Normalmente no necesita ser redefinido onRestoreInstanceState(Bundle): Se invoca para recuperar el estado guardado por onSaveInstanceState(). Normalmente no necesita ser redefinido.

3.4. Ciclo de vida de una actividad


Ciclo de vida de las actividades

3.5. Creacin app con AppInventor

AppInventor es una aplicacin web que tiene como objetivo facilitar la programacin en Android. Est pensado y diseado de manera que una persona que no tenga ni idea de programar pueda crearse su aplicacin Android en media hora. Esto es til de cara a implementar una aplicacin de prueba, o una GUI sencilla, que despues podemos ampliar/mejorar en Eclipse.

Inventor consta de 2 apartados principales.

3.5. Creacin app con AppInventor

El primero es la aplicacin web en la que podrs disear la interfaz grfica y definir los componentes y variables de tu futura aplicacin. Podemos definir 8 lugares de inters. (ver figura de la anterior transparencia). 1] Para navegar ente Proyectos, Diseos y Ejemplos 2] Todos los elementos grficos que puedes aadir. Desde botones hasta sensores de movimiento pasando por clientes Twitter. 3] Cmo quedar la aplicacin. Arregla y ordena los elementos a tu gusto 4] Los componentes activos que tienes actualmente. Puedes cambiarles el nombre o borrarlos 5] Los componentes no visibles: estn en la aplicacin pero no tienen representacin grfica (ej: notificacin, sensores,) 6] Las propiedades de cada elemento. Aqu puedes cambiar el nombre, color, tamao, textos y dems. 7] Abre el Editor de Bloques (explicado a continuacin) 8] Guarda y comparte tu aplicacin con todo el mundo

El editor de Bloques

3.5. Creacin app con AppInventor

En la web tan slo puedes disear el apartado visual, pero el programa no funcionar: pones las piezas pero es en el editor dnde defines que hace cada cosa.

El editor de Bloques

3.5. Creacin app con AppInventor

Podemos distinguir 1] Entre Mis Bloques y los Built-in Blocksblockeditor2 Cada botn o cuadro de texto de tu programa corresponde a un bloque (2). Con el editor de bloques puedes interaccionar con los bloques para realizar las funciones que desees. Lo vers con ms detalle en la prxima entrega con el vdeo de una aplicacin. Los Built-in Blocks corresponden a bloques predefinidos que realizan acciones tales como bucles, lgica u operaciones matemticas entre otras. 2] Cada uno de los componentes de tu programa. Desde aqu podrs asignarles las funciones que quieras. 3] Todo el tablero en el que introducir las rdenes. Muy pequeo a mi gusto. 4] Botn para enviar la aplicacin al telfono para testearla.

Cmo exportar a Eclipse?

3.5. Creacin app con AppInventor

Existen tutoriales para tal efecto, utilizando una herramienta que se conoce como Java Bridge https://groups.google.com/forum/?fromgroups=#!topic/app-inventorinstructors/EKZOZLeIavs Tambin hay una aplicacin, actualmente en desarrollo, que traduce de AppInventor a Java directamente: http://code.google.com/p/appinventor-java-translation/

3.5. Creacin app con AppInventor

Ejemplo de aplicacin con AppInventor.


1. Iniciar el diseo y crear un nuevo proyecto En el navegador Web, apunta a la pgina web de App Inventor en http://beta.appinventor.mit.edu/ . Si esta es la primera vez que has usado App Inventor, vers la pgina de Proyectos vaca, sin proyectos en ella todava. 2. Crear un nuevo proyecto Haz clic en New en el lado izquierdo, cerca de la parte superior de la pgina. Introduce el nombre del proyecto HolaRonronea (una sola palabra, sin espacios) en el cuadro de dilogo que aparece, haga clic en Aceptar. El navegador abrir el Diseador, el lugar donde se seleccionan los componentes para su aplicacin.

3.5. Creacin app con AppInventor

Ejemplo de aplicacin con AppInventor.


Queremos que HolaRonronea tenga un botn con la propiedad de imagen ajustada al archivo que has descargado antes, con la imagen de un gato, kitty.png. Estableceremos esto del modo siguiente: 1. Arrastra y suelta un Button hasta Screen1, en el rea del visor (viewer). El componente Button se encuentra en la seccin Basic de la paleta (palette). 2. En la lista de propiedades de Button1, el botn que acabamos de disponer, en imagen, haz clic sobre ninguno (none) ... 3. Haga clic en agregar (Add) ... . 4. Selecciona el archivo kitty.png, que has descargado antes. 5. Eliminar Text for Button1, que aparece bajo la propiedad text mediante la tecla de retroceso.

3.5. Creacin app con AppInventor

Ejemplo de aplicacin con AppInventor.


Pasos a seguir para seleccionar los componentes y propiedades de configuracin Queremos que HolaRonronea tenga un botn con la propiedad de imagen ajustada al archivo que has descargado antes, con la imagen del gato, kitty.png. Estableceremos esto del modo siguiente: Arrastra y suelta un Button hasta Screen1, en el rea del visor (viewer). El componente Button se encuentra en la seccin Basic de la paleta (palette). En la lista de propiedades de Button1, el botn que acabamos de disponer, en imagen, haz clic sobre ninguno (none) ... Haga clic en agregar (Add) ... . Selecciona el archivo kitty.png, que has descargado antes. Eliminar Text for Button1, que aparece bajo la propiedad text mediante la tecla de retroceso.

3.5. Creacin app con AppInventor

Ejemplo de aplicacin con AppInventor.


Tu diseo debera tener este aspecto

3.5. Creacin app con AppInventor

Ejemplo de aplicacin con AppInventor.


Preparando el emulador:
En ese punto,y antes de continuar la construccin de la aplicacin, tendrs que iniciar el emulador. Haz clic en el botn Nuevo emulador (New Emulator) en la parte superior de la ventana. Recibirs un aviso diciendo que el emulador se est iniciando, y te pide que tengas paciencia, ya que puede tardar un rato (cosas del Java). El emulador aparecer inicialmente con una pantalla en negro. Espera hasta que el emulador est listo, con un fondo de pantalla de color, como se muestra a continuacin. Incluso despus de que el fondo aparezca, debes esperar hasta que el telfono emulado ha terminado la preparacin de su tarjeta SD: vers un aviso en la parte superior de la pantalla del telfono mientras la tarjeta est siendo preparada. Puede ser necesario usar el puntero del ratn sobre la pantalla del telfono emulado para desbloquear el dispositivo, arrastrando el botn de bloqueo verde a la derecha.

3.5. Creacin app con AppInventor

Ejemplo de aplicacin con AppInventor.


Cuando el emulador est finalmente listo, haz clic en Conectar a dispositivo (Connect to device), selecciona el emulador de la lista desplegable y haz clic en l. Vas a ver una flecha amarilla animada sobre un mvil, indicando que App Inventor est conectndose al telfono emulado. La creacin de esta conexin puede tardar un minuto o dos. Cuando termine, la flecha dejar de moverse y se pone verde, y en la pantalla del telfono emulado, vers el gatito. Abre el Editor de bloques (Blocks Editor), y conecta el telfono El diseador (Designer) es una de las tres herramientas clave que utilizars en la creacin de aplicaciones. El segundo es el Editor de bloques. El tercero es el telfono. Vamos a usar el Editor de bloques para asignar los comportamientos de los componentes, como qu debe suceder cuando el usuario de la aplicacin presiona un botn. El editor de bloques se ejecuta en una ventana separada. Al hacer clic en Abrir el editor de bloques (Open the Blocks Editor) de la ventana de diseo, el archivo de programa del editor de bloques se debe descargar y ejecutar. Este proceso puede tardar 30 segundos o ms. Si no se abre el Editor de bloques, podra ser porque el navegador no est configurado para ejecutar aplicaciones Java descargadas de forma automtica. Una vez descargado, veremos el archivo del editor de bloques, llamado AppInventorForAndroidCodeblocks.jnlp y debemos abrirlo.

3.5. Creacin app con AppInventor

Ejemplo de aplicacin con AppInventor.


Una vez hecho esto, se activa Java, que nos solicitar si queremos ejecutar la aplicacin, a lo que responderemos que s. Entonces, la ventana del editor de bloques debe verse como se muestra abajo, con "cajones" para los bloques de programa a la izquierda, y un gran espacio vaco para la colocacin de los bloques que uniremos para montar el programa, que se va a hacer a continuacin.

3.5. Creacin app con AppInventor

Ejemplo de aplicacin con AppInventor.


En este punto, debes tener el diseador abierto en el navegador, el editor de bloques abierto en otra ventana, y el dispositivo elegido (telfono o emulador) conectado con el Editor de bloques. A continuacin haremos lo siguiente para completar la aplicacin: En el Diseador: Agregar un componente de etiqueta (label) que ponga "Acaricia al gatito". Subir el archivo meow.mp3 Agregar un componente de sonido (sound) que reproduzca el archivo meow.mp3. En el Editor de bloques: Crear un controlador de eventos que dispare el componente de sonido cuando el usuario pulsa el botn. Adicin de la etiqueta En la paleta y el visor: Arrastra y suelta el componente Label hasta el visor (Viewer) , situndolo por debajo del gatito. Aparecer en la lista de componentes como Label1

3.5. Creacin app con AppInventor

Ejemplo de aplicacin con AppInventor.


En este punto, debes tener el diseador abierto en el navegador, el editor de bloques abierto en otra ventana, y el dispositivo elegido (telfono o emulador) conectado con el Editor de bloques. A continuacin haremos lo siguiente para completar la aplicacin: En el Diseador: Agregar un componente de etiqueta (label) que ponga "Acaricia al gatito". Subir el archivo meow.mp3 Agregar un componente de sonido (sound) que reproduzca el archivo meow.mp3. En el Editor de bloques: Crear un controlador de eventos que dispare el componente de sonido cuando el usuario pulsa el botn. Adicin de la etiqueta En la paleta y el visor: Arrastra y suelta el componente Label hasta el visor (Viewer) , situndolo por debajo del gatito. Aparecer en la lista de componentes como Label1

3.5. Creacin app con AppInventor

Ejemplo de aplicacin con AppInventor.


Bajo propiedades (properties): Cambia la propiedad Text de Label1 de forma que ponga "Acaricia al gatito". Cuando el cursos cambie a otra rea vers aparecer este texto en el botn en tu ordenador y en el dispositivo Android. Cambiar el Color de fondo (BackgroundColor) de Label1. Puedes cambiar a azul. Cambiar el color del texto (TextColor) de Label1, por ejemplo pasndolo a amarillo. Cambiar el tamao de su fuente (FontSize) de Label1 ponindola a 30.

3.5. Creacin app con AppInventor

Ejemplo de aplicacin con AppInventor.


Agregando el maullido En la paleta (Palette): Haz clic en la seccin Media para ampliarla y ver sus componentes. Arrastra un componente Sound y colcalo en el visor (Viewer) . Independientemente de donde lo dejes caer, aparecer en la parte inferior del visor, como componente no visible (non-visible-components) y como Sound1. En el rea de medios (Media): Haz clic en Agregar (Add) ... Sube el archivo meow.mp3 a este proyecto. Bajo Propiedades (Properties): Establece la propiedad fuente (source) del componente Sound1 haciendo clic sobre la misma. Cuando aparezca el cuadro de seleccin, pulsa sobre meow.mp3 y sobre OK. Esto asocia el maullido contenido en este archivo a Sound1.

3.5. Creacin app con AppInventor

Ejemplo de aplicacin con AppInventor.


Hacer el juego de sonido Con el Editor de bloques vamos a definir la forma en que la aplicacin se va a comportar. Le diremos a los componentes lo que deben hacer y cundo hacerlo. Vas a decirle al botn, que en realidad es la fotografa del gatito, que reproduzca el sonido del maullido cuando el usuario lo toque. Si los componentes son los ingredientes de una receta, puedes pensar en bloques como las instrucciones de elaboracin del plato. El editor de bloques tiene dos pestaas en la esquina superior izquierda: Integrados (Built-in) y mis bloques (My blocks) . Los botones situados debajo de cada pestaa muestran los bloques cuando se hace clic. Los Integrados son un conjunto de bloques genrico, que encontraremos disponibles independientemente de la aplicacin que vayamos a crear. Son siempre los mismos. Los bloques debajo de la pestaa de mis bloques contienen bloques especficos, vinculados con el conjunto de componentes que hemos elegido para la aplicacin. Varan segn los componentes seleccionados previamente y cambian si cambiamos componentes sobre la marcha.

3.5. Creacin app con AppInventor

Ejemplo de aplicacin con AppInventor.


Hacer el juego de sonido Para hacer que se reproduzca el sonido al tocar (pulsar) el botn con la foto del gatito, tendrs que pulsar la pestaa My Blocks, desplegar los bloques de la seccin Button1 y arrastrar y soltar al lienzo central el bloque When Button1.Click do, que se refiere a la circunstancia que el usuario pulse el botn y, tras desplegar los bloques de la seccin Sound1, arrastrar el bloque callSound1.Play al lienzo central, aproximndolo al bloque When Button1.Click do, de modo que ambos encajen como en un rompecabezas, lo que la aplicacin nos indica con un sonoro clic, perfectamente audible. Una vez hecho esto, pulsando sobre la foto (esto es tocando la pantalla en la foto y retirando el dedo rpidamente, lo que android considera un Click), oiremos como el telfono emite el maullido.

3.5. Creacin app con AppInventor

Ejemplo de aplicacin con AppInventor.


El Editor de bloques debe asemejarse a esto:

3.5. Creacin app con AppInventor

Ejemplo de aplicacin con AppInventor.


Embalaje de su aplicacin Si est usando un telfono, entonces la aplicacin se ejecuta en el telfono, pero slo funciona cuando el telfono est conectado a App Inventor. Si se desenchufa el cable USB, la aplicacin va a desaparecer. Puedes volver a conectar el telfono para hacer que regrese. Para obtener una aplicacin que se ejecuta sin estar conectado a App Inventor, debes "empaquetar" la aplicacin para producir un paquete de la aplicacin (archivo APK). Al pulsar paquete para el telfono (Package for phone) en la parte superior derecha de la pgina del diseador se presentarn tres opciones: Si el telfono est conectado, puedes descargar e instalar directamente la aplicacin en el telfono. Puede descargar la aplicacin al ordenador, como un archivo APK, que se puede distribuir y compartir, e instalar manualmente en los telfonos que utilizan el programa Android.

3.5. Creacin app con AppInventor

Ejemplo de aplicacin con AppInventor.


Conversin a JAVA para importarla con Eclipse:

1. Descarga el fichero desde App Inventor 2. Crear una carpeta con el mismo nombre que el proyecto (archivo .zip) (e.g. Project.zip => Project) 3. Coloca el zip como entrada (input) y la carpeta como salida (output). 4. Trataremos de importarla como proyecto en Eclipse.

Creacin de una aplicacin para leer RSS

Aplicacin CAMON: Utilidad para lectura de datos RSS.

Creacin de la aplicacin CAMON

Para la creacin de la aplicacin, seguiremos el tutorial Tutorial_LectorRSS_CAMON.pdf

You might also like