desarrolle aplicaciones android eclipse

23
El sistema Android es la plataforma de comunicaciones para cómputo inalámbrico y móvil de Google discutida con mayor frecuencia. Usted puede aprovechar el poderoso entorno Eclipse para desarrollar aplicaciones con el plug-in de Android. Este tutorial introduce el desarrollo de aplicaciones Android con el complemento para Eclipse también conocido como Android Development Tools (ADT). El tutorial proporciona una introducción al desarrollo Android con una rápida introducción a la plataforma, un recorrido por ADT e incluye la construcción de dos aplicaciones de ejemplo. Después de que terminara su carrera basquetbolista colegial sin un contrato multianual para jugar para los Lakers de Los Ángeles, Frank Ableson cambió su enfoque hacia el diseño de software informático. Disfruta solucionando problemas complejos, particularmente en las áreas de comunicaciones e interfaces de hardware. Cuando no está trabajando, está pasando el tiempo con su esposa Nikki y sus hijos. Es posible contactar a Frank escribiendo a [email protected]. 18-02-2013 Antes de comenzar Este tutorial presenta el desarrollo de aplicaciones Android dentro del entorno Eclipse, incluyendo la construcción de dos aplicaciones de ejemplo. La primera es una aplicación básica de inicio, que se completa con todas las fases de construcción y depuración. La segunda aplicación examina las funciones más complejas de Android, incluyendo la búsqueda de direcciones de Google Maps y la búsqueda de contactos. Para aprovechar al máximo este tutorial, la experiencia de desarrollo móvil es útil pero no obligatoria. Las habilidades de programación Java™ son necesarias para las aplicaciones Android, pero no son un requisito explícito para este tutorial. Acerca de este tutorial ¿Por qué nos interesa Android? Android es una plataforma importante por dos razones. Primero, el hecho de que Google lo esté introduciendo y la notoriedad que Android ha obtenido en un periodo de tiempo tan corto. Google está mostrando su poderío e intentando ganar el abarrotado mercado móvil. Su primera salva en este mercado, Android y la Open Handset Alliance es un impresionante punto de partida. La segunda razón por la que Android es importante es porque no es solo otra plataforma móvil con un menú telefónico y una pantalla táctil. Como aprenderá en este tutorial, Android toma un abordaje distinto para las aplicaciones. La arquitectura de Android permite un entorno de software altamente personalizable gracias a su enlace de ejecución de las acciones solicitadas y el código para satisfacer estas solicitudes. Ya sea por las consideraciones dirigidas por el mercado o los aspectos técnicos de Android, es una plataforma digna de examinar. Este tutorial está organizado en las siguientes secciones: Herramientas requeridas y lo básico de Android El kit de desarrollador de software Android Construir y depurar la aplicación SaySomething Android developerWorks en español developerWorks en español Temas Técnicos Temas Técnicos Desarrollo móvil Desarrollo móvil Biblioteca técnica Biblioteca técnica Desarrolle aplicaciones Android con Eclipse Desarrolle aplicaciones Android con Eclipse Comience con el plug-in para Eclipse de Google, Android Development Tools Desarrolle aplicaciones Android con Eclipse http://www.ibm.com/developerworks/ssa/opensou... 1 of 23 14/07/14 14:09

Upload: avionado

Post on 16-Jan-2016

38 views

Category:

Documents


0 download

DESCRIPTION

Por IBM

TRANSCRIPT

Page 1: Desarrolle Aplicaciones Android Eclipse

El sistema Android es la plataforma de comunicaciones para cómputo inalámbrico y móvil de Google discutida con

mayor frecuencia. Usted puede aprovechar el poderoso entorno Eclipse para desarrollar aplicaciones con el plug-in de

Android. Este tutorial introduce el desarrollo de aplicaciones Android con el complemento para Eclipse también

conocido como Android Development Tools (ADT). El tutorial proporciona una introducción al desarrollo Android con

una rápida introducción a la plataforma, un recorrido por ADT e incluye la construcción de dos aplicaciones de

ejemplo.

Después de que terminara su carrera basquetbolista colegial sin un contrato multianual para jugar para los Lakers de Los Ángeles, Frank

Ableson cambió su enfoque hacia el diseño de software informático. Disfruta solucionando problemas complejos, particularmente en las

áreas de comunicaciones e interfaces de hardware. Cuando no está trabajando, está pasando el tiempo con su esposa Nikki y sus hijos. Es

posible contactar a Frank escribiendo a [email protected].

18-02-2013

Antes de comenzar

Este tutorial presenta el desarrollo de aplicaciones Android dentro del entorno Eclipse, incluyendo la

construcción de dos aplicaciones de ejemplo. La primera es una aplicación básica de inicio, que se

completa con todas las fases de construcción y depuración. La segunda aplicación examina las funciones

más complejas de Android, incluyendo la búsqueda de direcciones de Google Maps y la búsqueda de

contactos. Para aprovechar al máximo este tutorial, la experiencia de desarrollo móvil es útil pero no

obligatoria. Las habilidades de programación Java™ son necesarias para las aplicaciones Android, pero

no son un requisito explícito para este tutorial.

Acerca de este tutorial

¿Por qué nos interesa Android? Android es una plataforma importante por dos razones. Primero, el hecho

de que Google lo esté introduciendo y la notoriedad que Android ha obtenido en un periodo de tiempo tan

corto. Google está mostrando su poderío e intentando ganar el abarrotado mercado móvil. Su primera

salva en este mercado, Android y la Open Handset Alliance es un impresionante punto de partida. La

segunda razón por la que Android es importante es porque no es solo otra plataforma móvil con un menú

telefónico y una pantalla táctil. Como aprenderá en este tutorial, Android toma un abordaje distinto para

las aplicaciones. La arquitectura de Android permite un entorno de software altamente personalizable

gracias a su enlace de ejecución de las acciones solicitadas y el código para satisfacer estas solicitudes.

Ya sea por las consideraciones dirigidas por el mercado o los aspectos técnicos de Android, es una

plataforma digna de examinar.

Este tutorial está organizado en las siguientes secciones:

Herramientas requeridas y lo básico de Android

El kit de desarrollador de software Android

Construir y depurar la aplicación SaySomething Android

