Está en la página 1de 31

Desarrolle aplicaciones Android con Eclipse

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


Development Tools
Frank Ableson
Author

Nivel de dificultad: Intermediaria


Fecha: 18-02-2013

El sistema Android es la plataforma de comunicaciones para cmputo inalmbrico


y mvil 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 tambin conocido como Android Development Tools (ADT). El
tutorial proporciona una introduccin al desarrollo Android con una rpida
introduccin a la plataforma, un recorrido por ADT e incluye la construccin de
dos aplicaciones de ejemplo.

Seccin 1. Antes de comenzar


Este tutorial presenta el desarrollo de aplicaciones Android dentro del entorno
Eclipse, incluyendo la construccin de dos aplicaciones de ejemplo. La primera es
una aplicacin bsica de inicio, que se completa con todas las fases de construccin
y depuracin. La segunda aplicacin examina las funciones ms complejas de
Android, incluyendo la bsqueda de direcciones de Google Maps y la bsqueda
de contactos. Para aprovechar al mximo este tutorial, la experiencia de desarrollo
mvil es til pero no obligatoria. Las habilidades de programacin Java son
necesarias para las aplicaciones Android, pero no son un requisito explcito 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
podero e intentando ganar el abarrotado mercado mvil. Su primera salva en este
Copyright IBM Corporation 2013
Desarrolle aplicaciones Android con Eclipse

Marcas
Pagina 1 de 31

developerWorks

ibm.com/developerWorks/ssa/

mercado, Android y la Open Handset Alliance es un impresionante punto de partida.


La segunda razn por la que Android es importante es porque no es solo otra
plataforma mvil con un men telefnico y una pantalla tctil. 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 ejecucin de las acciones solicitadas y el cdigo para satisfacer estas
solicitudes. Ya sea por las consideraciones dirigidas por el mercado o los aspectos
tcnicos de Android, es una plataforma digna de examinar.
Este tutorial est organizado en las siguientes secciones:

Herramientas requeridas y lo bsico de Android


El kit de desarrollador de software Android
Construir y depurar la aplicacin SaySomething Android
Crear la aplicacin Google Maps y proveedor de contenido

Requisitos de sistema
Este tutorial requiere de varias tecnologas 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
versin 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 podran
instalar siguiendo las instrucciones que se encuentran en Instalar el Android
SDK.
Cdigo fuente
Los fragmentos de cdigo fuente en este tutorial incluyen:
Fragmento AndroidManifest.xml Este archivo es el descriptor del
despliegue de aplicaciones para aplicaciones Android.
IntentReceiver Esto demuestra la implementacin de un
IntentReceiver, que es la clase que procesa las intenciones
segn 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 aplicacin 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 automticamente por las Herramientas
desarrolladoras de Android y "conecta" los recursos visuales para el
cdigo fuente Java.
AndroidManifest.xml complete Esto enumera un archivo
AndroidManfest.xml completo, junto con una descripcin de cada uno de
los elementos importantes.
Desarrolle aplicaciones Android con Eclipse

Pagina 2 de 31

ibm.com/developerWorks/ssa/

developerWorks

MobileServiceCallContacts.java Esto contiene el cdigo necesario para


mostrar los contactos as como reaccionar a la entrada de usuario para
llevar a cabo despus una bsqueda de direcciones de Google Maps.

Seccin 2. Introduccin a Android


Antes de ahondar en los detalles prcticos del plug-in Eclipse y desarrollar las
aplicaciones Android, analicemos la arquitectura de Android y algunos trminos
claves que sern tiles en el tutorial y ms all, a medida que comienza a construir
aplicaciones Android por usted mismo.

Terminologa Android
El desarrollo de aplicaciones Android bajo el entorno Eclipse requiere de un
conocimiento del entorno Eclipse y de la plataforma Android. La comprensin de los
trminos a continuacin es til en el desarrollo de las aplicaciones Android con el
plug-in Eclipse.
Open Handset Alliance
Esta es la organizacin dirigida por Google Inc., que consiste en numerosas
organizaciones pblicas y privadas.
Android
El producto principal de la Open Handset Alliance. Este es un entorno operativo
de cdigo abierto dirigido a los dispositivos mviles.
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
computacin mvil.
Linux
Un kernel de sistema operativo de cdigo abierto en el corazn de varias
plataformas de informtica, incluyendo servidores, computadoras de escritorio,
dispositivos de red y dispositivos de computacin mvil. 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 cdigo de aplicacin en el tiempo de ejecucin. La Dalvik VM
es similar a una Java VM compatible, pero las dos no son compatibles.

