You are on page 1of 45

UNIVERSIDAD DE EL SALVADOR FACULTAD DE INGENIERIA Y ARQUITECTURA ESCUELA DE INGENIERIA ELECTRICA PROGRAMACION 1 PEL-115

TAREA 1: ANDROID

PROFESOR: ING. WALTER ZELAYA

INTEGRANTES: ROBLES RIVAS, BENJAMIN ANTONIO CORTEZ MENJIVAR, ALAN CARLOS SANCHEZ MARTINEZ, MELVIN MANUEL RENDEROS MAZARIEGO, JOSE DAMASIO RR08015 CM07058 SM04048 RM06067

CUIDAD UNIVERSITARIA, 13 de diciembre de 2010

Programacin I

ndice

Introduccin

03

Objetivos

04

Que es Android?

05

Manual Android

17

Aplicacin

32

Conclusiones

44

Bibliografa

45

Programacin I

Introduccin

Con la idea de hacer saber el funcionamiento del sistema y telefona con Android, se empieza dando a conocer su significado, ya que no podemos utilizar algo sin saber sus orgenes debido a que el surgimiento de distintos dispositivos o sistemas se basan en necesidades propias o ajenas. Pero no basta con saber solo esto, se detallan aspectos importantes para que los usuarios finales sepan mas sobre esta tecnologa que sin duda alguna es un gran paso en lo referente a sistemas de telefona celular, por su facilidad de operatividad, su aspecto fsico y muchas otras caractersticas que se mencionan en este reporte. Para finalizar y si uno de los tantos objetivos es volvernos desarrolladores de software en este sistema, mostramos la informacin exacta para poder implementar nuestras ideas y llevarlas a cabo a travs de emuladores que maneja las libreras utilizadas para las distintas aplicaciones que se nos puedan antojar.

Programacin I

Objetivos

Conocer ms a fondo el funcionamiento del sistema Android.

Tener el conocimiento bsico para desarrollar distintas aplicaciones, apegadas a nuestras ideas.

Mantenernos informados de todos los avances que estn surgiendo en la actualidad.

Programacin I

Qu es ANDROID? El nombre Android como Nexus One hacen alusin a la novela de Philip K. Dick Suean los androides con ovejas elctricas?, que posteriormente fue adaptada al cine como Blade Runner. Tanto el libro como la pelcula se centran en un grupo de androides llamados replicantes que son identificados mediante el modelo Nexus-6. Android es una variante de Linux, un software stack orientada a dispositivos mviles que incluye un sistema operativo middleware y aplicaciones de usuario final. Es desarrollado por la Open Handset Alliance, que rene a fabricantes de software y hardware, como Google, TMobile, HTC, Qualcomm, Motorola, etc. Android depende de Linux versin 2.6 para los "core system services" tales como seguridad, administracin de memoria, administracin de procesos, "network stack", y "driver model". El Linux Kernel tambin acta como una capa de abstraccin entre el hardware y el resto del software stack. Al contrario que otros sistemas operativos para dispositivos mviles como iPhone OS, Android se desarrolla de forma abierta y se puede acceder tanto al cdigo fuentecomo al listado de incidenciasdonde podemos ver problemas an no resueltos y reportar problemas nuevos. El que tengamos acceso al cdigo fuente no significa que podamos tener siempre la ltima versin de Android en nuestro mvil, por 2 razones: La primera es que el cdigo para soportar el hardware (drivers) de cada fabricante normalmente no es pblico, por lo que nos faltara un "trozo" bsico del firmware para poder hacerlo funcionar en nuestro terminal. La segunda es que las nuevas versiones de Android requieren de ms y ms recursos, por lo que los modelos ms antiguos quedan descartados por razones de memoria (RAM), velocidad de procesador, etc. Para poder desarrollar aplicaciones para este tipo de plataformas, se utiliza SDK que incluye las herramientas y las "API"s necesarias para comenzar a desarrollar aplicaciones para la plataforma Android y el lenguaje de programacin Java. Tambin se puede utilizar NDK (Native Development Kit) perteneciente a Google para emplear el lenguaje de programacin C. El codigo fuente se encuentra disponible bajo licencias de software libre y cdigo abierto destacando as la versin 2 de la licencia Apache. En la siguiente imagen se muestra la arquitectura de Android:

Programacin I

Si miramos al futuro de la plataforma, por un lado Android Market es la tienda de aplicaciones que ms crece ya llegando a las 40 mil aplicaciones, Android es el sistema operativo que ms est creciendo en Estados Unidos casi por superar a iPhone, Motorola junto con algunos otros fabricantes estn propulsando el desembarco en Amrica Latina de Android con equipos econmicos, y por el otro algunos se quejan de la fragmentacin de la plataforma debido a las diferentes versiones pero lo cierto es que ya se est empezando a desarrollar el know how para brindar las actualizaciones a los usuarios 2.1 y en el futuro a las siguientes adems de que la fragmentacin es algo que en el mundo mvil es casi inevitable. Aunque los comienzos de cualquier plataforma son siempre inciertos, no ha pasado mucho tiempo para que los fabricantes se hayan dado cuenta del autntico potencial de esta plataforma. Actualmente es el sistema con un potencial de desarrollo ms importante en el mundo de la telefona mvil. El fabricante HTC entr de la mano de Google desarrollando el primer dispositivo en aparecer en el mercado y posteriormente muchos han sido los que han apostado por el nuevo entorno. Algunos de los dispositivos con Android y confirmados para ser lanzados son los siguientes: HTC Dream, HTC Magic, HTC Dragon, HTC Legend, HTC Tide, HTC Buzz, HTC Scorpion HTC Bee, Google Nexus One o N1 Samsung i7500 Galaxy, HTC Tattoo, HTC Desire, HTC EVO 4G, HTC Merge HTC Hero, HTC Salsa, HTC Wildfire, HTC Lexikon