developerWorks en españoldeveloperWorks en español Temas TécnicosTemas Técnicos Desarrollo móvilDesarrollo móvil Biblioteca técnicaBiblioteca técnica

Desarrolle aplicaciones Android con Eclipse

Desarrolle aplicaciones Android con Eclipse

Comience con el plug-in para Eclipse de Google, Android Development Tools

Desarrolle aplicaciones Android con Eclipse http://www.ibm.com/developerworks/ssa/opensou...

1 of 23 14/07/14 14:09

Page 2: Desarrolle Aplicaciones Android Eclipse

Crear la aplicación Google Maps y proveedor de contenido

Requisitos de sistema

Este tutorial requiere de varias tecnologías que trabajen juntas Necesita a todas ellas para este tutorial.

Plataforma de Eclipse

Eclipse es la plataforma sobre el que se ejecuta el plug-in. Obtenga la última versión de Eclipse Classic

(en este tutorial se utilizó V3.3.1).

Herramientas desarrolladoras de Android

Las herramientas desarrolladoras de Android (el plug-in de Eclipse) se podrían instalar siguiendo las

instrucciones que se encuentran en Instalar el Android SDK.

Código fuente

Los fragmentos de código fuente en este tutorial incluyen:

Fragmento AndroidManifest.xml — Este archivo es el descriptor del despliegue de aplicaciones para

aplicaciones Android.

IntentReceiver—Esto demuestra la implementación de un IntentReceiver, que es la clase que

procesa las intenciones según se promociona por la etiqueta IntentFilter en el archivo

AndroidManifest.xml.

SaySomething.java — Esto implementa una actividad Android, el punto de entrada principal para la

misma aplicación de este tutorial.

Main.xml — Esto contiene los elementos visuales o recursos para el uso de las actividades Android.

R.java — Este archivo se genera automáticamente por las Herramientas desarrolladoras de Android y

"conecta" los recursos visuales para el código fuente Java.

AndroidManifest.xml complete — Esto enumera un archivo AndroidManfest.xml completo, junto con

una descripción de cada uno de los elementos importantes.

MobileServiceCallContacts.java — Esto contiene el código necesario para mostrar los contactos así

como reaccionar a la entrada de usuario para llevar a cabo después una búsqueda de direcciones de

Google Maps.

Introducción a Android

Antes de ahondar en los detalles prácticos del plug-in Eclipse y desarrollar las aplicaciones Android,

analicemos la arquitectura de Android y algunos términos claves que serán útiles en el tutorial y más allá,

a medida que comienza a construir aplicaciones Android por usted mismo.

Terminología Android

El desarrollo de aplicaciones Android bajo el entorno Eclipse requiere de un conocimiento del entorno

Eclipse y de la plataforma Android. La comprensión de los términos a continuación es útil en el desarrollo

de las aplicaciones Android con el plug-in Eclipse.

Open Handset Alliance

Esta es la organización dirigida por Google Inc., que consiste en numerosas organizaciones públicas y

privadas.

Desarrolle aplicaciones Android con Eclipse http://www.ibm.com/developerworks/ssa/opensou...

2 of 23 14/07/14 14:09

Page 3: Desarrolle Aplicaciones Android Eclipse

Android

El producto principal de la Open Handset Alliance. Este es un entorno operativo de código abierto

dirigido a los dispositivos móviles.

Emulador

Un representante de herramientas de software de otro sistema — Este es a menudo un entorno que se

ejecuta en una computadora personal (IBM®, Mac, Linux)® que emula otro entorno, como por ejemplo

un dispositivo de computación móvil.

Linux

Un kernel de sistema operativo de código abierto en el corazón de varias plataformas de informática,

incluyendo servidores, computadoras de escritorio, dispositivos de red y dispositivos de computación

móvil. Android se ejecuta por encima de un kernel de Linux.

Dalvik Virtual Machine

La Dalvik VM es un entorno operativo que se encuentra en la pila de Android, que interpreta el código

de aplicación en el tiempo de ejecución. La Dalvik VM es similar a una Java VM compatible, pero las

dos no son compatibles.

Herramientas requeridas y lo básico de Android

Este es un entorno operativo de código abierto dirigido a los dispositivos móviles. Al momento de este

escrito, es una plataforma solo de software sin dispositivos de hardware disponibles públicamente.

La plataforma de Android aparece mejor descrita como una pila porque es una colección de

componentes, que incluye:

Sistema operativo basado en kernel de Linux

Entorno de programación Java

Cadena de herramientas, que incluyen el compilador, compilador de recursos, depurador y emulador

Dalvik VM para aplicaciones que se ejecutan

Ahora que hemos introducido brevemente la arquitectura de la plataforma de Android, analicemos

algunas características importantes de la plataforma desde una perspectiva del mercado.

¿Por qué es importante Android?

La prensa de tecnología de computadoras ha desviado la atención a Android desde su anuncio y

comunicado inicial de SDK. Android resulta importante como una plataforma por dos razones distintas

pero convincentes entre muchas otras.

Android es un generador de mercado. El espacio de las aplicaciones móviles está abarrotado y resulta

difícil para un principiante obtener un equilibrio. Google tiene los recursos y la notoriedad para causar

impresión en cualquier mercado al que apunte. El ingreso de Google en el espacio móvil ha estado en

proceso por un par de años. Android era una compañía distinta e independiente que Google compró para

brindarle un impulso en una presencia móvil. Cualquier cosa que realice Google llama la atención y la

publicidad es buena para introducir nuevas plataformas. Anote un punto para Android.

La segunda razón por la que resulta importante Android es debido a su modelo de aplicación. Las

aplicaciones Android no son monolíticas ni están llenas de menú que requieren de que haga muchos clics

Desarrolle aplicaciones Android con Eclipse http://www.ibm.com/developerworks/ssa/opensou...

3 of 23 14/07/14 14:09

Page 4: Desarrolle Aplicaciones Android Eclipse

y presiones para que operen. Sin dudas, hay menús y botones para presionar pero Android tiene un

elemento de diseño innovador para su arquitectura conocido con una intención.

La intención

Una intención es una construcción que permite a una aplicación emitir un pedido, que es en cierto modo

como una señal para pedir ayuda. Podría verse así:

"Buscada: Una aplicación para ayudarme a buscar un contacto" o "Buscada: Una aplicación para

ayudarme a mostrar un contacto" o "Buscada: Una aplicación para realizar esta búsqueda basada en lo

geográfico".

De manera similar y complementaria, las aplicaciones se pueden registrar por sí mismas como capaces e

interesadas en desarrollar varias intenciones o solicitudes satisfactorias. Para seguir el paradigma

clasificado de publicidad, estas podrían verse así:

"Disponible: Aplicación lista y dispuesta a presentar los registros de contactos de manera clara y

concisa", o "Disponible: Aplicación lista y dispuesta a realizar una búsqueda basada en lo geográfico".

Estos son ejemplos de IntentFilters, que discutiremos más adelante.

El IntentFilter

Las aplicaciones anuncian su disponibilidad para realizar este tipo de operaciones a través de una

construcción conocida como un IntentFilter. El IntentFilter puede estar registrado en el tiempo de

ejecución o enumerado en el archivo AndroidManifest.xml. El siguiente fragmento proviene de una

aplicación Android que responde a mensajes de texto SMS entrantes:

Listado 1 Aplicación Android que responde a mensajes de texto SMS entrantes <receiver class=".MySMSMailBox" > <intent-filter> <action android:value="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver>

Después de esta breve introducción a la intención y el IntentFilter, la siguiente sección introduce los

cuatro tipos principales de aplicaciones Android.

Aplicaciones Android — Una rápida encuesta

Analicemos por un momento los cuatro tipos principales de aplicaciones Android: actividad, servicios,

receptores y ContentProvider. También analizaremos las vistas para mostrar los elementos de la

interfaz de usuario (UI).

Actividad

La actividad es la forma más visible y prominente de una aplicación Android. Una actividad presenta la UI

a una aplicación, junto con la asistencia de una clase conocida como una vista. La clase vista se

implementa como varios elementos UI, tales como recuadros de texto, etiquetas, botones y otras UI

típicas en las plataformas de informática, móviles o diferentes.

Una aplicación puede contener una o más actividades. Por lo general están en una relación uno a uno

con las pantallas encontradas en una aplicación.

Una aplicación se mueve de una actividad a otra al llamar un método conocido como startActivity()

Desarrolle aplicaciones Android con Eclipse http://www.ibm.com/developerworks/ssa/opensou...

4 of 23 14/07/14 14:09

Page 5: Desarrolle Aplicaciones Android Eclipse

o startSubActivity(). El método anterior se usa cuando la aplicación desea simplemente "cambiar" a

una nueva actividad. La última se utiliza cuando se desea un paradigma de respuesta/llamada

simultánea. En ambos casos, se pasa una intención como un argumento al método.

Es responsabilidad del sistema operativo determinar la actividad mejor calificada para satisfacer la

intención especificada.

Servicios y receptores

Como otros entornos de computación de procesos de tareas, existen aplicaciones ejecutándose "en el

fondo" que realizan varias tareas. Android llama a estos tipos de aplicaciones "servicios". El servicio es

una aplicación Android que no tiene UI.

El receptor es un componente de la aplicación que recibe solicitudes para procesar las intenciones. Como

el servicio, un receptor en la práctica normal no tiene un elemento UI. Los receptores están típicamente

registrados en el archivo AndroidManifest.xml. El fragmento que se muestra en el Listado 1 es un ejemplo

de una aplicación de receptor. Tenga en cuenta que el atributo clase del receptor es la clase Java

responsable por la implementación del receptor. El listado 2 es un ejemplo del código del receptor.

Listado 2. Código del receptorpackage com.msi.samplereceiver;

import android.content.Context;import android.content.Intent;import android.content.IntentReceiver;

