instalacion de android en java-eclipse

24
Programación Gráfica UNI Guía de Laboratorio No.2 Eclipse con Android y Java Programación Gráfica Ingeniería en Computación CONTROL DE VERSIÓN NOMBRE COMPLETO FECHA DESCRIPCIÓN DEL CAMBIO Glenda Barrios Aguirre Mayo, 2012 Versión Original Objetivos del Laboratorio 1. Introducir al ambiente de programación de Eclipse con Android y Java 2. Mostrar los pasos necesarios para crear una aplicación Android Indice de Contenido 1.1. ¿Qué es Android?....................................2 1.2. Crear un Proyecto Android...........................3 1.3. Generar el .apk para el market de una aplicación Android desde Eclipse....................................6 1.4. Estructura de Archivos de un Proyecto Android......10 Profesora Glenda Barrios Aguirre 1

Upload: francisco-gonzales

Post on 26-Jul-2015

114 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Instalacion de Android en java-eclipse

Programación Gráfica UNI

Guía de Laboratorio No.2Eclipse con Android y Java

Programación GráficaIngeniería en Computación

CONTROL DE VERSIÓNNOMBRE COMPLETO FECHA DESCRIPCIÓN DEL CAMBIO

Glenda Barrios Aguirre Mayo, 2012 Versión Original

Objetivos del Laboratorio1. Introducir al ambiente de programación de Eclipse con Android y Java2. Mostrar los pasos necesarios para crear una aplicación Android

Indice de Contenido1.1. ¿Qué es Android?.....................................................................................................21.2. Crear un Proyecto Android.......................................................................................31.3. Generar el .apk para el market de una aplicación Android desde Eclipse................61.4. Estructura de Archivos de un Proyecto Android.....................................................10

Profesora Glenda Barrios Aguirre 1

Page 2: Instalacion de Android en java-eclipse

Programación Gráfica UNI

1.1. ¿Qué es Android?

Android es un sistema operativo para dispositivos móviles, al igual que iOS, Symbian y Blackberry OS, con la diferencia que está basado en Linux, con un núcleo de sistema operativo libre, gratuito y multiplataforma.

El sistema permite programar aplicaciones sobre una máquina virtual llamada Dalvik con un lenguaje de programación ampliamente conocido y fácil de manejar como es Java. El sistema operativo proporciona todas las interfaces necesarias para desarrollar aplicaciones que accedan a las funciones del teléfono tales como GPS, llamadas, agenda, entre otras.

Figura No.1 Arquitectura del Sistema Operativo Android

Profesora Glenda Barrios Aguirre 2

Page 3: Instalacion de Android en java-eclipse

Programación Gráfica UNI

1.2. Crear un Proyecto Android

1. Desde Eclipse ir a File, New, Project

Figura No.1. Crear nuevo Proyecto Android

2. En la nueva ventana seleccionar Android Project y presionar Next.

Figura No.2. Ventana de tipos de Proyectos

3. En la nueva ventana registrar el nombre del Proyecto, además desmarque la opción que hace referencia a la localización y especifique su directorio de trabajo, por último haga click en el botón next. En el ejemplo se definió como directorio de trabajo D:/Buzon/AndroidEjemplos/

Profesora Glenda Barrios Aguirre 3

Page 4: Instalacion de Android en java-eclipse

Programación Gráfica UNI

Figura No.3. Parámetros del Proyecto Android

4. Seleccione la versión del Sdk de Android con la cual trabajará, es posible que aparezca mas de una, según la versión instalada, de esta ventana seleccione la 2.1 para garantizar la compatibilidad de la aplicación en los dispositivos.

Figura No.4. Versión SDK de Android

5. En la nueva ventana debe especificar el nombre de la aplicación en el campo Application Name, el nombre del paquete en Package Name, el cual está compuesto de 3 partes cada una separada por un punto (.), en la primera

Profesora Glenda Barrios Aguirre 4

Page 5: Instalacion de Android en java-eclipse

