Metalaria
23/10/12, 15:36:40
Paso 1. Descarga e instalación de Eclipse.
Si aún no tienes instalado Eclipse, puedes descargar la última versión desde este enlace. Recomiendo descargar por ejemplo la versión “Eclipse
IDE for Java Developers”. La instalación consiste simplemente en descomprimir el ZIP en la ubicación deseada.
http://www.eclipse.org/downloads/
Paso 2. Descargar el SDK de Android.
El SDK de la plataforma Android se puede descargar desde este enlace . Una vez descargado, de nuevo bastará con descomprimir el zip en cualquier ubicación.
http://developer.android.com/sdk/index.html
Paso 3. Descargar el plugin Android para Eclipse.
Google pone a disposición de los desarrolladores un plugin para Eclipse llamado Android
Development Tools (ADT) que facilita en gran medida el desarrollo de aplicaciones para la plataforma. Podéis descargarlo mediante las opciones de actualización de Eclipse, accediendoal menú “Help / Install new software…” e indicando la URL de descarga:
https://dl-ssl.google.com/android/eclipse/
Se debe seleccionar e instalar el paquete completo Developer Tools, formado por Android DDMS y Android Development Tools.
Paso 4. Configurar el plugin ADT.
En la ventana de configuración de Eclipse, se debe acceder a la sección de Android e indicar la ruta en la que se ha instalado el SDK (paso 2).
http://s2.subirimagenes.com/otros/previo/thump_8076366captura1.jpg (http://www.subirimagenes.com/otros-captura1-8076366.html)
Paso 5. Descargar los targets necesarios.
Además del SDK de Android comentado en el paso 2, también debemos descargar los
llamados SDK Targets de Android, que no son más que las librerías necesarias para desarrollar en cada una de las versiones concretas de Android. Así, si queremos desarrollar por ejemplo para Android 1.6 tendremos que descargar su target correspondiente. Para ello, desde Eclipse debemos acceder al menú “Window / Android SDK and AVD Manager“, y en la sección Available Packages seleccionar e instalar todos los paquetes deseados.
http://s2.subirimagenes.com/otros/previo/thump_8076382captura.jpg (http://www.subirimagenes.com/otros-captura-8076382.html)
Paso 6. Configurar un AVD.
A la hora de probar y depurar aplicaciones Android no tendremos que hacerlo necesariamente sobre un dispositivo físico, sino que podremos configurar un emulador o dispositivo virtual (Android Virtual Device, o AVD) donde poder realizar fácilmente estas tareas. Para ello, volveremos a acceder al AVD Manager, y en la sección Virtual Devices podremos añadir tantos AVD como se necesiten (por ejemplo, configurados para distintas versiones de Android). Para configurar el AVD tan sólo tendremos que indicar un nombre descriptivo, el target de Android que utilizará, y las características de hardware del dispositivo virtual, como por ejemplo su resolución de pantalla, el tamaño de la tarjeta SD, o la disponibilidad de GPS.
http://s2.subirimagenes.com/otros/previo/thump_8076390captura2.jpg (http://www.subirimagenes.com/otros-captura2-8076390.html)
Amplio con como hacer una apk muy sencilla.
¡Hola Mundo! en Android
Creamos un nuevo proyecto de tipo Android Project. Indicamos su nombre, el target deseado, el nombre de la aplicación, el paquete java por defecto para nuestras clases y el nombre de la clase (activity) principal.
http://s2.subirimagenes.com/otros/previo/thump_8077314holamundo1.jpg (http://www.subirimagenes.com/otros-holamundo1-8077314.html)
http://s3.subirimagenes.com:81/otros/previo/thump_8077322holamundo2.jpg (http://www.subirimagenes.com/otros-holamundo2-8077322.html)
Esta acción creará toda la estructura de carpetas necesaria para compilar un proyecto para Android. Hablaremos de ella más adelante. Para ejecutar el proyecto tal cual podremos hacerlo como cualquier otro proyecto java configurando una nueva entrada de tipo Android Applications en la ventana de Run Configurations. Al ejecutar el proyecto, se abrirá un nuevo emulador Android y se cargará automáticamente nuestra aplicación.
La salida debería ser esta:
http://www.subirimagenes.net/thumbnails/5b7dc8cb5a2d79ca100f8b74154dd8fe.jpg (http://www.subirimagenes.net/show-image.php?id=e2ee785de85fa3a81185ec5ac13733f9)
Estructura de un proyecto Android
Para empezar a comprender cómo se construye una aplicación Android vamos a echar un vistazo a la estructura general de un proyecto tipo. Cuando creamos un nuevo proyecto Android en Eclipse se genera automáticamente la estructura de carpetas necesaria para poder generar posteriormente la aplicación. Esta estructura será común a cualquier aplicación, independientemente de su tamaño y complejidad. En la siguiente imagen vemos los elementos creados inicialmente para un nuevo proyecto Android:
http://www.subirimagenes.net/thumbnails/0c2d5376940da89d794cd6ed0ec7be88.jpg (http://www.subirimagenes.net/show-image.php?id=8433d908775fcaa9dc713e967a48b0ba)
En los siguientes apartados describiremos los elementos principales de esta estructura.
Carpeta /src/
Contiene todo el código fuente de la aplicación, código de la interfaz gráfica, clases auxiliares, etc. Inicialmente, Eclipse creará por nosotros el código básico de la pantalla (Activity) principal de la aplicación, siempre bajo la estructura del paquete java definido. Y eso es todo, ya subiré como hacer proyectos de Android en Eclipse y como compilar.
http://www.subirimagenes.net/thumbnails/1491a3d143c6eab606f60a5600d8d29c.jpg (http://www.subirimagenes.net/show-image.php?id=7e336607245e061fab0896282c40de99)
Carpeta /res/
Contiene todos los ficheros de recursos necesarios para el proyecto: imágenes, vídeos, cadenas de texto, etc. Los diferentes tipos de recursos de deberán distribuir entre las siguientes carpetas:
http://www.subirimagenes.net/thumbnails/fd65b640fdd96157c96812ce10748759.jpg (http://www.subirimagenes.net/show-image.php?id=72c96d63aaa6fd65ed4381b8c6d9974f)
Como ejemplo, para un proyecto nuevo Android, se crean los siguientes recursos para la aplicación:
http://www.subirimagenes.net/thumbnails/f81312f887b15862dc9998da526065aa.jpg (http://www.subirimagenes.net/show-image.php?id=0546f71f4b12d7abf47cff6503317124)
Carpeta /gen/
Contiene una serie de elementos de código generados automáticamente al compilar el proyecto. Cada vez que generamos nuestro proyecto, la maquinaria de compilación de Android genera por nosotros una serie de ficheros fuente en java dirigidos al control de los recursos de la aplicación.
http://www.subirimagenes.net/thumbnails/0ea8282de2bb74da6fdeb508a7a962a4.jpg (http://www.subirimagenes.net/show-image.php?id=235a1f7f38552cc0ef10374500987f76)
El más importante es el que se puede observar en la imagen, el fichero R.java, y la clase R. Esta clase R contendrá en todo momento una serie de constantes con los ID de todos los recursos de la aplicación incluidos en la carpeta /res/, de forma que podamos acceder fácilmente a estos recursos desde nuestro código a través de este dato. Así, por ejemplo, la constante R.drawable.icon contendrá el ID de la imagen “icon.png” contenida en la carpeta /res/drawable/. Veamos como ejemplo la clase R creada por defecto para un
proyecto nuevo:
package net.sgoliver;
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=0x7f040001;
public static final int hello=0x7f040000;
}
}
Carpeta /assets/
Contiene todos los demás ficheros auxiliares necesarios para la aplicación (y que se incluirán en su propio paquete), como por ejemplo ficheros de configuración, de datos, etc. La diferencia entre los recursos incluidos en la carpeta /res/raw/ y los incluidos en la carpeta /assets/ es que para los primeros se generará un ID en la clase R y se deberá acceder a ellos con los diferentes métodos de acceso a recursos. Para los segundos sin embargo no se generarán ID y se podrá acceder a ellos por su ruta como a cualquier otro fichero del sistema. Usaremos uno u otro según las necesidades de nuestra aplicación.
Fichero AndroidManifest.xml
Contiene la definición en XML de los aspectos principales de la aplicación, como por ejemplo su identificación (nombre, versión, icono, …), sus componentes (pantallas, mensajes, …), o los permisos necesarios para su ejecución. Veremos más adelante más detalles de este fichero. En el siguiente apartado veremos los componentes software principales con los que podemos construir una aplicación Android.
Componentes de una aplicación Android
En el apartado anterior vimos la estructura de un proyecto Android y aprendimos dónde colocar cada uno de los elementos que componen una aplicación, tanto elementos de software como recursos gráficos o de datos. En éste nuevo post vamos a centrarnos específicamente en los primeros, es decir, veremos los distintos tipos de componentes de software con los que podremos construir una aplicación Android. En Java o .NET estamos acostumbrados a manejar conceptos como ventana, control, eventos o servicios como los elementos básicos en la construcción de una aplicación. Pues bien, en Android vamos a disponer de esos mismos elementos básicos aunque con un pequeño cambio en la terminología y el enfoque. Repasemos los componentes principales que pueden formar parte de una aplicación Android [Por claridad, y para evitar confusiones al los nombres originales de los componentes].
Activity
Las actividades (activities) representan el componente principal de la interfaz gráfica de una aplicación Android. Se puede pensar en una actividad como el elemento análogo a una ventana en cualquier otro lenguaje visual.
View
Los objetos view son los componentes básicos con los que se construye la interfaz gráfica de la aplicación, análogo por ejemplo a los controles de Java o .NET. De inicio, Android pone a nuestra disposición una gran cantidad de controles básicos, como cuadros de texto, botones, listas desplegables o imágenes, aunque también existe la posibilidad de extender la funcionalidad de estos controles básicos o crear nuestros propios controles personalizados.
Service
Los servicios son componentes sin interfaz gráfica que se ejecutan en segundo plano. En concepto, son exactamente iguales a los servicios presentes en cualquier otro sistema operativo. Los servicios pueden realizar cualquier tipo de acciones, por ejemplo actualizar datos, lanzar notificaciones, o incluso mostrar elementos visuales (p.ej. activities) si se necesita en algún momento la interacción con del usuario.
Content Provider
Un content provider es el mecanismo que se ha definido en Android para compartir datos entre aplicaciones. Mediante estos componentes es posible compartir determinados datos de nuestra aplicación sin mostrar detalles sobre su almacenamiento interno, su estructura, o su implementación. De la misma forma, nuestra aplicación podrá acceder a los datos de otra a través de los content provider que se hayan definido.
Broadcast Receiver
Un broadcast receiver es un componente destinado a detectar y reaccionar ante determinados mensajes o eventos globales generados por el sistema (por ejemplo: “Batería baja”, “SMS recibido”, “Tarjeta SD insertada”, …) o por otras aplicaciones (cualquier aplicación puede generar mensajes (intents, en terminología Android) broadcast, es decir, no dirigidos a una aplicación concreta sino a cualquiera que quiera escucharlo).
Widget
Los widgets son elementos visuales, normalmente interactivos, que pueden mostrarse en la pantalla principal (home screen) del dispositivo Android y recibir actualizaciones periódicas. Permiten mostrar información de la aplicación al usuario directamente sobre la pantalla principal.
Intent
Un intent es el elemento básico de comunicación entre los distintos componentes Android que hemos descrito anteriormente. Se pueden entender como los mensajes o peticiones que son enviados entre los distintos componentes de una aplicación o entre distintas aplicaciones. Mediante un intent se puede mostrar una actividad desde cualquier otra, iniciar un servicio, enviar un mensaje broadcast, iniciar otra aplicación, etc.
Si aún no tienes instalado Eclipse, puedes descargar la última versión desde este enlace. Recomiendo descargar por ejemplo la versión “Eclipse
IDE for Java Developers”. La instalación consiste simplemente en descomprimir el ZIP en la ubicación deseada.
http://www.eclipse.org/downloads/
Paso 2. Descargar el SDK de Android.
El SDK de la plataforma Android se puede descargar desde este enlace . Una vez descargado, de nuevo bastará con descomprimir el zip en cualquier ubicación.
http://developer.android.com/sdk/index.html
Paso 3. Descargar el plugin Android para Eclipse.
Google pone a disposición de los desarrolladores un plugin para Eclipse llamado Android
Development Tools (ADT) que facilita en gran medida el desarrollo de aplicaciones para la plataforma. Podéis descargarlo mediante las opciones de actualización de Eclipse, accediendoal menú “Help / Install new software…” e indicando la URL de descarga:
https://dl-ssl.google.com/android/eclipse/
Se debe seleccionar e instalar el paquete completo Developer Tools, formado por Android DDMS y Android Development Tools.
Paso 4. Configurar el plugin ADT.
En la ventana de configuración de Eclipse, se debe acceder a la sección de Android e indicar la ruta en la que se ha instalado el SDK (paso 2).
http://s2.subirimagenes.com/otros/previo/thump_8076366captura1.jpg (http://www.subirimagenes.com/otros-captura1-8076366.html)
Paso 5. Descargar los targets necesarios.
Además del SDK de Android comentado en el paso 2, también debemos descargar los
llamados SDK Targets de Android, que no son más que las librerías necesarias para desarrollar en cada una de las versiones concretas de Android. Así, si queremos desarrollar por ejemplo para Android 1.6 tendremos que descargar su target correspondiente. Para ello, desde Eclipse debemos acceder al menú “Window / Android SDK and AVD Manager“, y en la sección Available Packages seleccionar e instalar todos los paquetes deseados.
http://s2.subirimagenes.com/otros/previo/thump_8076382captura.jpg (http://www.subirimagenes.com/otros-captura-8076382.html)
Paso 6. Configurar un AVD.
A la hora de probar y depurar aplicaciones Android no tendremos que hacerlo necesariamente sobre un dispositivo físico, sino que podremos configurar un emulador o dispositivo virtual (Android Virtual Device, o AVD) donde poder realizar fácilmente estas tareas. Para ello, volveremos a acceder al AVD Manager, y en la sección Virtual Devices podremos añadir tantos AVD como se necesiten (por ejemplo, configurados para distintas versiones de Android). Para configurar el AVD tan sólo tendremos que indicar un nombre descriptivo, el target de Android que utilizará, y las características de hardware del dispositivo virtual, como por ejemplo su resolución de pantalla, el tamaño de la tarjeta SD, o la disponibilidad de GPS.
http://s2.subirimagenes.com/otros/previo/thump_8076390captura2.jpg (http://www.subirimagenes.com/otros-captura2-8076390.html)
Amplio con como hacer una apk muy sencilla.
¡Hola Mundo! en Android
Creamos un nuevo proyecto de tipo Android Project. Indicamos su nombre, el target deseado, el nombre de la aplicación, el paquete java por defecto para nuestras clases y el nombre de la clase (activity) principal.
http://s2.subirimagenes.com/otros/previo/thump_8077314holamundo1.jpg (http://www.subirimagenes.com/otros-holamundo1-8077314.html)
http://s3.subirimagenes.com:81/otros/previo/thump_8077322holamundo2.jpg (http://www.subirimagenes.com/otros-holamundo2-8077322.html)
Esta acción creará toda la estructura de carpetas necesaria para compilar un proyecto para Android. Hablaremos de ella más adelante. Para ejecutar el proyecto tal cual podremos hacerlo como cualquier otro proyecto java configurando una nueva entrada de tipo Android Applications en la ventana de Run Configurations. Al ejecutar el proyecto, se abrirá un nuevo emulador Android y se cargará automáticamente nuestra aplicación.
La salida debería ser esta:
http://www.subirimagenes.net/thumbnails/5b7dc8cb5a2d79ca100f8b74154dd8fe.jpg (http://www.subirimagenes.net/show-image.php?id=e2ee785de85fa3a81185ec5ac13733f9)
Estructura de un proyecto Android
Para empezar a comprender cómo se construye una aplicación Android vamos a echar un vistazo a la estructura general de un proyecto tipo. Cuando creamos un nuevo proyecto Android en Eclipse se genera automáticamente la estructura de carpetas necesaria para poder generar posteriormente la aplicación. Esta estructura será común a cualquier aplicación, independientemente de su tamaño y complejidad. En la siguiente imagen vemos los elementos creados inicialmente para un nuevo proyecto Android:
http://www.subirimagenes.net/thumbnails/0c2d5376940da89d794cd6ed0ec7be88.jpg (http://www.subirimagenes.net/show-image.php?id=8433d908775fcaa9dc713e967a48b0ba)
En los siguientes apartados describiremos los elementos principales de esta estructura.
Carpeta /src/
Contiene todo el código fuente de la aplicación, código de la interfaz gráfica, clases auxiliares, etc. Inicialmente, Eclipse creará por nosotros el código básico de la pantalla (Activity) principal de la aplicación, siempre bajo la estructura del paquete java definido. Y eso es todo, ya subiré como hacer proyectos de Android en Eclipse y como compilar.
http://www.subirimagenes.net/thumbnails/1491a3d143c6eab606f60a5600d8d29c.jpg (http://www.subirimagenes.net/show-image.php?id=7e336607245e061fab0896282c40de99)
Carpeta /res/
Contiene todos los ficheros de recursos necesarios para el proyecto: imágenes, vídeos, cadenas de texto, etc. Los diferentes tipos de recursos de deberán distribuir entre las siguientes carpetas:
http://www.subirimagenes.net/thumbnails/fd65b640fdd96157c96812ce10748759.jpg (http://www.subirimagenes.net/show-image.php?id=72c96d63aaa6fd65ed4381b8c6d9974f)
Como ejemplo, para un proyecto nuevo Android, se crean los siguientes recursos para la aplicación:
http://www.subirimagenes.net/thumbnails/f81312f887b15862dc9998da526065aa.jpg (http://www.subirimagenes.net/show-image.php?id=0546f71f4b12d7abf47cff6503317124)
Carpeta /gen/
Contiene una serie de elementos de código generados automáticamente al compilar el proyecto. Cada vez que generamos nuestro proyecto, la maquinaria de compilación de Android genera por nosotros una serie de ficheros fuente en java dirigidos al control de los recursos de la aplicación.
http://www.subirimagenes.net/thumbnails/0ea8282de2bb74da6fdeb508a7a962a4.jpg (http://www.subirimagenes.net/show-image.php?id=235a1f7f38552cc0ef10374500987f76)
El más importante es el que se puede observar en la imagen, el fichero R.java, y la clase R. Esta clase R contendrá en todo momento una serie de constantes con los ID de todos los recursos de la aplicación incluidos en la carpeta /res/, de forma que podamos acceder fácilmente a estos recursos desde nuestro código a través de este dato. Así, por ejemplo, la constante R.drawable.icon contendrá el ID de la imagen “icon.png” contenida en la carpeta /res/drawable/. Veamos como ejemplo la clase R creada por defecto para un
proyecto nuevo:
package net.sgoliver;
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=0x7f040001;
public static final int hello=0x7f040000;
}
}
Carpeta /assets/
Contiene todos los demás ficheros auxiliares necesarios para la aplicación (y que se incluirán en su propio paquete), como por ejemplo ficheros de configuración, de datos, etc. La diferencia entre los recursos incluidos en la carpeta /res/raw/ y los incluidos en la carpeta /assets/ es que para los primeros se generará un ID en la clase R y se deberá acceder a ellos con los diferentes métodos de acceso a recursos. Para los segundos sin embargo no se generarán ID y se podrá acceder a ellos por su ruta como a cualquier otro fichero del sistema. Usaremos uno u otro según las necesidades de nuestra aplicación.
Fichero AndroidManifest.xml
Contiene la definición en XML de los aspectos principales de la aplicación, como por ejemplo su identificación (nombre, versión, icono, …), sus componentes (pantallas, mensajes, …), o los permisos necesarios para su ejecución. Veremos más adelante más detalles de este fichero. En el siguiente apartado veremos los componentes software principales con los que podemos construir una aplicación Android.
Componentes de una aplicación Android
En el apartado anterior vimos la estructura de un proyecto Android y aprendimos dónde colocar cada uno de los elementos que componen una aplicación, tanto elementos de software como recursos gráficos o de datos. En éste nuevo post vamos a centrarnos específicamente en los primeros, es decir, veremos los distintos tipos de componentes de software con los que podremos construir una aplicación Android. En Java o .NET estamos acostumbrados a manejar conceptos como ventana, control, eventos o servicios como los elementos básicos en la construcción de una aplicación. Pues bien, en Android vamos a disponer de esos mismos elementos básicos aunque con un pequeño cambio en la terminología y el enfoque. Repasemos los componentes principales que pueden formar parte de una aplicación Android [Por claridad, y para evitar confusiones al los nombres originales de los componentes].
Activity
Las actividades (activities) representan el componente principal de la interfaz gráfica de una aplicación Android. Se puede pensar en una actividad como el elemento análogo a una ventana en cualquier otro lenguaje visual.
View
Los objetos view son los componentes básicos con los que se construye la interfaz gráfica de la aplicación, análogo por ejemplo a los controles de Java o .NET. De inicio, Android pone a nuestra disposición una gran cantidad de controles básicos, como cuadros de texto, botones, listas desplegables o imágenes, aunque también existe la posibilidad de extender la funcionalidad de estos controles básicos o crear nuestros propios controles personalizados.
Service
Los servicios son componentes sin interfaz gráfica que se ejecutan en segundo plano. En concepto, son exactamente iguales a los servicios presentes en cualquier otro sistema operativo. Los servicios pueden realizar cualquier tipo de acciones, por ejemplo actualizar datos, lanzar notificaciones, o incluso mostrar elementos visuales (p.ej. activities) si se necesita en algún momento la interacción con del usuario.
Content Provider
Un content provider es el mecanismo que se ha definido en Android para compartir datos entre aplicaciones. Mediante estos componentes es posible compartir determinados datos de nuestra aplicación sin mostrar detalles sobre su almacenamiento interno, su estructura, o su implementación. De la misma forma, nuestra aplicación podrá acceder a los datos de otra a través de los content provider que se hayan definido.
Broadcast Receiver
Un broadcast receiver es un componente destinado a detectar y reaccionar ante determinados mensajes o eventos globales generados por el sistema (por ejemplo: “Batería baja”, “SMS recibido”, “Tarjeta SD insertada”, …) o por otras aplicaciones (cualquier aplicación puede generar mensajes (intents, en terminología Android) broadcast, es decir, no dirigidos a una aplicación concreta sino a cualquiera que quiera escucharlo).
Widget
Los widgets son elementos visuales, normalmente interactivos, que pueden mostrarse en la pantalla principal (home screen) del dispositivo Android y recibir actualizaciones periódicas. Permiten mostrar información de la aplicación al usuario directamente sobre la pantalla principal.
Intent
Un intent es el elemento básico de comunicación entre los distintos componentes Android que hemos descrito anteriormente. Se pueden entender como los mensajes o peticiones que son enviados entre los distintos componentes de una aplicación o entre distintas aplicaciones. Mediante un intent se puede mostrar una actividad desde cualquier otra, iniciar un servicio, enviar un mensaje broadcast, iniciar otra aplicación, etc.