public class myreceiver extends IntentReceiver {

public void onReceiveIntent(Context arg0, Intent arg1) {

// do something when this method is invoked.}

}

Gestión de datos con ContentProvider

El ContentProvider es el mecanismo Android para la abstracción del almacenamiento de datos.

Veamos un tipo específico de datos que se encuentra en un dispositivo móvil: la libreta de direcciones o

la base de datos de los contactos. La libreta de direcciones contiene todos los contactos y números de

teléfonos que una persona podría necesitar al usar un teléfono móvil. El ContentProvider es un

mecanismo para abstraer el acceso a un almacenamiento de datos determinado. De diferentes maneras,

el ContentProvider funciona en el rol de un servidor de base de datos. Las operaciones para leer y

escribir el contenido en un almacenamiento de datos determinado debería pasar a través del

ContentProvider apropiado, en lugar de acceder directamente a un archivo o base de datos. Puede

haber tanto "clientes" e "implementaciones" del ContentProvider.

La siguiente sección introduce las vistas Android, el mecanismo UI para colocar cosas en la pantalla de

un dispositivo Android.

Vistas

La actividad Android emplea las vistas para mostrar los elementos UI. Las vistas siguen uno de los

siguientes diseños:

LinearVertical

Cada elemento subsiguiente sigue su predecesor al fluir debajo de este en una única columna.

LinearHorizontal

Desarrolle aplicaciones Android con Eclipse http://www.ibm.com/developerworks/ssa/opensou...

5 of 23 14/07/14 14:09

Page 6: Desarrolle Aplicaciones Android Eclipse

Cada elemento subsiguiente sigue su predecesor al fluir hacia la derecha en una única fila.

Relative

Cada elemento subsiguiente se describe en términos de desplazamientos desde el elemento anterior.

Table

Una serie de filas y columnas similar a las tablas de HTML. Cada celda puede contener un elemento de

vista.

Una vez que se ha seleccionado un diseño particular (o una combinación de diseños), las vistas

individuales se usan para presentar la UI.

Los elementos de vista consisten en elementos UI familiarizados, que incluyen:

Button

ImageButton

EditText

TextView (similar a una etiqueta)

CheckBox

Botón de radio

Galería e ImageSwitcher para mostrar múltiples imágenes

Lista

Grilla

DatePicker

TimePicker

Spinner (similar a un cuadro combinado)

AutoComplete (EditText con la función auto completar el texto)

Las vistas se definen en un archivo XML. El Listada 3 muestra un ejemplo de un diseño simple

LinearVertical.

Listado 3 Diseño simple LinearVertical<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Activity 1!" /><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Activity 1, second text view!" /><Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Switch To Activity 2"

id="@+id/switchto2"/>

</LinearLayout>

Desarrolle aplicaciones Android con Eclipse http://www.ibm.com/developerworks/ssa/opensou...

6 of 23 14/07/14 14:09

Page 7: Desarrolle Aplicaciones Android Eclipse

Tenga en cuenta que cada elemento tiene uno o más atributos en el espacio de nombre de Android.

La siguiente sección guía al obtener el Android SDK y configurarlo para usar con Eclipse.

Kit de desarrollador de software Android

Ahora que sabemos sobre la plataforma Android, configuremos el entorno Eclipse para el desarrollo

Android para que podamos crear nuestras aplicaciones de ejemplo. Esta sección guía al obtener el

Android SDK y configurarlo para usar con Eclipse.

Obtener e instalar Eclipse

Si Eclipse no está instalado, descárguelo e instale el release estable más reciente de Eclipse IDE desde

la Eclipse Foundation (vea los Recursos). La instalación se encuentra en una carpeta comprimida.

Extraiga el contenido de la carpeta a un lugar conveniente en su computadora. El instalador no crea

ningún ícono o atajo en Windows®. A los fines de este tutorial, la carpeta Eclipse se localizará en el

directorio c:\software\eclipse.

Para iniciar Eclipse, haga doble clic en eclipse.exe que se encuentra en el directorio de instalación de

Eclipse. Esto iniciará el IDE. El software solicita un "espacio de trabajo" y sugiere una ubicación

predeterminada, por ejemplo, c:\documents y settings\username\workspace. Elija esta ubicación o

especifique una ubicación alternativa de espacio de trabajo.

Una vez que se carga Eclipse, haga clic en el ícono Workbench - Go to the workbench en la pantalla

principal.

Ahora es momento de obtener el Android SDK.

Obtener e instalar el Android SDK

Encuentre las descargas Android en los Recursos.

Existen versiones de instalación SDK disponibles para Windows, Mac OS X (solo Intel®) y Linux (i386).

Seleccione la versión más reciente del SDK para la plataforma deseada. Tenga en cuenta que al

momento de este escrito, la versión Android SDK más reciente se encuentra marcada con m3-rc37a.

El Android SDK se encuentra en una carpeta comprimida. Descargue y extraiga el contenido de esta

carpeta a un lugar conveniente en su computadora. A los fines de este tutorial, el SDK está instalado en

c:\software\google\android_m3-rc37a. Obviamente, si está instalando esto en Mac OS X y Linux, debería

instalar el SDK en donde coloca generalmente sus herramientas de desarrollo.

Se instalan tanto Eclipse como el Android SDK. Es momento de instalar el plug-in Eclipse para

aprovechar el entorno Eclipse.

Obtener e instalar el plug-in para Eclipse

Los siguientes pasos demuestran la instalación del plug-in para Eclipse, conocido oficialmente como

Herramientas desarrolladoras de Android. Tenga en cuenta que las direcciones alternativas de instalación

se encuentran disponibles en el sitio web de Android. Consulte los Recursos para más información.

Instalar las Herramientas desarrolladoras de Android:

Ejecute la función "Find and Install" en Eclipse, que se encuentra debajo del menú Help > Software1.

Desarrolle aplicaciones Android con Eclipse http://www.ibm.com/developerworks/ssa/opensou...

7 of 23 14/07/14 14:09

Page 8: Desarrolle Aplicaciones Android Eclipse

Updates .

Seleccione la opción Search for new features to install .2.

Seleccione New Remote Site. Dele un nombre a este sitio, como por ejemplo "Android Developer

Tools". Use la siguiente URL en el diálogo: https://dl-ssl.google.com/android/eclipse. Observe el HTTPS

en la URL. Esta es una descarga segura.

Figura 1. Nuevo sitio de actualización

3.

Se agrega una nueva entrada a la lista y se selecciona de manera predeterminada. Haga clic en

Finish. Los resultados de búsqueda muestran las Herramientas desarrolladoras de Android.

Seleccione Developer Tools y haga clic en Next.

4.

Después de revisar y aceptar el acuerdo de licencia, haga clic en Next. Tenga en cuenta que el

acuerdo de licencia incluye un requisito especial para usar la Google Maps API.

5.

Revise y acepte la ubicación de instalación, luego haga clic en Finish.6.

Se descarga e instala ahora el plug-in. El plug-in no se firma (al momento del escrito), por lo tanto

continúe en su propio nivel de comodidad al hacer clic en Install All, luego reinicie Eclipse.

Configurar el plug-in para Eclipse

Una vez que se reinicia Eclipse, es momento de conectar el plug-in para la instalación del SDK.

Seleccione Preferences bajo del menú Window. Haga clic en el elemento Android en las tres vistas

hacia la izquierda. En el panel derecho, especifique la ubicación de instalación SDK. El valor usado para

este tutorial es c:\software\google\android\m3-rc37a (nuevamente, use las ubicaciones apropiadas en las

instalaciones Mac OS X y Linux).

Una vez que se especifica la ubicación, existen otras tres secciones que se pueden configurar. Aquí se

mencionan brevemente:

La sección Build tiene opciones para recursos de reconstrucción automática. Deje esto seleccionado. La

opción Build puede cambiar el nivel de verbosidad. Normal es el valor predeterminado.

DDMS — El servicio de control de depuración Dalvik se usa para observar una VM que se está

ejecutando. Estas configuraciones especifican la cantidad de puertos TCP/IP que se usan para

conectarse con una VM que se está ejecutando con el depurador y varios niveles de registros y

opciones. La configuración predeterminada debería estar bien.

LogCat — Este es un archivo de registro que se crea en el kernel fundamental de Linux. La fuente es

seleccionable en este diálogo. Ajústelo según como desee.

¡Felicitaciones! El entorno Eclipse está listo para crear aplicaciones para Android.

Construyendo la aplicación SaySomething para Android

Esta sección crea una aplicación básica para Android, llamada SaySomething, usando las Herramientas

Desarrolle aplicaciones Android con Eclipse http://www.ibm.com/developerworks/ssa/opensou...

8 of 23 14/07/14 14:09

Page 9: Desarrolle Aplicaciones Android Eclipse

desarrolladoras de Android. Una vez que se crea la aplicación, la depuraremos y ejecutaremos.

Asistente para nuevo proyecto

El primer paso consiste en crear un nuevo proyecto. Seleccione el asistente para el proyecto Android,

como se muestra a continuación.

Figura 2. Asistente para nuevo proyecto

Los requisitos para las aplicaciones son:

Nombre

Ubicación

Nombre del paquete

Nombre de la actividad — Piense en esto como el "formulario" principal o la pantalla de la aplicación

Nombre de la aplicación

Observe el nuevo proyecto.

Figura 3. Nuevo proyecto Android

Desarrolle aplicaciones Android con Eclipse http://www.ibm.com/developerworks/ssa/opensou...

9 of 23 14/07/14 14:09

Page 10: Desarrolle Aplicaciones Android Eclipse

Esto creará una aplicación predeterminada lista para construir y ejecutar. Los componentes se pueden

ver en el Explorador del paquete, que discutimos a continuación.

El explorador del paquete

El Explorador del paquete (que se encuentra en la perspectiva de Java en Eclipse) muestra todos los

componentes de la misma aplicación Android (vea la Figura 4).

Figura 4 El explorador del paquete

Los elementos de la nota incluyen:

Carpeta src

Desarrolle aplicaciones Android con Eclipse http://www.ibm.com/developerworks/ssa/opensou...

10 of 23 14/07/14 14:09

Page 11: Desarrolle Aplicaciones Android Eclipse

Incluye el paquete para la aplicación de muestra, es decir com.msi.ibmtutorial.

R.java

Las Herramientas desarrolladoras de Android crean este archivo automáticamente y representan las

constantes necesarias para acceder a varios recursos de la aplicación Android. Más sobre la relación

entre la clase R y los recursos que se encuentran a continuación.

SaySomething.java

Implementación de la clase de actividad principal de la aplicación.

Bibliotecas de referencia

Contiene a android.jar, que es el archivo clase jar de tiempo de ejecución de Android, en el Android

SDK.

Carpeta res

Contiene los recursos para la aplicación, incluyendo:

Íconos

Archivos de diseño

Cadenas

AndriodManifest.xml

Descriptor del despliegue de la aplicación de muestra.

A continuación, examinaremos el código fuente en más detalle.

La actividad principal de la aplicación

La aplicación de muestra consiste en una sola actividad, concretamente SaySomething. Como se

describe más arriba, la clase SaySomething se implementa en el archivo SaySomething.java.

Listado 4. SaySomething.javapackage com.msi.ibmtutorial;

import android.app.Activity;import android.os.Bundle;

public class SaySomething extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); }}