Programación Gráfica UNI

generalmente se especifica com, la siguiente Android y por último se repite el nombre que se haya especificado para la aplicación, posteriormente tenemos el campo Minimun SDK que indica la versión mínima de sistema operativo donde la aplicación puede operar en este caso fue Android 2.1 correspondiente al SDK 7. Luego de definido los tres valores mencionados haga click en el botón Finish.

Figura No.5. Definiendo los parámetros de la aplicación

6. Ejecutar proyecto ubicándose en el proyecto correspondiente y seleccionando la opción correspondiente para correrlo como aplicación Android.

Figura No.7. Ejecutando una aplicación Android

Profesora Glenda Barrios Aguirre 5

Page 6: Instalacion de Android en java-eclipse

Programación Gráfica UNI

Figura No.8. Resultado de la aplicación por defecto al ejecutarse.

Es valido mencionar que en esta imagen aparece el texto “Hola a todos” porque se cambió su valor al editarse el archivo strings.XML ubicado en /res/values con el ADT.

1.3. Generar el .apk para el market de una aplicación Android desde Eclipse

7. Ubicarse en el proyecto que se pretende generar, click derecho y seleccionar la opción "Android Tools"- > "Export Signed Application Package"

Profesora Glenda Barrios Aguirre 6

Page 7: Instalacion de Android en java-eclipse

Programación Gráfica UNI

Figura No.9. Generar un apk con autenticación para distribución

8. En la siguiente ventana aparecerá seleccionado el proyecto en donde nos ubicamos, hacer click en Next.

Profesora Glenda Barrios Aguirre 7

Page 8: Instalacion de Android en java-eclipse

Programación Gráfica UNI

9. En la siguiente ventana se le solicitará la ruta en donde queremos generar el apk y el nombre del archivo con el cual queremos generarlo, selecciono la ruta del proyecto y especifico como nombre de archivo PrimitivasInstalador esto para el campo Location, luego en los campos Password y Confirm especifico la clave.

Profesora Glenda Barrios Aguirre 8

Page 9: Instalacion de Android en java-eclipse

Programación Gráfica UNI

10. En la siguiente ventana especifico los valores para crear la clave, alias, password, validez por defecto se sugiere 25 años, y nombre del propietario. Especificar como valor una clave de longitud minima de 8 caracteres.

11. En la siguiente ventana hacer click en el botón Finish. Verifique la ruta por defecto que especifica para el file APK para luego buscarlo en esta ubicación.

Profesora Glenda Barrios Aguirre 9

Page 10: Instalacion de Android en java-eclipse

Programación Gráfica UNI

1.4. Estructura de Archivos de un Proyecto Android

Dentro de la tanta documentación leída encontré este archivo en donde se explica a detalle la estructura de archivos de un Proyecto Android lo cual considero importante de entender antes de empezar cualquier codificación.

Figura No.6. Estructura de archivos de un Proyecto Android

Código Fuente

El código fuente de la aplicación se sitúa en dos carpetas: src y gen.

/src: Se encuentran las clases codificadas por nosotros. /gen: Se encuentran las clases que se generen automáticamente, normalmente como resultado de procesar otros archivos del proyecto.

Ambas carpetas contienen archivos escritos en Java con extensión .java, y ambas se organizan por paquetes. Cada clase Java, incluidas las creadas por nosotros, pertenece a un paquete. Además, un paquete puede contener a su vez otros paquetes. Eso crea una estructura en forma de árbol que se traduce en carpetas dentro de carpetas en el disco duro.

Cuando creamos la aplicación tuvimos que especificar el nombre del paquete en el que se incluirían de forma predeterminada nuestras. El nombre constaba de tres partes separadas por puntos, para el ejemplo el valor especificado fue: com.Android.Labo1. Al generar el proyecto, Eclipse debe crear una carpeta para cada una de las partes del nombre del paquete, cada una dentro de la anterior, situando el archivo Labo1.java en la más interna de ellas. Ver figura