Programacin I

Samsung i5700 Galaxy Spica Samsung i9000 Galaxy S Sony Ericsson Xperia X10, Sony Ericsson Xperia X10 Mini LG GT360, LG GT540 Swift LG GW620 Eve General Mobile DSTL1 Motorola Dext, Motorola Milestone, Motorola Backflip, Motorola Quench, Motorola Droid X, Orange Boston Movistar IVY Vodafone 845 Archos 5 Internet Tablet Huawei Pulse, Huawei U8230 Huawei U8110 SciPhone N19 Acer Liquid GeeksPhone One iPed Altek Leo Augen Genbook Neetbook, Augen Gentouch Tablet PC, Augen TheBook e-reader Caractersticas Provee el Android Application Framework, que facilita la reutilizacin y reemplazo de componentes.As bajan los costos en la reparacin del telfono celular, por lo que el hardware o el mismo telfono se puede reparar de forma totalmente confiable. Navegador integrado. Grficos optimizados, con una biblioteca de grficos 2D; grficos 3D basado en la especificacin OpenGL ES 1.0 (aceleracin opcional). Base de datos SQLite para almacenamiento de datos estructurados. Soporte para medios con formatos comunes de audio, vdeo e imgenes planas (MPEG4, H.264, MP3, OGG, AAC, AMR, JPG, PNG, GIF) Telefona bajo el cdec GSM. Bluetooth, EDGE, 3G, y WiFi. "API"s de acceso a recursos de cmaras, GPS, brjula y acelermetro (dependiente del hardware). 7

Programacin I

Ambiente rico de desarrollo incluyendo un emulador de dispositivo (para pruebas), herramientas para depurar, perfiles de memoria y rendimiento, y un complemento para el IDE Eclipse (editor de programacin libre). Pantalla tctil Android Market permite que los desarrolladores pongan sus aplicaciones, gratuitas o de pago, en el mercado a travs de esta aplicacin accesible desde la mayora de los telfonos con Android. Incluye la Dalvik, la cual es una Virtual Machine optimizada para dispositivos mviles. Disponibilidad de un browser integrado con la plataforma, el cual est basado en WebKit Libreras Android incluye un conjunto de libreras escritas en C/C++, las cuales son usadas por varios componentes del sistema Android. Estas capacidades son expuestas a los desarrolladores a travs del Android Application Framework Las principales libreras son descritas a continuacin: System C library: es una implementacin "BSD-derived" de la "standard C system library (libc)", que ha sido mejorada para ser incrustada en dispositivos basados en Linux. Media Libraries: estas libreras permiten la reproduccin y grabacin de/en los formatos de audio, video y fotografa ms populares. Incluye: MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG. Estas libreras estn basadas en "PacketVideo's OpenCORE". Surface Manager: administra el acceso los subsistemas de pantalla y utilizacin de grficos 2D y 3D desde mltiples aplicaciones. LibWebCore: es un "web browser" que potencia tanto el "Android Browser" como las Web View. SGL: el motor grfico 2D subyacente al sistema. 3D libraries: es una implementacin basada en las "OpenGL ES 1.0 API"s. Estas libreras pueden usar tanto el hardware 3D de aceleracin (si est disponible) o el "3D rasterizer" que es incluido en Android. FreeType: es el "font rasterizer" para mapas de bits y vectores. SQLite: es un poderoso y liviano motor de bases de datos relacionales que est disponible para todas las aplicaciones. Entorno de ejecucin de Android Android incluye un conjunto de libreras que proveen muchas de las funcionalidades disponible en las libreras del lenguaje de programacin Java. Cada aplicacin Android es ejecutada dentro de su propio proceso, dentro de su propia instancia de una Dalvik Virtual Machine. Dalvik ha sido diseada de tal forma que el dispositivo puede correr mltiples Virtual Machines de manera eficiente. La Dalvik Virtual Machine ejecuta archivos en formato Dalvik Executable (.dex), los cuales han sido optimizados para 8

Programacin I