Cosas para tener en cuenta sobre este fragmento fuente:

Desarrolle aplicaciones Android con Eclipse http://www.ibm.com/developerworks/ssa/opensou...

11 of 23 14/07/14 14:09

Page 12: Desarrolle Aplicaciones Android Eclipse

SaySomething es una clase Java normal, con un paquete e importaciones, como se espera.

SaySomething extiende una clase Android de base llamada Actividad, que se encuentra ubicada en el

paquete android.app.

El método onCreate() es el punto de entrada para esta actividad, al recibir un tipo de argumento

Bundle. El Bundle es una clase que es esencialmente un derivador entorno a un mapa o un mapa

hash. Los elementos requeridos para la construcción se pasan en este parámetro. Este tutorial no

examina este parámetro.

El setContentView(..) es responsable de crear la UI primaria con el argumento R.layout.main. Esto

es un identificador que representa el diseño principal que se encuentra en los recursos de la aplicación.

La siguiente sección revisa los recursos para la aplicación de muestra.

Recursos para la aplicación

Los recursos en Android se organizan en un subdirectorio del proyecto llamado res, según se describió

previamente. Los recursos entran en estas tres categorías primarias:

Dibujables

Esta carpeta contiene archivos de gráficos, por ejemplo, íconos y mapas de bits.

Diseños

Esta carpeta contiene archivos XML que representan los diseños y las vistas de la aplicación. Estos se

examinarán en detalle a continuación.

Valores

Esta carpeta contiene un archivo llamado strings.xml. Esta es el medio primario para la localización en

cadena para la aplicación.

La siguiente sección disecciona el archivo main.xml para revisar los recursos de la UI primaria de la

aplicación de muestra.

main.xml

La aplicación de muestra contiene una sola actividad y una sola vista. La aplicación contiene un archivo

llamado main.xml que representa los aspectos visuales de la UI primaria de la actividad. Tenga en cuenta

que no existe referencia en el main.xml donde se usa el diseño. Esto significa que se puede usar en más

de una actividad, si se desea. El Listado 5 tiene el contenido del archivo de diseño.

Listado 5 Archivo de diseño<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Hello World, SaySomething" /></LinearLayout>

Este es uno de los diseños más simplistas. Existe un solo diseño lineal, que se orienta como un diseño

vertical, lo que significa que todos los elementos que contiene están en una sola columna. Existe un solo

elemento TextView, que se puede comparar con una etiqueta en otros entornos de desarrollo. Una

TextView representa un texto estático que no se puede editar.

Desarrolle aplicaciones Android con Eclipse http://www.ibm.com/developerworks/ssa/opensou...

12 of 23 14/07/14 14:09

Page 13: Desarrolle Aplicaciones Android Eclipse

Tenga en cuenta que cada elemento (layout y TextView en este ejemplo) tiene atributos en el espacio

de nombre de Android. Algunos atributos son comunes para todas las vistas — los atributos

android:layout_width y android:layout_heigh, por ejemplo. Los valores disponibles para estos

atributos son:

Padre de relleno

Esto extiende el elemento de vista para tomar el máximo espacio disponible. Esto se puede pensar

también como "ampliar".

Contenido del envoltorio

Este valor le avisa a Android que pinte los elementos uno después del otro sin ampliar.

Durante el proceso de desarrollo, se compilan todos los recursos. Uno de los productos de ese proceso

es el archivo R.java, que representa los recursos para el recordatorio de la aplicación. El archivo R.java

se discute a continuación.