Herramientas requeridas y lo bsico de Android


Este es un entorno operativo de cdigo abierto dirigido a los dispositivos mviles.
Al momento de este escrito, es una plataforma solo de software sin dispositivos de
hardware disponibles pblicamente.
Desarrolle aplicaciones Android con Eclipse

Pagina 3 de 31

developerWorks

ibm.com/developerWorks/ssa/

La plataforma de Android aparece mejor descrita como una pila porque es una
coleccin de componentes, que incluye:
Sistema operativo basado en kernel de Linux
Entorno de programacin 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 caractersticas importantes de la plataforma desde una
perspectiva del mercado.

Por qu es importante Android?


La prensa de tecnologa de computadoras ha desviado la atencin 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 mviles est
abarrotado y resulta difcil para un principiante obtener un equilibrio. Google tiene
los recursos y la notoriedad para causar impresin en cualquier mercado al que
apunte. El ingreso de Google en el espacio mvil ha estado en proceso por un par
de aos. Android era una compaa distinta e independiente que Google compr
para brindarle un impulso en una presencia mvil. Cualquier cosa que realice Google
llama la atencin y la publicidad es buena para introducir nuevas plataformas. Anote
un punto para Android.
La segunda razn por la que resulta importante Android es debido a su modelo de
aplicacin. Las aplicaciones Android no son monolticas ni estn llenas de men
que requieren de que haga muchos clics y presiones para que operen. Sin dudas,
hay mens y botones para presionar pero Android tiene un elemento de diseo
innovador para su arquitectura conocido con una intencin.

La intencin
Una intencin es una construccin que permite a una aplicacin emitir un pedido,
que es en cierto modo como una seal para pedir ayuda. Podra verse as:
"Buscada: Una aplicacin para ayudarme a buscar un contacto" o "Buscada: Una
aplicacin para ayudarme a mostrar un contacto" o "Buscada: Una aplicacin para
realizar esta bsqueda basada en lo geogrfico".
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 podran
verse as:
Desarrolle aplicaciones Android con Eclipse

Pagina 4 de 31

ibm.com/developerWorks/ssa/

developerWorks

"Disponible: Aplicacin lista y dispuesta a presentar los registros de contactos de


manera clara y concisa", o "Disponible: Aplicacin lista y dispuesta a realizar una
bsqueda basada en lo geogrfico".
Estos son ejemplos de IntentFilters, que discutiremos ms adelante.

El IntentFilter
Las aplicaciones anuncian su disponibilidad para realizar este tipo de operaciones
a travs de una construccin conocida como un IntentFilter. El IntentFilter
puede estar registrado en el tiempo de ejecucin o enumerado en el archivo
AndroidManifest.xml. El siguiente fragmento proviene de una aplicacin Android que
responde a mensajes de texto SMS entrantes:
Listado 1 Aplicacin 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>

Despus de esta breve introduccin a la intencin y el IntentFilter, la siguiente


seccin introduce los cuatro tipos principales de aplicaciones Android.

Seccin 3. Aplicaciones Android Una rpida


encuesta
Analicemos por un momento los cuatro tipos principales de aplicaciones Android:
actividad, servicios, receptores y ContentProvider. Tambin analizaremos las vistas
para mostrar los elementos de la interfaz de usuario (UI).

Actividad
La actividad es la forma ms visible y prominente de una aplicacin Android. Una
actividad presenta la UI a una aplicacin, 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 tpicas en las
plataformas de informtica, mviles o diferentes.
Una aplicacin puede contener una o ms actividades. Por lo general estn en una
relacin uno a uno con las pantallas encontradas en una aplicacin.
Una aplicacin se mueve de una actividad a otra al llamar un mtodo conocido
como startActivity() o startSubActivity(). El mtodo anterior se usa cuando la
aplicacin desea simplemente "cambiar" a una nueva actividad. La ltima se utiliza
Desarrolle aplicaciones Android con Eclipse