obtener el menor "memory footprint". La Virtual Machine es "register-based" y ejecuta archivos de clases compilados en un compilador Java que ha sido modificado para crear archivos en formato .dex con ayuda de la herramienta dx. La Dalvik Virtual Machine depende del Linux Kernel para todas las subyacentes funcionalidades, tales como "threading" and "low-level memory management". Versiones Las principales versiones de Android hasta el momento son 3 Android 1.5. CUPCAKE. Android 1.6 DONUT. Android 2.x ECLAIR. A continuacin se detallan las antes mencionadas as como otras versiones las cuales fueron predecesoras de estas y otras que estn por surgir. En el ao 2005, Android .Inc., es adquirido por Google, que en ese entonces se rumoraba que queran construir su propio celular libre. Android resulto ser ms interesante, ya que era un sistema operativo mvil open source, propulsado por Google. En noviembre del ao 2007, se da el lanzamiento inicial de Android Software Development Kit, y en agosto de 2008, aparece Android 0.9 SKD en Beta. Para finales de septiembre de 2008 lanzan Android 1.0 SDK (Release 1). Para marzo de 2009, Google presento la versin Android 1.1 para el dev pone y la actualizacin contaba con cambios estticos, as como soporte para bsqueda por voz, aplicaciones pagas en Android Market, arreglos en el reloj alarma, mejoras en Gmail y mas. Ya en mayo de 2009, Google lanza la versin 1.5 de Android OS, llamada Cupcake, basado en el kernel Linux 2.6.27, con su respectivo SDK, incluyendo nuevas features como: Rediseo completo de todos los elementos de la interfaz. Interfaz de Android 1.1 (izquierda) y Android 1.5 (derecha), va Android Developers. Transiciones animadas entre ventanas. Mejoras en la velocidad de la cmara. Menor tiempo de bsqueda de los satlites GPS, gracias a la posibilidad de utilizar AGPS. Mejoras en la velocidad del navegador web gracias a la inclusin de la ltima versin de Webkit, el engine de renderizado, y SquirelFish. Intrprete Java Script. Aadida la posibilidad de copiar y pegar texto y buscar texto dentro de una pgina web. 9

Programacin I

Posibilidad de personalizar los widgets mostrados en la pantalla de inicio. Inclusin de teclado en pantalla, con soporte para orientacin vertical y apaisada, funcionalidades de auto correccin y soporte de diccionarios del usuario. Aadida la posibilidad de grabar y reproducir vdeos. Soporte de Bluetooth Stereo.

Esta versin fue la que ms personas usaron para iniciarse en Android (con el T-Mobile G1 y HTC Dream en USA), actualmente sigue siendo una versin que se encuentra disponible en muchos mviles Android como el HTC Hero o varios de los nuevos MOTOBLUR como el Motorola Backflip o Motorola Dext. Lanzado en septiembre de 2009, Android 1.6 Donut, que esta basado en el kernel 2.6.29 de Linux, considerando una actualizacin menor, logrando introducir novedades muy interesantes como: Quick Search Box, una caja de bsqueda en la pantalla de inicio que permite buscar entre distintas fuentes (los contactos, el historial del navegador, google). Con autocompletado y capacidad de aprendizaje. Mejorada la velocidad de la cmara. Posibilidad de conectarse a redes VPN, 802.1x. Nueva pantalla para controlar la batera, que permite comprobar qu aplicaciones y servicios son los que ms consumen. Desde esta pantalla se puede tambin parar o desinstalar estas aplicaciones Las aplicaciones de Android Market aparecen ahora ordenadas por categoras (Aplicaciones, Juegos y Descargas). Para cada categora podemos consultar las ltimas actualizaciones y las aplicaciones ms populares. Adems para cada aplicacin se muestra ahora capturas de pantalla y reviews de otros usuarios. Nuevo motor de texto a voz.

El Motorola Droid (Motorola Milestone) se lanzo con el Android 2.0 Eclair, en noviembre de 2009, incluyendo varias nuevas features incluso con aplicaciones pre cargadas que requeran un hardware mucho mas rpido que la generacin anterior de celulares con Android. Las novedades son: Redise la interfaz del navegador, contando ahora con soporte para distintas caractersticas de HTML5 (entre ellas la etiqueta vdeo), la posibilidad de hacer zoom con una doble pulsacin y thumbnails de los marcadores. Soporte nativo de flash para la cmara (aparentemente los fabricantes de telfonos que contaban con flash previamente tuvieron que desarrollar sus propios drivers para superar esta limitacin). Zoom digital, modo scene, balance de blanco, efectos de color y modo macro. Mejoras en el teclado virtual. Soporte para nuevos tamaos y resoluciones de pantalla. 10

Programacin I

Contactos rpidos. Bluetooth 2.1 Soporte nativo de Facebook. Mejoras en Google Maps, que pasaba a ser multitctil y soportar capas (como Wikipedia). Soporte de Microsoft Exchange. Mejoras en el calendario.

En diciembre de 2009 se public una pequea revisin, Android 2.0.1, que mejoraba la duracin de la batera y la estabilidad, la llamada a tres, el GPS, el bluetooth, y la velocidad de disparo y auto focus de la cmara. El Google Nexus One, llega con Android 2.1, siendo esta considerada como actualizacin menor. Entre estas estn: Reconocimiento de voz. Ahora se puede dictar en lugar de escribir en cualquier campo de texto. Mejoras en el teclado virtual. Galera 3D, al estilo Cover Flow. Uso del gesto de pellizcar para hacer zoom en el navegador, la galera y en Google Maps. Nuevas aplicaciones de reloj/tiempo y noticias. Mejoras en Google Maps: sincronizacin de nuestros sitios favoritos, modo noche y auto completado de bsquedas. Google Goggles. Mejoras en la duracin de la batera. Disponible desde finales de Junio del 2010, el Android 2.2 (FROYO) hace unos cambios respecto a sus versiones predecesoras: Actualizaciones automticas para aplicaciones: Las aplicaciones recibirn actualizaciones automticas, consiguiendo tener siempre la ltima versin del software. Soporte WiFi IEEE 802.11n Soporte para Radio FM. Soporte Flash 10.1 y Adobe AIR 2.5 Soporte de la API grfica OpenGL 2.0 Posibilidad de asignar un color de LED en el TrackBall para diferentes eventos del terminal. Creacin de un compilador JIT que mejora entre 2 y 5 veces en Rendimiento frente a Eclair. Tethering por USB y hotspot WiFi. Incorporacin del mismo motor de Javascript V8 de Chrome. Creacin de un sistema de mensajera en la nube dotado de un API mediante el cual puedes enviar un mensaje desde la web y hacerlo llegar a un telfono va Push. 11