R.java

El archivo R.java se crea en construir automáticamente, por lo tanto asegúrese de no modificarlo a mano

porque se perderán todos los cambios. El listado 6 contiene el archivo R.java file para la aplicación de

muestra.

Listado 6. Archivo R.java/* AUTO-GENERATED FILE. DO NOT MODIFY. * * This class was automatically generated by the * aapt tool from the resource data it found. It * should not be modified by hand. */

package com.msi.ibmtutorial;

public final class R { public static final class attr { } public static final class drawable { public static final int icon=0x7f020000; } public static final class layout { public static final int main=0x7f030000; } public static final class string { public static final int app_name=0x7f040000; }}

La clase R contiene subclases anónimas, y cada una contiene identificadores para los diferentes recursos

previamente descritos. Tenga en cuenta que todas estas clases son estáticas.

Tenga en cuenta el elemento representado por: R.layout.main. Este identificador representa el diseño

definido por main.xml. Recuerde que este valor se usa en el método onCreate de la actividad de la

siguiente manera: setContentView(R.layout.main);. Este el punto en el que una actividad específica

(en este caso, SayAnything) y un diseño específico (principal) están vinculados en el tiempo de

ejecución.

Aplicaciones de construcción

Los archivos se compilan cada vez que se guardan por defecto.

Figura 5. Panel de error

Desarrolle aplicaciones Android con Eclipse http://www.ibm.com/developerworks/ssa/opensou...

13 of 23 14/07/14 14:09

Page 14: Desarrolle Aplicaciones Android Eclipse

Introducimos un error en el código fuente a donde agregamos un espacio adicional entre setContent y

View. Cuando se guarda el archivo, se compila y aparece cualquier error en el panel Problemas en la

parte inferior de la pantalla. Luego de corregir el error en el código fuente, la aplicación construye

adecuadamente y los errores se eliminan de la lista de problemas.

AndroidManifest.xml

El archivo AndroidManifest.xml representa al descriptor del despliegue para una aplicación Android. El

archivo enumera cualquier actividad, servicio, proveedor de contenido o receptor contenido en la

aplicación, junto con los IntentFilters apropiados soportados por la aplicación. Aquí se encuentra el

archivo completo AndroidManifest.xml para la aplicación de muestra.

Listado 5. Archivo AndroidManifest.xml<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.msi.ibmtutorial"> <application android:icon="@drawable/icon"> <activity class=".SaySomething" android:label="@string/app_name"> <intent-filter> <action android:value="android.intent.action.MAIN" /> <category android:value="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>

Cosas para tener en cuenta:

El nombre del paquete del archivo fuente se representa aquí. Esto sigue un patrón similar a un archivo

fuente Java y a las importaciones. La etiqueta <manifest> es en esencia de las clases "importación" de

este paquete. Todas las clases que no están completamente calificadas en este archivo se encuentran

en el paquete identificado en el atributo del paquete.

La etiqueta <application> tiene un atributo que hace referencia a un recurso de los recursos de la

aplicación Tenga en cuenta el símbolo @ que precede al identificador dibujable. Esta es una pista para

que el archivo mire en la carpeta dibujable de los recursos de la aplicación un recurso llamado "icon".

La etiqueta <activity> contiene los siguientes atributos y valores de la nota:

la clase representa la clase Java que implementa esta actividad

android:label es el nombre de la aplicación. Tenga en cuenta que proviene de uno de los recursos

en cadena. El archivo string.xml contiene cadenas localizadas para la aplicación.

<intent-filter> representa el IntentFilter disponible en la aplicación de muestra. Este es el

Desarrolle aplicaciones Android con Eclipse http://www.ibm.com/developerworks/ssa/opensou...

14 of 23 14/07/14 14:09

Page 15: Desarrolle Aplicaciones Android Eclipse

IntentFilter más común que se puede ver en las aplicaciones Android. Este filtro esencialmente

dice que implementa la acción "principal" (o punto de entrada) y que se encuentra ubicado en el

iniciador del OS. En español, esto significa que se puede iniciar como una aplicación desde la lista

principal de las aplicaciones en un dispositivo Android.

La siguiente sección describe cómo iniciar la aplicación en el Emulador de Android desde el interior de

Eclipse.

Ejecutar la aplicación

Ahora que la aplicación se ha compilado de manera correcta, es momento de ejecutar la misma

aplicación. Seleccione Open Run Dialog o atajo en la barra de herramientas dentro de Eclipse. Esto abre

un diálogo donde se crean las configuraciones de arranque. Resalte la opción de la Aplicación Android y

haga clic en el ícono para New.

La Figura 6 muestra los valores que se usan para el tutorial de muestra.

Figura 6. Diálogo de ejecución

Dele un nombre a la configuración La muestra del tutorial usa el nombre Tutorial Configuration.

Seleccione el proyecto ibmtutorial de la lista de los proyectos disponibles (haga clic en Browse para ver

los proyectos disponibles). Seleccione la actividad de arranque en el menú desplegable. Ahora

seleccione la pestaña Emulator para especificar las configuraciones del Emulador, como desee. El valor

predeterminado se puede dejar solo. Existe un par de elementos para tener en cuenta, según se describe

en la Figura 7.

Figura 7 Diálogo de ejecución, pestaña Emulator

Desarrolle aplicaciones Android con Eclipse http://www.ibm.com/developerworks/ssa/opensou...

15 of 23 14/07/14 14:09

Page 16: Desarrolle Aplicaciones Android Eclipse

Existen algunas orientaciones y tamaños de pantallas de las que se puede elegir, como así también

opciones de red. Las opciones de red son importantes cuando las aplicaciones de construcción que

emplean la conectividad de Internet como los dispositivos móviles tienen diferentes capacidades de

velocidad de red. Elija velocidades de red completas y sin latencia cuando diseñe un prototipo de una

aplicación. Una vez que se presenta la funcionalidad principal, es buena idea probar con condiciones de

red menos ideales para ver cómo responde la aplicación en situaciones con conectividad de red

subóptimas.

Seleccione Run para ver la aplicación de muestra en acción.

Figura 8. Emulator

Ahora que la aplicación se está ejecutando en el Emulator, es momento de ver qué está sucediendo