Profesora Glenda Barrios Aguirre 10

Page 11: Instalacion de Android en java-eclipse

Programación Gráfica UNI

Figura No.7. Estructura de directorios creada a partir del paquete

Si tenemos muchas clases en el proyecto y queremos organizarlas, podemos crear nuevos paquetes. Éstos tendrán que ser descendientes del paquete inicial (com.Android.Labo1) o de otro de los paquetes que ya hayamos creado. Para que un paquete sea descendiente de otro tiene que llevar el nombre del padre como prefijo. Por ejemplo, un descendiente del paquete inicial podría ser com.Android.Labo1.Actividades.

A la hora de visualizar los paquetes en la vista Package Explorer tenemos dos opciones: verlos de forma jerárquica o de forma plana. Para cambiar de un modo a otro hay que pulsar el botón del triángulo blanco para desplegar un menú en el que seleccionaremos Package Presentation para mostrar las dos opciones: Flat (vista plana) y Hierarchical (vista jerárquica).

Figura No.8. Trabajando con las vistas de presentación de paquetes

Profesora Glenda Barrios Aguirre 11

Page 12: Instalacion de Android en java-eclipse

Programación Gráfica UNI

Figura No.9. Imagen resultante de ambas vistas: Jerárquica vs Plana

En la primera imagen podemos ver que se logra visualizar al paquete Labo1 como hijo de com.Android.Labo1, en la vista plana se presentan al mismo nivel aunque se indica la dependencia a través del nombre.

El nombre de la clase principal Java del Proyecto Android lo definimos cuando creamos el proyecto en la ventana donde se especificó el campo Create Activity. Ver figura.

Figura No.10. Imagen donde se definió la clase principal Java del Proyecto

Si abrimos la clase principal de Java del Proyecto haciendo doble click sobre el, o abriéndolo en modo edición podremos ver que la clase efectivamente hereda de Activity. El asistente crea el código mínimo para mostrar el saludo.

Profesora Glenda Barrios Aguirre 12

Page 13: Instalacion de Android en java-eclipse

Programación Gráfica UNI

Figura No.11. Contenido de la clase Labo1Activity.java

De forma análoga, si desplegamos la carpeta gen y el paquete que contiene veremos un único archivo de código fuente con el nombre R.java. Este archivo lo genera automáticamente el compilador y contiene identificadores para los recursos incluidos en el proyecto. Al estar declarados en Java, esos identificadores se pueden utilizar en el resto del programa para hacer referencia a los recursos que identifican.

Figura No.12. Contenido de la clase R.java

De esto podemos decir que los identificadores de recursos se definen como constantes enteras a las que se les asignan números en hexadecimal, todos diferentes. Los identificadores se agrupan en clases, cada una de ella representando a un tipo de recurso distinto. Esas clases, a su vez, se declaran dentro de una clase global de nombre R. El asistente nos creó cuatro recursos: el icono predeterminado para la aplicación, el diseño (layout) predeterminado para la actividad principal de la aplicación y dos cadenas de texto, una para el nombre de la aplicación y otra para el mensaje (el saludo) que se muestra en la actividad.

Un detalle sobre la vista Package Explorer es que los archivos .java tienen a su vez una estructura jerárquica que permite desplegar los elementos internos. Dichos elementos se muestran también de forma jerárquica según las relaciones que tienen en el propio

Profesora Glenda Barrios Aguirre 13

Page 14: Instalacion de Android en java-eclipse

Programación Gráfica UNI

código fuente. Así, podemos ver la jerarquía de clases y los atributos o métodos que contienen representados como hijos de las clases en el árbol. Haciendo doble click con el botón izquierdo del ratón sobre cualquiera de esos elementos veremos su definición en la ventana de edición, lo que puede resultar bastante útil para localizarlos cuando los archivos empiezan a crecer.

Figura No.13. Vista jerárquica de los componentes de las clases Java

Los recursos