Pagina 5 de 31

developerWorks

ibm.com/developerWorks/ssa/

cuando se desea un paradigma de respuesta/llamada simultnea. En ambos casos,


se pasa una intencin como un argumento al mtodo.
Es responsabilidad del sistema operativo determinar la actividad mejor calificada
para satisfacer la intencin especificada.

Servicios y receptores
Como otros entornos de computacin de procesos de tareas, existen aplicaciones
ejecutndose "en el fondo" que realizan varias tareas. Android llama a estos tipos de
aplicaciones "servicios". El servicio es una aplicacin Android que no tiene UI.
El receptor es un componente de la aplicacin que recibe solicitudes para procesar
las intenciones. Como el servicio, un receptor en la prctica normal no tiene
un elemento UI. Los receptores estn tpicamente registrados en el archivo
AndroidManifest.xml. El fragmento que se muestra en el Listado 1 es un ejemplo
de una aplicacin de receptor. Tenga en cuenta que el atributo clase del receptor
es la clase Java responsable por la implementacin del receptor. El listado 2 es un
ejemplo del cdigo del receptor.
Listado 2. Cdigo del receptor
package 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.
}
}

Gestin de datos con ContentProvider


El ContentProvider es el mecanismo Android para la abstraccin del
almacenamiento de datos. Veamos un tipo especfico de datos que se encuentra en
un dispositivo mvil: la libreta de direcciones o la base de datos de los contactos.
La libreta de direcciones contiene todos los contactos y nmeros de telfonos que
una persona podra necesitar al usar un telfono mvil. 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 debera pasar a travs 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 seccin introduce las vistas Android, el mecanismo UI para colocar
cosas en la pantalla de un dispositivo Android.
Desarrolle aplicaciones Android con Eclipse

Pagina 6 de 31

ibm.com/developerWorks/ssa/

developerWorks

Vistas
La actividad Android emplea las vistas para mostrar los elementos UI. Las vistas
siguen uno de los siguientes diseos:
LinearVertical
Cada elemento subsiguiente sigue su predecesor al fluir debajo de este en una
nica columna.
LinearHorizontal
Cada elemento subsiguiente sigue su predecesor al fluir hacia la derecha en
una nica fila.
Relative
Cada elemento subsiguiente se describe en trminos 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 diseo particular (o una combinacin de
diseos), 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
Botn de radio
Galera e ImageSwitcher para mostrar mltiples imgenes
Lista
Grilla
DatePicker
TimePicker
Spinner (similar a un cuadro combinado)
AutoComplete (EditText con la funcin auto completar el texto)

Las vistas se definen en un archivo XML. El Listada 3 muestra un ejemplo de un


diseo simple LinearVertical.
Listado 3 Diseo 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"

Desarrolle aplicaciones Android con Eclipse

Pagina 7 de 31

developerWorks

ibm.com/developerWorks/ssa/

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>

Tenga en cuenta que cada elemento tiene uno o ms atributos en el espacio de


nombre de Android.
La siguiente seccin gua al obtener el Android SDK y configurarlo para usar con
Eclipse.

Seccin 4. 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 seccin gua al obtener el Android SDK y configurarlo para usar con
Eclipse.

Obtener e instalar Eclipse


Si Eclipse no est instalado, descrguelo e instale el release estable ms reciente
de Eclipse IDE desde la Eclipse Foundation (vea los Recursos). La instalacin se
encuentra en una carpeta comprimida. Extraiga el contenido de la carpeta a un
lugar conveniente en su computadora. El instalador no crea ningn 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 instalacin de Eclipse. Esto iniciar el IDE. El software solicita un "espacio de
trabajo" y sugiere una ubicacin predeterminada, por ejemplo, c:\documents y
settings\username\workspace. Elija esta ubicacin o especifique una ubicacin
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.
Desarrolle aplicaciones Android con Eclipse