Programacin I

Posibilidad de enviar posiciones desde Google Maps al telfono, usando un plugin del navegador Google Chrome. Posibilidad de mover una aplicacin instalada desde el telfono a la tarjeta de memoria, y viceversa. Opciones avanzadas de gestin energtica. ANDROID 3.0 (GINGERBREAD) Se cree que el lanzamiento ser entre 15-16 de octubre de 2010, mviles listos para noviembre-diciembre. Soporte de resoluciones de hasta 1.366768, lo que invita a pensar en Tablets de resolucin HD Ready. Interfaz de usuario renovada muy parecida a Gallery App de Nexus One. Dejarn de existir Launchers independientes, unificando la experiencia, es decir el fin de HTC Sense, MotoBlur, etc. No por ello, se impedir implementacin de launchers personalizadas voluntariamente.

Sin embargo en un principio, sta versin del sistema operativo ir orientada a mviles de gama alta, o disponer mnimamente de los siguientes requisitos: 512 de memoria RAM Procesador con frecuencia de reloj a 1 Ghz (independientemente de su arquitectura). ANDROID 3.x (HONEYCOMB) Siguiendo con los azucarados nombres con los que conocemos a las versiones Android, y sin todava Gingerbread (Android 3.0) en el mercado, ya est sonando con fuerza la denominacin Honeycomb para la siguiente versin. Curiosidades con los nombres Si repasamos los nombres utilizados hasta la fecha, siguen un orden alfabtico para la primera letra del elemento dulce elegido: C para Cupcake (v1.5). D para Donut (v1.6). E para clair (v2.1). F para Froyo (v2.2). G para Gingerbread (v3.0). H para Honeycomb. Si partimos de la base que la prxima versin empezar por H, Honeycomb (panal, en espaol) puede cumplir con los requisitos, y aunque parezca una tontera es bueno ir quedndonos con un nombre que puede aparecer continuamente en nuestra pgina.

12

Programacin I

Otro de los rumores que acompaan a la denominacin es que ser una actualizacin menos importante que Gingerbread, algo as como un Android 3.x, cuestin que se contradice con la idea de no realizar actualizaciones intermedias hasta llegar al ao. Informacin sobre el Emulador Android. Con este emulador se puede hacer casi todo, como por ejemplo: explorar el entorno del sistema operativo, probar las aplicaciones instaladas por defecto, simular llamadas o mensajes, navegar por Internet e incluso instalar y probar todos los programas que hay, actualmente, en la red. Para lograr esto y mucho ms, debemos descargar el emulador incluido en el SDK. Al descomprimir el archivo, veremos esto:

En la carpeta, vemos la estructura propia del SDK. Incluye varios documentos de texto (carpeta Docs), algunos ejemplos (carpeta Samples) y una serie de herramientas (carpeta tools) para el testeo de los programas. Es en esta ltima carpeta es donde encuentra el emulador: emulator.exe

13

Programacin I

Para ejecutar el emulador, slo damos doble clic en el icono emulator.exe y esperamos unos segundos y veremos la siguiente imagen.

14

Programacin I

Una vez cargado, podemos acceder al entorno del sistema operativo y probar las funciones bsicas incluidas por defecto: agenda de contactos, navegador, simulador de llamadas, etc. Hasta el momento slo se puede instalar o desinstalar programas desde lnea de comandos. Descargamos el programa que deseamos instalar (programa de ejemplo) y lo guardamos en la carpeta tools del SDK. Para instalar un programa en el emulador se debe utilizar la aplicacin adb.exe que esta incluido en la misma carpeta. Hacemos click en men de Inicio, seleccionamos la opcin ejecutar e introducimos la palabra cmd en la caja de texto.

Ahora, se accede a la carpeta tools del SDK. Si lo instalamos en C:\Archivos de programa\Android SDK\, se introduce el siguiente comando: cd c:\archivos de programa\Android SDK\tools. Ya en la carpeta tools y con el emulador abierto, se utiliza la aplicacin adb.exe para instalar el programa: adb install ejemplo.apk. Siempre que se desee instalar un programa se debes hacer lo mismo. Eso s, cambiando ejemplo.apk por el nombre del programa que quieras instalar.

15

Programacin I

Si lo que queremos es desinstalar un programa, se hace lo mismo, pero utilizando el siguiente comando: adb shell rm data/app/ejemplo.apk

Con estos dos ltimos pasos se logra instalar y desinstalar todos los programas que se desean en el emulador. Dos acciones indispensables para probar a fondo el sistema operativo para telfonos mviles de Google.

16

Programacin I

Manual Android Este es un manual paso a paso donde mostraremos desde cmo montar la consola de trabajo hasta como crear una aplicacin para telfonos con el software Android previamente adquirido y soportado por el mvil. Parte I 1. La consola eclipse. Pues esta consola para los desarrolladores de software equivale al compilador en donde montaremos el plugin y el area de trabajo para android la pueden descargar desde el sitio: http://www.eclipse.org/downloads/ Una vez descargada y descomprimida buscan el icono de eclipse.