detrás de escena. El servicio de control de depuración Dalvik (DDMS) lo asistirá con esto.

Desarrolle aplicaciones Android con Eclipse http://www.ibm.com/developerworks/ssa/opensou...

16 of 23 14/07/14 14:09

Page 17: Desarrolle Aplicaciones Android Eclipse

Depuración de la aplicación

Para ver qué está sucediendo con una aplicación que se está ejecutando, es útil acceder a la Dalvik en

ejecución. Para habilitar esto desde Eclipse, seleccione Window > Open Perspective > Other. Esto

muestra un recuadro de diálogo donde se puede seleccionar el DDMS. Esto abre una nueva perspectiva

en Eclipse con un número de ventanas interesantes. Aquí tenemos una rápida introducción a los recursos

disponibles en la perspectiva DDMS:

El LogCat es un archivo de registro en ejecución de la actividad que tiene lugar en la VM. Las

aplicaciones pueden realizar sus propias entradas a esta lista con una simple línea de códigos de la

siguiente manera: Log.i(tag,message);, en donde tag y message son cadenas Java. La clase Log es

parte del paquete android.util.Log.

La Figura 9 muestra el LogCat en funcionamiento.

Figura 9. LogCat in action

Otra herramienta práctica en la DDMS es el explorador de archivo, que permite acceso al sistema de

archivo del Emulator. La Figura 10 muestra donde se implementa la aplicación de muestra del tutorial en

el Emulator.

Figura 10. Aplicación de muestra implementada en el Emulator

Las aplicaciones de usuario se despliegan en /data/app mientras que las aplicaciones incorporadas

Android se encuentran en el directorio /system/app.

También se encuentra disponible una lista de proceso en ejecución en el DDMS.

Figura 11. Lista de proceso en ejecución

Desarrolle aplicaciones Android con Eclipse http://www.ibm.com/developerworks/ssa/opensou...

17 of 23 14/07/14 14:09

Page 18: Desarrolle Aplicaciones Android Eclipse

La depuración a gran escala de una aplicación Android va más allá del ámbito tratado en este tutorial.

Para mayor información, consulte los Recursos.

Construir el proveedor de contenido y el ejemplo de la aplicación

Google Maps

Ahora que ha visto un ejemplo completo de aplicación, analicemos rápidamente una aplicación más

compleja.

Proveedor de contenido y Google Maps

Esta segunda aplicación examinada en este tutorial se construye con un tema de un servicio de móvil

profesional (tal vez un técnico en reparación de producto) que debe esquematizarse hasta la próxima

llamada de servicio. La aplicación aprovecha la base de datos incorporada de los contactos de Android

como un almacenamiento de registros. Este tutorial le dará conocimiento para acceder a los datos desde

un proveedor de contenido, como así también un vistazo a una intención en funcionamiento a medida que

usamos los datos de la dirección que se encuentran en la base de datos de los contactos para realizar

una búsqueda de Google Maps. Para que este tutorial funcione adecuadamente en su Emulator de

Android, asegúrese de tener uno o más contactos registrados y de completar el campo de dirección

particular. La Figura 12 muestra el Emulator con algunas entradas en la aplicación del contacto.

Figura 12. Emulador con entradas en la aplicación del contacto

Desarrolle aplicaciones Android con Eclipse http://www.ibm.com/developerworks/ssa/opensou...

18 of 23 14/07/14 14:09

Page 19: Desarrolle Aplicaciones Android Eclipse

A continuación aparece el primero de los dos fragmentos de código para la segunda aplicación. Tenga en

cuenta que esta clase principal de aplicación Activity extiende la ListActivity. Esto es porque

vamos a mostrar la información en una lista.

Listado 6 Primer fragmento de la segunda aplicaciónpublic class MobileServiceCallContacts extends ListActivity { final String tag = "MSCC"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); // Get a cursor with all people Cursor c = getContentResolver().query(People.CONTENT_URI, null, null,

null, null); startManagingCursor(c);

ListAdapter adapter = new SimpleCursorAdapter(this,android.R. layout.simple_list_item_1,c,new String[] {People.NAME} ,new int[] {android.R.id.text1});

setListAdapter(adapter); }...}

Tenga en cuenta el uso de la clase de cursor para solicitar la base de datos de los contactos. Este cursor

"conjunto de resultados" se enlaza a la UI a través de la clase conocida como un ListAdapter. La

Figura 13 muestra la aplicación en funcionamiento a medida que presenta los contactos disponibles en el

dispositivo. Tenga en cuenta que no existe orden de clasificación en este monitor.

Desarrolle aplicaciones Android con Eclipse http://www.ibm.com/developerworks/ssa/opensou...

19 of 23 14/07/14 14:09

Page 20: Desarrolle Aplicaciones Android Eclipse

Figura 13. Aplicación en acción

Cualquiera de los contactos se puede seleccionar con una pulsación (clic del ratón), el botón central en el

emulador o al presionar la tecla Enter en su teclado. Una vez que se selecciona esta entrada, el código

debe realizar una búsqueda para obtener la dirección del contacto seleccionado. Aquí es donde el

método de anulación onListItemClick() entra en juego. Esta implementación del método tiene cuatro

argumentos importantes. El de mayor interés aquí es el método dbidentifier. Debido a que el cursor

hacía referencia a la UI, cuando se invoca este método, en realidad recibe un identificador para el origen

de datos fundamentales. El campo dbidentifier se puede usar para consultar la base de datos de los

contactos para la información deseada. También se puede usar para simplemente iniciar la aplicación de

los contactos con una intención como se muestra en el código que se comenta en el Listado 7.