Pagina 8 de 31

ibm.com/developerWorks/ssa/

developerWorks

Obtener e instalar el Android SDK


Encuentre las descargas Android en los Recursos.
Existen versiones de instalacin SDK disponibles para Windows, Mac OS X (solo
Intel) y Linux (i386). Seleccione la versin ms reciente del SDK para la plataforma
deseada. Tenga en cuenta que al momento de este escrito, la versin Android SDK
ms 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, debera 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 instalacin del plug-in para Eclipse, conocido
oficialmente como Herramientas desarrolladoras de Android. Tenga en cuenta que
las direcciones alternativas de instalacin se encuentran disponibles en el sitio web
de Android. Consulte los Recursos para ms informacin.
Instalar las Herramientas desarrolladoras de Android:
1. Ejecute la funcin "Find and Install" en Eclipse, que se encuentra debajo del
men Help > Software Updates .
2. Seleccione la opcin Search for new features to install .
3. Seleccione New Remote Site. Dele un nombre a este sitio, como por ejemplo
"Android Developer Tools". Use la siguiente URL en el dilogo: https://dlssl.google.com/android/eclipse. Observe el HTTPS en la URL. Esta es una
descarga segura.
Figura 1. Nuevo sitio de actualizacin

4. Se agrega una nueva entrada a la lista y se selecciona de manera


predeterminada. Haga clic en Finish. Los resultados de bsqueda muestran las
Desarrolle aplicaciones Android con Eclipse

Pagina 9 de 31

developerWorks

ibm.com/developerWorks/ssa/

Herramientas desarrolladoras de Android. Seleccione Developer Tools y haga


clic en Next.
5. Despus 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.
6. Revise y acepte la ubicacin de instalacin, luego haga clic en Finish.
Se descarga e instala ahora el plug-in. El plug-in no se firma (al momento del
escrito), por lo tanto contine 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
instalacin 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 ubicacin de instalacin 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 ubicacin, existen otras tres secciones que se pueden
configurar. Aqu se mencionan brevemente:
La seccin Build tiene opciones para recursos de reconstruccin automtica.
Deje esto seleccionado. La opcin Build puede cambiar el nivel de verbosidad.
Normal es el valor predeterminado.
DDMS El servicio de control de depuracin 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
configuracin predeterminada debera estar bien.
LogCat Este es un archivo de registro que se crea en el kernel fundamental
de Linux. La fuente es seleccionable en este dilogo. Ajstelo segn como
desee.
Felicitaciones! El entorno Eclipse est listo para crear aplicaciones para Android.

Seccin 5. Construyendo la aplicacin


SaySomething para Android
Esta seccin crea una aplicacin bsica para Android, llamada SaySomething,
usando las Herramientas desarrolladoras de Android. Una vez que se crea la
aplicacin, la depuraremos y ejecutaremos.
Desarrolle aplicaciones Android con Eclipse

Pagina 10 de 31

ibm.com/developerWorks/ssa/

developerWorks

Asistente para nuevo proyecto


El primer paso consiste en crear un nuevo proyecto. Seleccione el asistente para el
proyecto Android, como se muestra a continuacin.
Figura 2. Asistente para nuevo proyecto

Los requisitos para las aplicaciones son:

Nombre
Ubicacin
Nombre del paquete
Nombre de la actividad Piense en esto como el "formulario" principal o la
pantalla de la aplicacin
Nombre de la aplicacin
Observe el nuevo proyecto.

Desarrolle aplicaciones Android con Eclipse

Pagina 11 de 31

developerWorks

ibm.com/developerWorks/ssa/

Figura 3. Nuevo proyecto Android

Esto crear una aplicacin predeterminada lista para construir y ejecutar. Los
componentes se pueden ver en el Explorador del paquete, que discutimos a
continuacin.

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 aplicacin Android (vea la Figura 4).

Desarrolle aplicaciones Android con Eclipse

Pagina 12 de 31

ibm.com/developerWorks/ssa/

developerWorks

Figura 4 El explorador del paquete

Los elementos de la nota incluyen:


Carpeta src
Incluye el paquete para la aplicacin de muestra, es decir
com.msi.ibmtutorial.
R.java
Las Herramientas desarrolladoras de Android crean este archivo
automticamente y representan las constantes necesarias para acceder a
varios recursos de la aplicacin Android. Ms sobre la relacin entre la clase R
y los recursos que se encuentran a continuacin.
SaySomething.java
Implementacin de la clase de actividad principal de la aplicacin.
Bibliotecas de referencia
Contiene a android.jar, que es el archivo clase jar de tiempo de ejecucin de
Android, en el Android SDK.
Carpeta res
Contiene los recursos para la aplicacin, incluyendo:
conos
Archivos de diseo
Desarrolle aplicaciones Android con Eclipse

Pagina 13 de 31

developerWorks

ibm.com/developerWorks/ssa/

Cadenas
AndriodManifest.xml
Descriptor del despliegue de la aplicacin de muestra.
A continuacin, examinaremos el cdigo fuente en ms detalle.

La actividad principal de la aplicacin


La aplicacin de muestra consiste en una sola actividad, concretamente
SaySomething. Como se describe ms arriba, la clase SaySomething se implementa
en el archivo SaySomething.java.
Listado 4. SaySomething.java
package 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:


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 mtodo 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 construccin se pasan en este parmetro. Este tutorial no examina este
parmetro.
El setContentView(..) es responsable de crear la UI primaria con el argumento
R.layout.main. Esto es un identificador que representa el diseo principal que
se encuentra en los recursos de la aplicacin.
La siguiente seccin revisa los recursos para la aplicacin de muestra.

Recursos para la aplicacin


Los recursos en Android se organizan en un subdirectorio del proyecto llamado
res, segn se describi previamente. Los recursos entran en estas tres categoras
primarias:
Desarrolle aplicaciones Android con Eclipse

Pagina 14 de 31

ibm.com/developerWorks/ssa/

developerWorks

Dibujables
Esta carpeta contiene archivos de grficos, por ejemplo, conos y mapas de
bits.
Diseos
Esta carpeta contiene archivos XML que representan los diseos y las vistas de
la aplicacin. Estos se examinarn en detalle a continuacin.
Valores
Esta carpeta contiene un archivo llamado strings.xml. Esta es el medio primario
para la localizacin en cadena para la aplicacin.
La siguiente seccin disecciona el archivo main.xml para revisar los recursos de la
UI primaria de la aplicacin de muestra.

main.xml
La aplicacin de muestra contiene una sola actividad y una sola vista. La aplicacin
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 diseo. Esto significa que se puede usar en ms de una actividad, si
se desea. El Listado 5 tiene el contenido del archivo de diseo.
Listado 5 Archivo de diseo
<?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 diseos ms simplistas. Existe un solo diseo lineal, que se
orienta como un diseo vertical, lo que significa que todos los elementos que
contiene estn 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 esttico que no se puede editar.
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 mximo espacio disponible.
Esto se puede pensar tambin como "ampliar".
Desarrolle aplicaciones Android con Eclipse

Pagina 15 de 31

developerWorks

ibm.com/developerWorks/ssa/

Contenido del envoltorio


Este valor le avisa a Android que pinte los elementos uno despus 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 aplicacin. El archivo R.java se discute a continuacin.

R.java
El archivo R.java se crea en construir automticamente, por lo tanto asegrese de
no modificarlo a mano porque se perdern todos los cambios. El listado 6 contiene el
archivo R.java file para la aplicacin 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 annimas, y cada una contiene identificadores para


los diferentes recursos previamente descritos. Tenga en cuenta que todas estas
clases son estticas.
Tenga en cuenta el elemento representado por: R.layout.main. Este
identificador representa el diseo definido por main.xml. Recuerde que este
valor se usa en el mtodo onCreate de la actividad de la siguiente manera:
setContentView(R.layout.main);. Este el punto en el que una actividad especfica
(en este caso, SayAnything) y un diseo especfico (principal) estn vinculados en el
tiempo de ejecucin.

Aplicaciones de construccin
Los archivos se compilan cada vez que se guardan por defecto.
Desarrolle aplicaciones Android con Eclipse