Lo bueno es que no necesita instalacin una vez ejecutada pedir un espacio en donde guardar los proyectos, eligen la opcin que ms les convenga y se ver la ventana asi:

17

Programacin I

2. instalar plugin de android. Es necesario instalarle el adaptador para la compilacin y el proceso es el siguiente: dar click en la pestaa Help ir a install new software y les abrir un cuadro de dialogo.

18

Programacin I

en el cuadro de dialogo insertaremos la direccin:


https://dl-ssl.google.com/android/eclipse/.

Seleccionaremos la pestaa Developer Tools Esto habilitara el boton next

Lo siguiente es esperar a que se instale el software esto llevara algo de tiempo.

19

Programacin I

3. Android SDK (Software Development Kit) Una vez finalizado este proceso procedemos a la instalacin del SDK Android que lo pueden adquirir en este sitio: http://developer.android.com/sdk/index.html Nos movemos a la opcin Windows Luego a Preferences

Siguiente a este paso tendremos un cuadro de dialogo en donde insertaremos la carpeta del SDK Android previamente descargada. En el botn browse damos bsqueda a la carpeta contenedora de Android SDK Luego Apply y por ultimo Ok

20

Programacin I

4.

Configuracin de Android SDK Para este paso nos vamos a la opcin Windows Luego seleccionamos la opcin Android SDK manager En el siguiente cuadro de dialogo nos movemos a la opcin Available packages Nos saldrn los paquetes provistos por el SDK descargado, cabe aclarar que el SDK nicamente provee instaladores web que posteriormente el mismo programa descargara e instalara Seleccionamos la opcin installed selected habiendo seleccionado todos para evitar conflictos

Luego abrir otro cuadro de confirmacin le damos a la opcin Accept all y despus Install

21

Programacin I

Esto abrir el proceso de descarga ya mencionado (este proceso toma varios minutos incluso horas esto depende de la combinacin equipo y ancho de banda del internet, luego se mostrara la bitcora de instalacin para referencia.)

Una vez finalizado nos resta nicamente cerrar el cuadro de descarga con la certeza de que los paquetes estn completamente instalados.

5. Creacion del AVD (Android Virtual Device) 22

Programacin I

Este es el ultimo paso previo a lo que es en si la programacin Android, consiste en crear un dispositivo con caractersticas similares a las de un mvil con capacidad para ejecutar aplicaciones creadas en Android con esto se cierra la parte bsica para la creacin de aplicaciones. Click en la opcin Windows Luego en Android SDK and AVD manager Nos lanzara el siguiente cuadro de dialogo:

Ahora nos vamos a virtual devices Luego New Esto generara el cuadro Create new Android Virtual device (AVD) Lo que resta es simple le damos un nombre En el espacio target asignamos una versin de Android Como es un telfono virtual nos pide un tamao virtual de memoria SD Luego de esto damos click en el botn Create AVD y listo.

23

Programacin I

Ahora para ejecutarlo desde Android SDK y AVD manager lo podemos hacer seleccionando el dispositivo que acabamos de crear y clickeando en la opcin Start

Nos lanzara un nuevo cuadro en el cual solo le damos a la opcin launch

24

Programacin I

Y como producto final obtendremos lo siguiente:

Un dispositivo virtual con caractersticas necesarias para la ejecucin de nuestro programa. Con esto se concluye la parte de instalacin de Android en una PC y como lo prometido es deuda a continuacin una bitcora de referencia para la instalacin. Equipo: Dell Inspiron 1545 (laptop) Procesador: Intel Pentium dual-core 2.16 GHz Memoria Ram: 3.00 GB Internet: 512 Kbps Tiempo aproximado de instalacin: 3 horas 15 minutos Se hace esta referencia porque la eficiencia en la instalacin depende del equipo y el ancho de banda.

Parte II 25

Programacin I

En esta seccin se discutir como crear un proyecto Android y dejar lista la aplicacin final de la misma solo para ser cargada en el mvil. 1. Creacion del proyecto Ahora con eclipse ya en funciones nos vamos a File, luego New y por ltimo a la opcin Android Project

Como siguiente paso rellenamos la informacin bsica de nuestro proyecto como lo es el nombre, si la aplicacin es nueva o vamos a cargar una ya hecha, para que versin de Android est diseada, el nombre de la aplicacin, el nombre de empaquetamiento (cabe resaltar que hay que ser cuidadosos en esta parte ya que el nombre final debe ser similar al de la aplicacin), y por ultimo pero no menos importante la mnima versin del SDK.

26

Programacin I

Ahora se activara el botn next y dndole click tenemos listo nuestro proyecto Android.

2. Ejecucin de una aplicacin. Ahora asumir que ya se cre el proyecto y que la aplicacin esta lista para ejecutarla nos vamos al panel Package Explorer y podremos ver los proyectos listos desplegndolo nos daremos cuenta que una aplicacin en Android est dividida en secciones o carpetas cada una con diferente fin, como este es un manual de procesos bsicos no entraremos en esa rea. Dndole click derecho sobre el proyecto nos despliega un men, nos vamos a la opcin Run as y luego Android application.

27

Programacin I