Se consideran recursos todos aquellos elementos que utiliza la aplicación que no forman parte del código fuente. Normalmente se tratan como recursos las imágenes, los archivos de audio, animaciones, vídeos, etc. Android permite definir fuera del código también otros elementos como cadenas de texto, menús o incluso los diseños de las actividades. Es lo que se denomina externalización de recursos, y es algo bastante útil porque permite modificarlos de forma mucho más sencilla que si estuvieran codificados en archivos Java y porque permite tener variantes para un mismo recurso, de forma que se pueda usar uno u otro según las características del dispositivo donde se ejecute la aplicación. Esta última característica es la más importante de todas, dado que permite que los textos de la aplicación se muestren en el idioma que tiene configurado el usuario o que la disposición de los elementos visuales se adapte al tamaño de la pantalla.

Los recursos se localizan todos dentro de la carpeta res del proyecto. Se distribuyen en carpetas, cada una de las cuales representa un tipo de recursos. Los nombres de estas carpetas están prefijados, aunque no es necesario incluirlas todas.

Otro detalle importante de los recursos es que no sólo se pueden utilizar en el código fuente de la aplicación, también se pueden utilizar en otros recursos. Por ejemplo, un diseño puede incluir cadenas, dimensiones o colores que también estén definidos como recursos. Podemos ver un ejemplo de esto en el archivo res/layout/main.xml de nuestro proyecto. En ese archivo, que contiene el diseño de la actividad principal de la

Profesora Glenda Barrios Aguirre 14

Page 15: Instalacion de Android en java-eclipse

Programación Gráfica UNI

aplicación, se hace referencia a la cadena hello que se define en el archivo res/values/strings.xml y que contiene el saludo que muestra la aplicación.

Recursos simples

Se nos ubicamos dentro de la carpeta values, podemos ver diversos tipos. Todos se definen en archivos XML. Dentro de la carpeta values puede haber varios archivos XML cuyo nombre es irrelevante. Cada uno de estos archivos puede contener definiciones de recursos de diversos tipos mezcladas. Sin embargo, se recomienda agrupar todos los recursos del mismo tipo en un mismo archivo, no mezclarlos, y darle al archivo un nombre representativo: strings.xml, colors.xml, etc.

El plugin ADT proporciona un editor de texto para editar directamente el XML o un editor simple de recursos que permite crear algunos de los tipos utilizando cuadros de diálogo:

Figura No.14. Activando el editor de recursos del ADT para Android

Dentro de la carpeta values podemos incluir varios tipos de recursos:

Cadenas de texto: Pueden ser cadenas independientes o arrays de cadenas Colores: Se definen en hexadecimal y comenzando siempre por una