Pagina 16 de 31

ibm.com/developerWorks/ssa/

developerWorks

Figura 5. Panel de error

Introducimos un error en el cdigo 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 cdigo fuente, la aplicacin 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
aplicacin Android. El archivo enumera cualquier actividad, servicio, proveedor
de contenido o receptor contenido en la aplicacin, junto con los IntentFilters
apropiados soportados por la aplicacin. Aqu se encuentra el archivo completo
AndroidManifest.xml para la aplicacin 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
patrn similar a un archivo fuente Java y a las importaciones. La etiqueta
Desarrolle aplicaciones Android con Eclipse

Pagina 17 de 31

developerWorks

ibm.com/developerWorks/ssa/

es en esencia de las clases "importacin" de este paquete.


Todas las clases que no estn 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 aplicacin Tenga en cuenta el smbolo @ que precede al
identificador dibujable. Esta es una pista para que el archivo mire en la carpeta
dibujable de los recursos de la aplicacin 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 aplicacin. Tenga en cuenta que
proviene de uno de los recursos en cadena. El archivo string.xml contiene
cadenas localizadas para la aplicacin.
<intent-filter> representa el IntentFilter disponible en la aplicacin
de muestra. Este es el IntentFilter ms comn que se puede ver en
las aplicaciones Android. Este filtro esencialmente dice que implementa
la accin "principal" (o punto de entrada) y que se encuentra ubicado en
el iniciador del OS. En espaol, esto significa que se puede iniciar como
una aplicacin desde la lista principal de las aplicaciones en un dispositivo
Android.
<manifest>

La siguiente seccin describe cmo iniciar la aplicacin en el Emulador de Android


desde el interior de Eclipse.

Ejecutar la aplicacin
Ahora que la aplicacin se ha compilado de manera correcta, es momento de
ejecutar la misma aplicacin. Seleccione Open Run Dialog o atajo en la barra
de herramientas dentro de Eclipse. Esto abre un dilogo donde se crean las
configuraciones de arranque. Resalte la opcin de la Aplicacin Android y haga clic
en el cono para New.
La Figura 6 muestra los valores que se usan para el tutorial de muestra.

Desarrolle aplicaciones Android con Eclipse

Pagina 18 de 31

ibm.com/developerWorks/ssa/

developerWorks

Figura 6. Dilogo de ejecucin

Dele un nombre a la configuracin 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 pestaa
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, segn se describe en la Figura 7.

Desarrolle aplicaciones Android con Eclipse

Pagina 19 de 31

developerWorks

ibm.com/developerWorks/ssa/

Figura 7 Dilogo de ejecucin, pestaa Emulator

Existen algunas orientaciones y tamaos de pantallas de las que se puede elegir,


como as tambin opciones de red. Las opciones de red son importantes cuando
las aplicaciones de construccin que emplean la conectividad de Internet como
los dispositivos mviles tienen diferentes capacidades de velocidad de red. Elija
velocidades de red completas y sin latencia cuando disee un prototipo de una
aplicacin. Una vez que se presenta la funcionalidad principal, es buena idea probar
con condiciones de red menos ideales para ver cmo responde la aplicacin en
situaciones con conectividad de red subptimas.
Seleccione Run para ver la aplicacin de muestra en accin.

Desarrolle aplicaciones Android con Eclipse

Pagina 20 de 31

ibm.com/developerWorks/ssa/

developerWorks

Figura 8. Emulator

Ahora que la aplicacin se est ejecutando en el Emulator, es momento de ver


qu est sucediendo detrs de escena. El servicio de control de depuracin Dalvik
(DDMS) lo asistir con esto.

Depuracin de la aplicacin
Para ver qu est sucediendo con una aplicacin que se est ejecutando, es til
acceder a la Dalvik en ejecucin. Para habilitar esto desde Eclipse, seleccione
Window > Open Perspective > Other. Esto muestra un recuadro de dilogo donde
se puede seleccionar el DDMS. Esto abre una nueva perspectiva en Eclipse con
un nmero de ventanas interesantes. Aqu tenemos una rpida introduccin a los
recursos disponibles en la perspectiva DDMS:
El LogCat es un archivo de registro en ejecucin de la actividad que tiene lugar en
la VM. Las aplicaciones pueden realizar sus propias entradas a esta lista con una
simple lnea de cdigos 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.
Desarrolle aplicaciones Android con Eclipse