Esta accin activara al AVD de una sola vez y es por eso que es necesario crear uno desde el principio. Con el AVD ya cargado nos mostrara en pantalla la aplicacin (para el ejemplo es la aplicacin que invierte una palabra).

28

Programacin I

3. Creacin del .apk (extensin de las aplicaciones Android) Siempre desde el panel Package Explorer click derecho sobre el proyecto a exportar nos desplegara el men que vimos anteriormente con la variante que en este caso nos iremos a la opcin Android Tools para luego seleccionar la opcin Export signed application package.

Ahora un chequeo del nombre del proyecto y nos lanzara a otro men.

29

Programacin I

Lo siguiente es asignarle una ubicacin de guardado, asi como una contrasea la cual ustedes la pueden elegir.

Como la finalidad de Android es crear aplicacin comerciales crea una llave virtual para el programa misma que servir en seguridad ese tema no esta bien explorado pero sirve como una firma virtual.

30

Programacin I

Ahora la parte final, la ubicacin en donde se desea guardar la aplicacin final con la extensin .apk, si son observadores notaran que en la imagen anterior en validity se le asigno 25 pues en este cuadro se afirma que el certificado durara 25 aos y el nombre de la aplicacin.

Al darle finish tendremos el archivo listo para ser descargado a nuestro mvil.

Con eso concluimos este manual el cual hace referencia a los conceptos bsicos de Android es recomendable estudiar manuales de lenguaje Java y conectarse con la comunidad Android que cada vez es ms numeroso ya que se van volviendo ms comunes los foros y blogs sobre este tema.

31

Programacin I

Creando un nuevo proyecto Lo primero que tenemos que hacer es abrir el Eclipse y creamos un nuevo proyecto para Android:

Configuramos el proyecto para que nos quede de la siguiente manera

32

Programacin I

En este caso utilizamos la versin 1.6 de Android, pero puede utilizar la versin que concuerde con el dispositivo sobre el que desea probar la aplicacin. Fjese que no hemos creado ninguna actividad inicialmente (el checkbox Create Activity no est seleccionado); la idea es ver cmo se deben crear las actividades, los layouts con la interfaz grfica, las clases que referencian a las actividades y la configuracin del AndroidManifest.xml. Creando y configurando una Actividad inicial Creamos una clase dentro del paquete org.example.fraseinver

Y en el asistente de creacin de clases de Eclipse le damos como nombre EjemploInvertir. Clic en Finish y editamos la clase para que luzca as: package org.example.fraseinver; import android.app.Activity; import android.os.Bundle; public class EjemploInvertir extends Activity{ @Override public void onCreate(Bundle b){ super.onCreate(b); setContentView(R.layout.main); } } Lo que hemos hecho es extender la clase Activity y redefinir el mtodo onCreate. Adems, ejecutamos el mtodo setContentView indicndole que usaremos el layout main.xml. Puesto que deseamos que esta actividad sea mostrada al momento de ejecutar la aplicacin, debemos editar el archivo AndroidManifest.xml, que se encuentra en la raz del proyecto. Al hacer doble clic sobre este, vemos que es posible editarlo usando una interfaz grfica. Para aadir la actividad que acabamos de crear, hacemos clic en la pestaa inferior Application, y

33

Programacin I

en la seccin Application Nodes hacemos clic en Add All seleccionamos Activity y hacemos clic en OK.

Ahora debemos configurar la actividad. En la parte derecha ha aparecido un formulario llamado Attributes for Activity, en donde podremos hacerlo. Lo ms importante es el nombre de la actividad, el cual debe ser el nombre de la clase que acabamos de crear. Es posible usar el botn Browse para buscar las actividades actualmente disponibles.

34

Programacin I

Una vez hayamos seleccionado o escrito el nombre de la clase, debemos aadirle un Intent; pero qu es un Intent ? Los componentes de una aplicacin en Android se comunican a travs de mensajes llamados Intents (objetos de la clase android.content.Intent). Se trata de una estructura de datos pasiva que contiene una descripcin abstracta de una operacin que ser realizada, y se usa comnmente para iniciar actividades. Para aadir el intent, seleccionamos la actividad que acabamos de crear y hacemos clic en el botn Add Seleccionamos Intent Filter, hacemos clic en OK. Y ahora, dentro del Intent crearemos dos componentes un Action y un Category. Un Action es un String que contiene el nombre de la accin a ser realizada. En este caso, el Action ser android.intent.action.MAIN, el cual es usado para ejecutar la primera actividad de una aplicacin. Entonces, seleccionamos el Intent Filter que acabamos de crear, y hacemos clic en Add escogemos Action, clic en OK y escogemos el nombre del Action:

Category es un String que contiene informacin adicional acerca del tipo de componente que debera manipular el Intent. En este caso el Category que aadiremos ser CATEGORY_LAUNCHER el cual indica que la actividad puede ser la principal (la que se ejecuta al iniciar la aplicacin). Luego de aadir el Category veremos que queda as:

Hacemos clic en el icono de guardar en la barra de herramientas y listo. Tambin es posible editar el archivo AndroidManifest.xml a mano, lo cual es mucho mas rapido. Pero no esta de ms saber cmo hacerlo con la interfaz grfica. Abrimos el archivo con el editor de XML veremos:

35

Programacin I

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.ejemplo.fraseinver" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name="EjemploInvertir"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER"></category> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="4" /> </manifest>

