Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Marcas
Pagina 1 de 31
developerWorks
ibm.com/developerWorks/ssa/
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
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.
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.
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
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>
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/
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.
}
}
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)
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>
Pagina 8 de 31
ibm.com/developerWorks/ssa/
developerWorks
Pagina 9 de 31
developerWorks
ibm.com/developerWorks/ssa/
Pagina 10 de 31
ibm.com/developerWorks/ssa/
developerWorks
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.
Pagina 11 de 31
developerWorks
ibm.com/developerWorks/ssa/
Esto crear una aplicacin predeterminada lista para construir y ejecutar. Los
componentes se pueden ver en el Explorador del paquete, que discutimos a
continuacin.
Pagina 12 de 31
ibm.com/developerWorks/ssa/
developerWorks
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.
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/
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;
}
}
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
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>
Pagina 17 de 31
developerWorks
ibm.com/developerWorks/ssa/
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.
Pagina 18 de 31
ibm.com/developerWorks/ssa/
developerWorks
Pagina 19 de 31
developerWorks
ibm.com/developerWorks/ssa/
Pagina 20 de 31
ibm.com/developerWorks/ssa/
developerWorks
Figura 8. Emulator
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/
Pagina 22 de 31
ibm.com/developerWorks/ssa/
developerWorks
Pagina 23 de 31
developerWorks
ibm.com/developerWorks/ssa/
Pagina 24 de 31
ibm.com/developerWorks/ssa/
developerWorks
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);
}
Pagina 26 de 31
ibm.com/developerWorks/ssa/
developerWorks
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.
Pagina 27 de 31
developerWorks
ibm.com/developerWorks/ssa/
Descargas
Descripcin
Nombre
tamao
Metodo
de
descarga
os-eclipse-android.examples.zip
67KB
HTTP
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.
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/)
Pagina 31 de 31