Listado 7. El método de anulación onListItemClick() @Override protected void onListItemClick(ListView list,View view,int position,long

dbidentifier) { super.onListItemClick(list,view,position,dbidentifier); try { // this commented out code below will launch the Contacts application \

// and "view" the contact Intent myIntent = \new Intent(android.content.

// Intent.VIEW_ACTION,new ContentURI("content://contacts/people/" // + dbidentifier)); startSubActivity(myIntent,position);

// let's lookup specifics on this record ContentURI theContact = \new ContentURI(android.provider.Contacts.ContactMethods.CONTENT_URI.toURI()); // IMPORTANT // in order to use this sample application, you need to have at least

// one Contact record on your Android emulator\ // and be sure to have populated the 'Home Address field' // // this "where clause" is for HOME address and for the person record

// selected in the GUI (id, dbidentifier) Cursor c = managedQuery(theContact,null," type = 1 and person = " +

dbidentifier,null); if (!c.first()) { showAlert("MSCC","No Contact Methods Available!","",true); return; }

Desarrolle aplicaciones Android con Eclipse http://www.ibm.com/developerworks/ssa/opensou...

20 of 23 14/07/14 14:09

Page 21: Desarrolle Aplicaciones Android Eclipse

Recursos

Aprender

El libro Android del autor se encuentra parcialmente disponible online en

Manning Publications.

La información fuente autorizada de Android está en el sitio web Android de

Google, donde puede encontrar enlaces y documentación de proyectos para

descargar el Android SDK.

Consulte la "Recommended Eclipse reading list".

IBM PureSystemsLa nueva familia de sistemasexpertos integrados de IBM estáaquí.

La carrera ha comenzado!Obtenga WAS paradesarrolladores sin costo.

Descarga gratuita:Rational Team Concert for PowerSystems Software Standard

String address = c.getString(c.getColumnIndex("data")); address = address.replace("\n",""); address = address.replace(",",""); address = address.replace(" ","+"); Intent geoIntent = new Intent("android.intent.action.VIEW",

new ContentURI\("geo:0,0?q=" + address)); startActivity(geoIntent); } catch (Exception ee) { Log.i(tag,ee.getMessage()); } }

Una vez que se ha obtenido la dirección, un par de operaciones simples en cadena son necesarias para

limpiar los datos para prepararlo para una consulta a Google Maps. La geoIntent es una intención

nueva creada para realizar una búsqueda geo que en la imagen predeterminada del Emulador Android se

satisface con una llamada a Google Maps.

Todos los elementos principales de la primera aplicación se mantienen válidos aún para esta aplicación.

Existe una sola actividad lanzada desde la pantalla de la aplicación principal. Existe, por supuesto, el

archivo AndroidManifest.xml que identifica nuestra nueva aplicación. Recuerde, el código fuente completo

está disponible en la sección Descargas.

Existe una información final que es importante para esta segunda aplicación de ejemplo. En el archivo

AndroidManifest.xml, existe una entrada adicional que le da permiso a la aplicación para leer la base de

datos de los contactos: <uses-permission id="android.permission.READ_CONTACTS" />. Sin este

permiso explícito, el kernel de Linux prevendrá que la aplicación acceda a la base de datos de los

contactos.

Resumen

Este tutorial introdujo la plataforma Android, las Herramientas desarrolladoras de Android y los elementos

claves del desarrollo Android en Eclipse. Las Herramientas desarrolladoras de Android permiten

aprovechar el vasto entorno de desarrollador de Eclipse para construir y probar las aplicaciones Android.

Debería estar preparado para crear sus propias aplicaciones Android.

Descargar

Descripción Nombre tamaño

Example source code os-eclipse-android.examples.zip 67KB

Desarrolle aplicaciones Android con Eclipse http://www.ibm.com/developerworks/ssa/opensou...

21 of 23 14/07/14 14:09

Page 22: Desarrolle Aplicaciones Android Eclipse

Lea el tutorial "Build a mobile RSS reader" para aprender cómo leer, analizar y

mostrar el RSS u otro dato XML en aplicaciones móviles, que incluyen sus

propias mezclas, usando las Herramientas desarrolladoras de Android.

Navegar en todo el contenido de Eclipse en developerWorks.

¿Ya conoce Eclipse? Lea el artículo developerWorks "Comience a utilizar la

plataforma Eclipse" para aprender sobre sus orígenes y arquitectura, y cómo

ampliar Eclipse con los plug-ins.

Expanda sus habilidades de Eclipse al verificar los recursos del proyecto de

Eclipse de IBM developerWorks.

Para escuchar entrevistas interesantes y discusiones para los desarrolladores

de software, consulte los podcasts de developerWorks.

Manténgase actualizado con Technical events and webcasts de

developerWorks.

Vea y aprenda acerca de funciones de productos y tecnologías IBM y de

código abierto con el developerWorks On demand demos gratuitos.

Consulte las próximas conferencias, los shows comerciales, los webcasts y

otros Eventos de todo el mundo que son de interés para los desarrolladores de

código abierto de IBM.

Visite la Open source zone de developerWorks para obtener información

exhaustiva sobre instrucciones, herramientas y de proyectos para ayudarlo a

desarrollarse con las tecnologías de códigos abiertos y a utilizarlos con los

productos de IBM.

Obtener los productos y tecnologías

Consulte las últimas descargas de tecnología de Eclipse en IBM alphaWorks.

Instale los plug-ins de Android Development Tools (ADT) usando la

actualización de software para Eclipse. También puede descargar Android

SDK y aprender cómo instalar, configurar y usar el Android SDK.

Descargue la Plataforma de Eclipse y otros proyectos desde la Eclipse

Foundation.

Descargue versiones de prueba de los productos de IBM, y obtenga sus

herramientas y productos de middleware de DB2®, Lotus®, Rational®, Tivoli®

y WebSphere® para desarrollo de aplicaciones

Innove en su próximo proyecto de desarrollo con el software de prueba IBM,

disponible para descargarlo o en DVD.

Comentar

Los Grupos de noticias en la Plataforma de Eclipse deberían detenerse

primero para discutir cuestiones relacionadas con Eclipse. (Al seleccionar esto

se lanzará su aplicación predeterminada de lectura de noticias de Usenet y se

abrirá eclipse.platform).

Los Grupos de noticias de Eclipse tienen varios recursos para personas

interesadas en utilizar y extender Eclipse..

Edition

Desarrolle aplicaciones Android con Eclipse http://www.ibm.com/developerworks/ssa/opensou...

22 of 23 14/07/14 14:09

Page 23: Desarrolle Aplicaciones Android Eclipse

Participe en los blogs de developerWorks y únase a la comunidad de

developerWorks.

Desarrolle aplicaciones Android con Eclipse http://www.ibm.com/developerworks/ssa/opensou...

23 of 23 14/07/14 14:09