Pagina 21 de 31

developerWorks

ibm.com/developerWorks/ssa/

Figura 9. LogCat in action

Otra herramienta prctica 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 aplicacin de muestra del tutorial en el Emulator.
Figura 10. Aplicacin 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.
Tambin se encuentra disponible una lista de proceso en ejecucin en el DDMS.

Desarrolle aplicaciones Android con Eclipse

Pagina 22 de 31

ibm.com/developerWorks/ssa/

developerWorks

Figura 11. Lista de proceso en ejecucin

La depuracin a gran escala de una aplicacin Android va ms all del mbito


tratado en este tutorial. Para mayor informacin, consulte los Recursos.

Seccin 6. Construir el proveedor de contenido y el


ejemplo de la aplicacin Google Maps
Ahora que ha visto un ejemplo completo de aplicacin, analicemos rpidamente una
aplicacin ms compleja.

Proveedor de contenido y Google Maps


Esta segunda aplicacin examinada en este tutorial se construye con un tema
de un servicio de mvil profesional (tal vez un tcnico en reparacin de producto)
que debe esquematizarse hasta la prxima llamada de servicio. La aplicacin
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 tambin un vistazo a una
intencin en funcionamiento a medida que usamos los datos de la direccin que
se encuentran en la base de datos de los contactos para realizar una bsqueda
de Google Maps. Para que este tutorial funcione adecuadamente en su Emulator
de Android, asegrese de tener uno o ms contactos registrados y de completar
el campo de direccin particular. La Figura 12 muestra el Emulator con algunas
entradas en la aplicacin del contacto.
Desarrolle aplicaciones Android con Eclipse

Pagina 23 de 31

developerWorks

ibm.com/developerWorks/ssa/

Figura 12. Emulador con entradas en la aplicacin del contacto

A continuacin aparece el primero de los dos fragmentos de cdigo para la segunda


aplicacin. Tenga en cuenta que esta clase principal de aplicacin Activity extiende
la ListActivity. Esto es porque vamos a mostrar la informacin en una lista.
Listado 6 Primer fragmento de la segunda aplicacin
public class MobileServiceCallContacts extends ListActivity
{
final String tag = "MSCC";
/** Called when the activity is first created. */
@Override

Desarrolle aplicaciones Android con Eclipse

Pagina 24 de 31

ibm.com/developerWorks/ssa/

developerWorks

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 travs de
la clase conocida como un ListAdapter. La Figura 13 muestra la aplicacin en
funcionamiento a medida que presenta los contactos disponibles en el dispositivo.
Tenga en cuenta que no existe orden de clasificacin en este monitor.
Figura 13. Aplicacin en accin

Cualquiera de los contactos se puede seleccionar con una pulsacin (clic del ratn),
el botn central en el emulador o al presionar la tecla Enter en su teclado. Una vez
Desarrolle aplicaciones Android con Eclipse

Pagina 25 de 31

developerWorks

ibm.com/developerWorks/ssa/

que se selecciona esta entrada, el cdigo debe realizar una bsqueda para obtener
la direccin del contacto seleccionado. Aqu es donde el mtodo de anulacin
onListItemClick() entra en juego. Esta implementacin del mtodo tiene cuatro
argumentos importantes. El de mayor inters aqu es el mtodo dbidentifier.
Debido a que el cursor haca referencia a la UI, cuando se invoca este mtodo, 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
informacin deseada. Tambin se puede usar para simplemente iniciar la aplicacin
de los contactos con una intencin como se muestra en el cdigo que se comenta en
el Listado 7.
Listado 7. El mtodo de anulacin 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;
}
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);
}

Desarrolle aplicaciones Android con Eclipse

Pagina 26 de 31

ibm.com/developerWorks/ssa/

developerWorks

catch (Exception ee)


{
Log.i(tag,ee.getMessage());
}
}