almohadilla (#). Deben incluir, como mínimo, tres valores, que se corresponden con la cantidad de rojo, verde y azul que componen el color deseado (formato RGB). Además, pueden llevar también información sobre el nivel de transparencia del color (lo que se denomina canal alfa). Si se omite, el color es completamente opaco.

Dimensiones: Normalmente se utilizan como atributos de otros recursos y permiten dar uniformidad a los distintos elementos que se muestran en pantalla, a la vez que posibilitan el cambiar su tamaño en función del tipo de pantalla que tenga el dispositivo que ejecuta la aplicación. Se definen con un número seguido (sin espacios) por una cadena que representa la dimensión.

Estilos: Permiten definir un conjunto de propiedades visuales que se pueden aplicar, todas juntas, a vistas o incluso actividades (aplicados como temas).

Profesora Glenda Barrios Aguirre 15

Page 16: Instalacion de Android en java-eclipse

Programación Gráfica UNI

Booleanos: Sólo pueden tener los valores true o false. Se suelen usar para hacer que la aplicación actúe de una forma u otra en función de las características del dispositivo donde se ejecuta.

Identificadores: Podemos crear identificadores únicos para la aplicación. Son similares a los que se generan automáticamente para cada recurso, pero sin la necesidad de tenerlos ligados a ninguno de ellos (aunque podemos hacerlo). La aplicación podría necesitar este tipo de identificadores en algunas situaciones. Por ejemplo, para usarlos como códigos de error o para identificar cuadros de diálogo.

Enteros: Son valores numéricos que se utilizan de forma similar a como se usan los booleanos. Aunque, a diferencia de estos últimos, aquí podemos definir arrays de enteros.

Arrays genéricos con tipo: Se pueden crear arrays de recursos, bien sea de recursos ya definidos (identificados por su nombre) como de recursos genéricos (sin nombre asociado).

Recursos gráficos

La mayoría de los recursos gráficos se localizan bajo la carpeta drawable y pueden ser de numerosos tipos. Sin embargo, la mayor parte de las veces usaremos sólo unos pocos:

Mapas de bits: Imágenes sencillas en formato PNG, JPG o GIF (aunque el más recomendable es el PNG). Los archivos se copian directamente a la carpeta drawable y se identifican en la aplicación por su nombre (el del archivo).

Imágenes redimensionables (nine-pacth): imágenes compuestas por nueve imágenes más pequeñas que permiten escalar el objeto rectangular representado a cualquier tamaño. Las imágenes se corresponden con las 4 esquinas del objeto (no cambian de tamaño), los cuatro laterales (se estiran en la dirección correspondiente) y el centro (se redimensiona al tamaño adecuado). Se utilizan para proporcionar gráficos para controles como botones, que se pueden adaptar a diferentes tamaños. Son archivos con extensión .png que se sitúan directamente en el directorio drawables.

Animaciones: las hay de dos tipos:o Animaciones imagen a imagen (Frame Animations): se definen en

archivos XML, en la carpeta drawable. Cada elemento de la animación es otro recurso gráfico de la carpeta drawable junto con el tiempo que tiene que visualizarse.

o Animaciones basadas en transformaciones (Tween Animations): se definen también en archivos XML, pero en la carpeta anim. Contienen una serie de transformaciones y efectos, como desvanecimientos, rotaciones, escalados o desplazamientos, que se aplican en el orden y con las características definidas a la imagen que queramos.

Profesora Glenda Barrios Aguirre 16

Page 17: Instalacion de Android en java-eclipse

Programación Gráfica UNI

Diseños

Los diseños definen la forma de disponer los elementos visuales en la pantalla. Se aplican a las actividades (el equivalente a las ventanas en un sistema operativo de PC) y contienen vistas (el equivalente a los controles) y la forma de distribuirlas.

Se definen en archivos XML dentro de la carpeta layout e incluyen todas las vistas y grupos de vistas (contenedores de otras vistas) que se quieren mostrar en pantalla, personalizadas por medio de los diferentes atributos que poseen. Lo habitual es utilizar el resto de recursos para personalizar estas vistas: cadenas de texto, colores, dimensiones e incluso elementos gráficos.

Es el principal recurso de las interfaces de usuario.

Resto de recursos

Por completitud, voy a enumerar en esta sección el resto de recursos que se pueden tener en el proyecto, aunque se utilicen con algo menos de frecuencia:

Lista de colores para estados: Es un recurso que se define en XML en la carpeta color y que se utiliza como si fuera un color normal (de los que se definen en la carpeta values). La diferencia radica en que no define un único color, sino varios: uno por cada estado que pueda tener el elemento al que se le aplique. De esta forma, el color se cambiará automáticamente cada vez que cambie el estado del objeto. Por ejemplo, un botón puede tener diferente color cuando está pulsado y cuando no lo está.

Archivos XML: Aunque la mayoría de recursos se definen en archivos XML, cada uno en la carpeta que le corresponde, también es posible que necesitemos disponer de archivos XML específicos para utilizarlos en la aplicación directamente. Esos archivos se sitúan en la carpeta xml. Un ejemplo de esto es el archivo XML que se utiliza para definir la pantalla de preferencias de la aplicación.

Otros archivos de recursos: Archivos que se utilizarán directamente en la aplicación. Se colocan en la carpeta raw.

Profesora Glenda Barrios Aguirre 17

Page 18: Instalacion de Android en java-eclipse

Programación Gráfica UNI

Otras carpetas

Hay más carpetas en el proyecto, aunque algunas no las crea directamente el asistente:

Carpeta libs: aquí se sitúan las bibliotecas privadas que utiliza el proyecto. Las bibliotecas son conjuntos de archivos java compilados y empaquetados en un archivo JAR. Sirven para reutilizar conjuntos de clases en otros proyectos, sin tener que copiar los archivos java individuales y sin tener que proporcionar el código fuente.

Carpeta assets: aquí se pueden colocar también archivos que se utilizarán directamente en la aplicación (igual que los que se incluyen en la carpeta res/raw). La diferencia es que a los que se incluyen en la aplicación como recursos se accede por medio del identificador que se les asigna al compilar, mientras que a los de la carpeta assets se accede de forma similar a como se accede a archivos externos, pudiendo incluso navegar por los directorios que creemos.

Carpeta bin: esta carpeta, que se crea al compilar por primera vez, contendrá los archivos resultantes de la compilación: el paquete de la aplicación (archivo .apk), las clases compiladas a bytecode Java (archivos .class), los recursos compilados, etc.

El Manifest

Además de carpetas, también se incluyen en el proyecto algunos archivos genéricos que, sin ser parte del código fuente o recursos, determinan la forma en que se generará la aplicación al compilar. De todos ellos, el archivo AndroidManifest.xml es el más importante de todos.

Este archivo, el Manifest de la aplicación, contiene la información que el sistema operativo necesita conocer antes de poder ejecutar la aplicación. Su contenido se resume de la siguiente manera.

Identificación de la aplicación: Nombre del paquete, número de versión, etc. También si permitimos que la aplicación se pueda mover a la tarjeta SD.

Atributos de la aplicación: El nombre que se le mostrará al usuario, icono y logotipo, una descripción de su funcionalidad e incluso permisos globales.

Permisos: los que requiere la aplicación para funcionar. Son los que se le muestran al usuario antes de instalarla.

Componentes hardware: Los que la aplicación utiliza o puede utilizar. Se puede indicar si son indispensables o no y sirven para que la aplicación sólo aparezca en el Android Market de equipos compatibles.

Pantallas: Las que son compatibles con la aplicación. También se utiliza para filtrar aplicaciones en el Android Market.

Versiones de Android: La mínima versión que la aplicación requiere para ejecutarse y aquella para la que se ha creado (que no tienen por qué coincidir). Principal elemento de filtrado en el Android Market.

Profesora Glenda Barrios Aguirre 18

Page 19: Instalacion de Android en java-eclipse

Programación Gráfica UNI

Actividades: Datos de todas las actividades que incluye la aplicación, como nombre, icono, permisos de ejecución, etc.

Otros componentes de la aplicación: Datos de servicios, proveedores y receptores de contenidos, etc.

A continuación se agregaron las imágenes de las 3 vistas principales del archivo Manifest.XML que nos proporciona el plugin ADT.

Profesora Glenda Barrios Aguirre 19

Page 20: Instalacion de Android en java-eclipse

Programación Gráfica UNI

Figura No.15. Código XML del archivo Manifest.XML

El resto de archivos

Aunque el manifiesto es el más importante de todos, hay más archivos genéricos en un proyecto Android:

project.properties: Fichero generado que contiene las propiedades del proyecto, las que se definen en Eclipse en Project | Properties | Android.

build.properties: Contiene la información necesaria para firmar automáticamente la aplicación (necesario para poder publicarla en el Android Market). Con Eclipse no se utiliza porque dispone de un asistente específico para ello.

build.xml: Contiene la información necesaria para compilar el proyecto desde línea de comandos. No se utiliza en Eclipse.

Profesora Glenda Barrios Aguirre 20