Vamos a aprender cómo se crea un "Hola mundo" para Android. Se trata de algo muy sencillo, además, veremos las diferentes partes que tiene un proyecto en Android. En primer lugar vamos a abrir Eclipse, en mi caso utilizo Eclipse IDE for Java EE Developers. Antes de comenzar nuestro proyecto, vamos a comprobar las APIs instaladas en nuestro ordenador, para ello nos vamos a Window - Android SDK Manager o pulsamos sobre el siguiente icono:
Una vez abierta esta ventana, podemos seleccionar qué herramientas queremos instalar para desarrollar nuestros proyectos en Android.
En un
post anterior, describíamos estas herramientas. Vamos a instalar desde la
API 7 (Android 2.1) en adelante y de cada API vamos a seleccionar como mínimo
SDK Platform y Samples for SDK (que recordemos que son ejemplos que nos pueden ser de utilidad tanto para aprender como para utilizarlos en nuestros propios proyectos). Por tanto, seleccionamos los paquetes necesarios y pulsamos sobre el botón
Install packages, en mi caso voy a instalar 23 paquetes, ya que no los había instalado con anterioridad, a continuación tenemos esta ventana.
Aquí seleccionaremos Accept All ya que si no tendremos que ir aceptando paquete a paquete y esto resulta un poco más engorroso, a continuación pulsamos sobre Install y comienza la instalación. Este proceso puede ser un poquito largo según los paquetes a instalar, paciencia pues.
Los paquetes que no instalemos ahora se pueden instalar posteriormente.
Una vez instalados los paquetes nos puede aparecer la siguiente ventana con el mensaje:
A package that depends on ADB has been updated. Do you want to restart ADB now?:
Pulsamos sobre Yes. La siguiente ventana que nos aparece es esta:
Pulsamos
OK. Y en la ventana que queda
Close. Ya podemos cerrar el
Android SDK Manager.
Una vez que tenemos las herramientas necesarias para comenzar a programar en Android, crearemos nuestro primer proyecto, para ello nos vamos a File - New - Project...
Aquí seleccionamos Android - Android Project, pulsamos sobre Next:
En esta ventana, en Project Name, ponemos el nombre de nuestro proyecto, en este caso HolaMundo, quedando marcada la opción Create new project in workspace. Pulsamos sobre Next:
Aquí debemos seleccionar la versión de Android sobre la que queremos trabajar, en este caso voy a seleccionar la versión 2.1, sin embargo, deberíamos seleccionar la versión que necesitemos. Si elijo la versión 2.1, el programa seguro que funcionará desde esta versión en adelante. Volvemos a pulsar sobre Next. Ahora tenemos que elegir un nombre de paquete, en nuestro caso ejercicios.ejemplo, ya que el programa nos obliga a que el nombre del paquete tenga dos identificadores. También si queremos que cree una Activity, que se llamaría HolaMundoActivity, dejamos marcada esta opción para que la cree.
Pulsamos en Finish y ya tenemos creado nuestro proyecto.
A continuación vamos a ver algunas de las carpetas y archivos importantes en un proyecto, como vemos aparecen en la parte izquierda de Eclipse:
- src/ejercicios.ejemplo/HolaMundoActivity.java. Pulsamos doble clic sobre el nombre de este archivo. Como vemos aquí irá todo nuestro código Java, la lógica de nuestra aplicación. Tenemos la clase HolaMundoActivity que extiende la clase Activity y se sobreescribe el método onCreate(). Cada pantalla de la aplicación se define mediante un objeto Activity. Podemos tener las Activities que necesitemos.
import android.app.Activity;
import android.os.Bundle;
public class HolaMundoActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
- res/layout/main.xml. Aquí se definen los componentes de la interfaz gráfica de la aplicación y se especifican todas sus propiedades. Se definen los layouts de la aplicación que son elementos no visibles que determinan cómo se van a distribuir los diferentes componentes de la interfaz gráfica, que veremos más adelante. Además de main.xml en la carpeta res se pueden guardar las interfaces gráficas que sean necesarias para nuestra aplicación.
- res/values/strings.xml. Aquí se definen una serie de cadenas de caracteres que podrán ser llamadas desde nuestra aplicación Java, así evitamos definir variables. En nuestro ejemplo tenemos dos cadenas de caracteres definidas, hello y app_name, que podrán ser referenciadas desde HolaMundoActivity, main, AndroidManifest. Se pueden definir dentro de la carpeta res/values/ los archivos con recursos strings necesarios.
Hello World, HolaMundoActivity!
HolaMundo
- AndroidManifest.xml. Aquí definimos la versión de nuestra aplicación, el paquete al que pertenece, la versión mínima de SDK que soporta, un icono (ic_launcher) y el nombre de la aplicación (app_name), los activities que tenemos y los permisos que debe tomar la aplicación. Si nos fijamos en el código, aparece una Activity, HolaMundoActivity, que es la única que tenemos.
- gen/ejercicios.ejemplo/R.java. Este archivo es un índice de todos los recursos del proyecto y un atajo para referirse a estos recursos. Permite localizar de forma rápida e interactiva la referencia específica que estamos buscando. Enlaza lo que hagamos en XML con la programación en Java. No se debe modificar ya que es Eclipse quien se encarga de modificarlo.
/* 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 ejercicios.ejemplo;
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int ic_launcher=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;
}
}
Carpetas res/drawable. Aquí tenemos los iconos e imágenes que vamos a utilizar en nuestra aplicación. Debemos colocar las imágenes según el tipo de pantalla del dispositivo. En drawable-hdpi se colocarán las imágenes para dispositivos con alta resolución, en drawable-mdpi imágenes con resolución media y en drawable-ldpi las dirigidas a dispositivos con pantallas pequeñas.
A continuación vamos a arrancar el emulador de Android para probar nuestro Hola Mundo. El AVD (Android Virtual Device) es una herramienta que nos permite emular en un ordenador el entorno móvil en el cual se ejecutará nuestra aplicación Android. En el momento de instalar el SDK no tendremos ningún emulador, así que tendremos que crearlo. Nos vamos a Window - AVD Manager o bien pulsamos sobre el siguiente botón:
Tenemos la siguiente ventana, en la cual tenemos que pulsar sobre New para crear el nuevo AVD:
Al pulsar sobre New tenemos lo siguiente:
- Name. Aquí pondremos nombre a nuestro dispositivo virtual. Normalmente se le asigna un nombre relacionado con la versión de Android para la que está configurado.
- Target. Esta es la versión de Android que correrá en el dispositivo virtual y deberá ser como mínimo la que se utilice para crear nuestros proyectos. Se pueden crear tantos emuladores como versiones de Android tengamos instaladas en Eclipse.
Estos campos son obligatorios, opcionalmente podemos rellenar:
- SD Card. Donde podremos el tamaño de una tarjeta SD o bien cargar el archivo de una SD existente. Normalmente pondremos el tamaño de la tarjeta SD.
- Skin. Aquí configuramos las características de la pantalla de nuestro dispositivo. Si el monitor del ordenador es grande dejaremos la opción que viene por defecto, si no seleccionaremos la opción HVGA para adaptar el emulador al tamaño de la pantalla que tenemos.
El apartado de Hardware nos permite agregar características de hardware específicas del dispositivo como acelerómetro, cámara, teclado físico, etc.
Personalmente voy a crear un emulador con las siguientes características:
Pulsamos sobre Create AVD y en la ventana del AVD Manager seleccionamos el emulador y pulsamos sobre el botón Start..., en la ventana que sale pulsamos sobre el botón Launch y ahora ya podemos probar nuestro programa en el emulador.
Para probar una aplicación la seleccionamos y bien pulsamos con el botón derecho del ratón sobre el nombre del proyecto y seleccionamos la opción Run as - Android Application o bien nos vamos al menú Run - Android Application. Y voilá, aquí tenemos ejecutándose a nuestro "Hola mundo".
Cómo probar nuestro programa en el móvil
Primero tendremos que modificar el AndroidManifest.xml y añadir lo siguiente:
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:debuggable="true">
Debemos asegurarnos de desactivar esta opción cuando publicamos la aplicación en Google Play. Ahora nos vamos a nuestro dispositivo y entramos en Ajustes - Aplicaciones - Desarrollo, (si tenemos Android 4.0 nos tenemos que ir a Ajustes - Opciones de desarrollador) y activamos la opción Depuración de USB.
Configura el sistema para detectar el dispositivo:
- En Windows necesitamos instalar un controlador USB para adb. En esta web puedes ver el modo de instalación según la versión de Windows que tengas y los controladores para los diferentes modelos de smartphones.
- Si estamos desarrollando para Mac OS X, funciona sin hacer nada.
- Si utilizamos Ubuntu Linux, necesitamos añadir un archivo de reglas udev que contenga la configuración USB para cada tipo de dispositivo que queramos utilizar para probar las aplicaciones. En este archivo, cada fabricante de dispositivos se identifica con un identificador único ID, puedes encontrar una lista de identificadores para los diferentes proveedores aquí . Para establecer la detección de dispositivo haremos lo siguiente:
1. Inicia la sesión como root y crea este archivo /etc/udev/rules.d/51-android.rules. Utiliza este formato para añadir la información de cada proveedor:
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666", GROUP="plugdev"
Este ejemplo sería para un móvil modelo Samsung, lo vemos en el campo ATTR, la asignación de MODE especifica los permisos de lectura/escritura y GROUP define a qué grupo pertenece el nodo del dispositivo.
(La sintaxis de las reglas puede variar dependiendo del entorno, para saber más sobre la escritura de reglas para archivos udev visita la dirección http://www.reactivated.net/writing_udev_rules.html).
2. Ahora en un terminal ejecutamos la orden: chmod a+r /etc/udev/rules.d/51-android.rules
Cuando conectemos el dispositivo al ordenador, podemos verificar que el dispositivo está conectado ejecutando adb devices desde el directorio SDK platform-tools. Si está conectado, verás el nombre del dispositivo en la lista de dispositivos.
Si utilizamos Eclipse, ejecutaremos la aplicación como siempre. Se nos abrirá una ventana en la que podremos seleccionar entre el emulador y los dispositivos conectados para probar la aplicación. Seleccionamos nuestro dispositivo:
Y así instalaremos y ejecutaremos la aplicación en nuestro móvil.
Si utilizamos Android Debug Bridge (adb), podemos emitir comandos con la opción -d para apuntar al dispositivo conectado.
A partir de este artículo ya tenemos todo preparado para programar y probar nuestras aplicaciones Android.