Una vez que se ha obtenido la direccin, 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 intencin nueva creada para realizar una bsqueda
geo que en la imagen predeterminada del Emulador Android se satisface con una
llamada a Google Maps.
Todos los elementos principales de la primera aplicacin se mantienen vlidos
an para esta aplicacin. Existe una sola actividad lanzada desde la pantalla de
la aplicacin principal. Existe, por supuesto, el archivo AndroidManifest.xml que
identifica nuestra nueva aplicacin. Recuerde, el cdigo fuente completo est
disponible en la seccin Descargas.
Existe una informacin final que es importante para esta segunda aplicacin de
ejemplo. En el archivo AndroidManifest.xml, existe una entrada adicional que le
da permiso a la aplicacin para leer la base de datos de los contactos: <usespermission id="android.permission.READ_CONTACTS" />. Sin este permiso explcito,
el kernel de Linux prevendr que la aplicacin acceda a la base de datos de los
contactos.

Seccin 7. 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. Debera estar preparado
para crear sus propias aplicaciones Android.

Desarrolle aplicaciones Android con Eclipse

Pagina 27 de 31

developerWorks

ibm.com/developerWorks/ssa/

Descargas
Descripcin

Nombre

tamao

Metodo
de
descarga

Example source code

os-eclipse-android.examples.zip

67KB

HTTP

Informacin sobre mtodos de descarga

Desarrolle aplicaciones Android con Eclipse

Pagina 28 de 31

ibm.com/developerWorks/ssa/

developerWorks

Recursos
Aprender
El libro Android del autor se encuentra parcialmente disponible online en
Manning Publications.
La informacin fuente autorizada de Android est en el sitio web Android de
Google, donde puede encontrar enlaces y documentacin de proyectos para
descargar el Android SDK.
Consulte la "Recommended Eclipse reading list".
Lea el tutorial "Build a mobile RSS reader" para aprender cmo leer, analizar
y mostrar el RSS u otro dato XML en aplicaciones mviles, 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 artculo developerWorks "Comience a utilizar la
plataforma Eclipse" para aprender sobre sus orgenes y arquitectura, y cmo
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.
Mantngase actualizado con Technical events and webcasts de
developerWorks.
Vea y aprenda acerca de funciones de productos y tecnologas IBM y de cdigo
abierto con el developerWorks On demand demos gratuitos.
Consulte las prximas conferencias, los shows comerciales, los webcasts y
otros Eventos de todo el mundo que son de inters para los desarrolladores de
cdigo abierto de IBM.
Visite la Open source zone de developerWorks para obtener informacin
exhaustiva sobre instrucciones, herramientas y de proyectos para ayudarlo
a desarrollarse con las tecnologas de cdigos abiertos y a utilizarlos con los
productos de IBM.
Obtener los productos y tecnologas
Consulte las ltimas descargas de tecnologa de Eclipse en IBM alphaWorks.
Instale los plug-ins de Android Development Tools (ADT) usando la
actualizacin de software para Eclipse. Tambin puede descargar Android SDK
y aprender cmo 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 prximo proyecto de desarrollo con el software de prueba IBM,
disponible para descargarlo o en DVD.
Desarrolle aplicaciones Android con Eclipse

Pagina 29 de 31

developerWorks

ibm.com/developerWorks/ssa/

Comentar
Los Grupos de noticias en la Plataforma de Eclipse deberan detenerse primero
para discutir cuestiones relacionadas con Eclipse. (Al seleccionar esto se
lanzar su aplicacin 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..
Participe en los blogs de developerWorks y nase a la comunidad de
developerWorks.

Desarrolle aplicaciones Android con Eclipse

Pagina 30 de 31

ibm.com/developerWorks/ssa/

developerWorks

Sobre el autor
Frank Ableson
Despus 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 diseo de software informtico.
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 frank@cfgsolutions.com.
Copyright IBM Corporation 2013
(www.ibm.com/legal/copytrade.shtml)
Marcas
(www.ibm.com/developerworks/ssa/ibm/trademarks/)

Desarrolle aplicaciones Android con Eclipse

Pagina 31 de 31

También podría gustarte