Ahora que hemos configurado el AndroidManifest.xml podemos probar la ejecucin del programa, sino tenemos errores en el codigo aparecera la siguiente imagen:

36

Programacin I

Ahora vamos a crear la interfaz grafica En este paso, crearemos una nueva interfaz grfica que contendr un label, una caja de texto y un botn. Vamos a aprender a posicionar/agrupar los elementos en la pantalla, y darles un tamao adecuado. Vamos a crear un nuevo layout dentro del directorio res/layout/ (aunque podramos haber usado el main.xml generado por asistente de Eclipse. Ahora hacemos clic en el botn de creacin de nuevos archivos XML de Android:

Seleccionamos la opcin layout y le damos un nombre al archivo. Por ejemplo, interfaz_grafica.xml:

37

Programacin I

Hacemos clic en Finish y esta listo. Al hacer doble clic sobre el archivo que acabamos de crear vemos que es posible editarlo usando una interfaz grfica, pero en este caso usaremos el editor de XML, ya que es mucho ms rpido hacerlo as. Hacemos clic en la pestaa inferior que tiene el nombre del archivo interfaz_grafica.xml y veremos el siguiente codigo: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> </LinearLayout> Por defecto se crea un objeto LinearLayout que contiene contiene tres parmetros: un XML Name Space (en este caso http://schemas.android.com/apk/res/android), el tamao que ocupar a lo ancho y el que ocupar a lo largo. Para estos dos ultimos parmetros se est usando wrap_content indicando que se debe usar el menor espacio posible. Los objetos LinearLayout funcionan de manera similar a los JPanel de Java, pudiendo contener widgets de Android (labels, botones, menus u otros LinearLayout, etc.). Lo siguiente ser crear la interfaz grfica para nuestro programa de ejemplo, pero antes vamos a aprender un poco sobre el directorio res/values.Por defecto veremos que hay un archivo llamado strings.xml. Este archivo es usado para almacenar todas las variables estticas de la aplicacin. Si bien su uso no es estrictamente obligatorio, si es recomendado y es bueno saber usarlo. Para nuestro ejemplo entonces, tenemos dos cadenas de texto que podran ser estticas: el texto que aparecer en el label y el texto que aparecer en el botn. Para la primera vamos a asignar el texto directamente en el XML de la interfaz grfica, mientras que para el botn lo haremos usando el archivo strings.xml; lo hago de las dos maneras con el fin de que quede clara la diferencia entre ambos mtodos. Abrimos el archivo strings.xml, que se encuentra en el directorio res/values, para aadir una nueva cadena de texto que ser usada por el botn de la aplicacin. Solo debemos aadir algo como esto: <string name=texto_boton>Invertir!</string>, quedando as: <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World!</string> <string name="app_name">Ejemplo</string> <string name="texto_boton">Invertir!</string> </resources> Ahora s, vamos a modificar el archivo interfaz_grafica.xml de tal manera que quede as: <?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"> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:text="Palabra: " android:layout_width="wrap_content" android:layout_height="wrap_content" /> <EditText android:id="@+id/cajaTexto" android:layout_width="fill_parent" 38

Programacin I

android:layout_height="wrap_content" /> </LinearLayout> <Button android="@+id/btnInvertir" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/texto_boton"/> </LinearLayout> A continuacion se explica lo que se acaba de realizar En la lnea 3 podemos ver que cambiamos el ancho y alto del LinearLayout principal de tal manera que utilice toda la pantalla (usando fill_parent). Puesto que el LinearLayout contendr otros objetos, debemos indicarle el sentido en el que los ir poniendo. En este caso se deben poner verticalmente (android:orientation="vertical"). En las lneas 5 y 6 creamos un nuevo LinearLayout que contendr el label y la caja de texto. Puesto que queremos que estos dos objetos aparezcan en una sola lnea, ponemos el parmetro android:orientation="horizontal". Adems, le indicamos que ocupe toda la pantalla a lo ancho, pero que la altura sea la ms pequea posible. En las lneas 7 y 8 creamos un nuevo TextView (un label) con el texto Palabra: ; esto lo indicamos con la propiedad android:text. Adems queremos que ocupe el menor espacio posible tanto en alto como en ancho (wrap_content para layout_width y layout_height). En las lneas 9 y 10 creamos un EditText (una caja de texto), que es donde el usuario pondr la palabra que desea invertir. Intentar ocupar el mayor ancho posible en la pantalla. Adems, puesto que este es un objeto del cual necesitaremos datos, debemos asignarle un ID para que podamos acceder a l desde el programa en Java que crearemos en breve. En la lnea 11 cerramos el LinearLayout que contiene el label y la caja de texto. En las lneas 12 y 13 creamos un objeto Button. Este objeto tambin tiene un ID puesto que debemos obtener una referencia del mismo desde el programa en Java. Adems, a la propiedad android:text se est asignando @string/texto_boton que es la referencia a la variable que creamos en el strings.xml Ahora que hemos creado la interfaz grfica, vamos a ejecutar la aplicacin para ver si ha quedado bien. Pero antes, debemos indicarle a nuestra Actividad que el layout que debe ejecutar es interfaz_grafica.xml. Esto lo hacemos modificando la clase EjemploInvertir.java para que quede as: package org.example.fraseinver; import android.app.Activity; import android.os.Bundle; public class EjemploInvertir extends Activity{ @Override public void onCreate(Bundle b){ super.onCreate(b); setContentView(R.layout.interfaz_grafica); } } 39

Programacin I

De nuevo si no tenemos errores en el codigo, nos saldra la siguiente pantalla, ejecutando todo lo que acabamos de hacer.

Programando los objetos de la interfaz grafica Ahora que hemos construido la interfaz grfica, debemos programar la parte de invertir la cadena de texto. Para ello necesitamos extraer el texto que se ponga en la caja de texto y manejar los eventos que genera el botn; en cualquier caso, necesitamos referencias a dichos objetos. As que, de momento, vamos a hacer que nuestra clase EjemploInvertir.java luzca as: package org.example.fraseinver; import android.app.Activity; import android.os.Bundle; import android.widget.Button; import android.widget.EditText; public class EjemploInvertir extends Activity{ //declarar objetos private EditText texto; private Button boton; @Override public void onCreate(Bundle b){ 40

Programacin I

super.onCreate(b); setContentView(R.layout.interfaz_grafica); //iniciar los objetos texto = (EditText) findViewById(R.id.cajaTexto); boton = (Button) findViewById(R.id.btnInvertir); } } Detallando lo que acabamos de realizar En las lneas 4 y 5 importamos las clases Button y EditText del paquete android.widget. En las lneas 9 y 10 declaramos objetos de tipo EditText y Button, los cuales los usaremos para manipular los que hemos creado en la interfaz grfica. En la lneas 17 iniciamos el objeto EditTexto usando el mtodo findViewById, a la cual le enviamos como parmetro el ID de la caja de texto (pusimos esto dentro del XML: android:id="@+id/cajaTexto"). De igual manera creamos el objeto botn usando el ID btnInvertir que definimos en el XML. Hasta el momento solo hemos creado los objetos, pero no estamos haciendo nada con ellos. Para esto, vamos a asignar un listener al botn, que ejecutar ciertas acciones al momento de presionarlo. Esto lo hacemos con el mtodo setOnClickListener el cual recibe como parmetro un objeto de tipo android.view.View.OnClickListener. Veamos cmo debe quedar la clase y luego se explica cada componente nuevo: package org.example.fraseinver; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class EjemploInvertir extends Activity{ //declarar objetos private EditText cajaDeTexto; private Button boton; @Override public void onCreate(Bundle b){ super.onCreate(b); setContentView(R.layout.interfaz_grafica); //iniciar los objetos cajaDeTexto = (EditText) findViewById(R.id.cajaTexto); boton = (Button) findViewById(R.id.btnInvertir); boton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { invertir(); 41

Programacin I

} }); } //metodo para invertir el texto private void invertir(){ //28 //obtener el string de la caja de texto String txt = cajaDeTexto.getText().toString(); //verificar que haya texto por invertir if(!txt.equals("")){ //invertir texto String resultado = ""; for (int i = txt.length()-1; i>=0; i--) //35 resultado += txt.charAt (i); //36 //asignamos el string invertido a la caja de texto cajaDeTexto.setText(resultado); //38 } else Toast.makeText(this, "No hay nada Toast.LENGTH_LONG).show(); //41 } }

que

invertir",

En la lnea 5 se importan la interfaz OnClickListener. Dicha interfaz es usada en la lnea 20 al crear un objeto que se enviar como parmetro al mtodo setOnClickListener. Dentro, es necesario implementar el mtodo onClick en donde pondremos las instrucciones que sern ejecutadas al momento de hacer clic en el botn (en este caso una llamada a la funcin invertir(), lneas 28 a 41). El mtodo invertir inicia una variable String con los datos que contenga la caja de texto, usando el mtodo getText de la clase EditText. En las lneas 35 y 36 se invierte la cadena, que posteriormente se pone de nuevo en la caja de texto usando el mtodo setText (lnea 38). En la lnea 40 mostramos un mensaje usando la clase Toast. Este mensaje aparece cuando no hay datos en la caja de texto. Lo he colocado puesto que es bastante sencillo de implementar. Basta con usar el mtodo esttico makeText pasndole como parmetros el contexto en el que se mostrar (se usa this, puesto que se mostrar en la Actividad actual), el texto a mostrar y cuanto tiempo durar el mensaje. Al ejecutar la aplicacin, escribir Estoy invertido en la caja de texto y presionar el botn, veremos algo as:

42

Programacin I

Si no ponemos texto y presionamos el botn Invertir, veremos:

Como podemos ver la aplicacin est lista para ser probada en un dispositivo real. 43

Programacin I

Conclusin:

Con la informacin provista por este reporte hemos conocido en una pequea parte sobre Android, ya que es un tema amplio pero si se le dedica el tiempo necesario sin duda alguna podemos convertirnos en grandes desarrolladores de aplicaciones para estos tipos de dispositivos.

Ahora solo nos resta poner en marcha nuestra imaginacin y empezar a utilizar este potente software, que son los elementos bsicos en la creacin de programas, que no se pueden comparar con los que estos dispositivos traen por defecto pero con el pasar de los tiempos podremos lograr grandes aplicaciones.

44

Programacin I

Bibliografa:

http://es.wikipedia.org/wiki/Android

http://www.configurarequipos.com/doc1107.html

http://es.onsoftware.com/p/prueba-android-google

http://celutron.blogspot.com/2007/11/qu-es-android.html

45