Esta pequeña entrada servirá como base para las siguientes, en las que iré poniendo mis experiencias experiencias con Android Android,, un estupen estupendo do sistem sistemaa operat operativo ivo para para dispositivos móviles basado en Linux, y que nos proporciona un completo SDK para desarrollar nuestras propias aplicaciones de una manera rápida y divertida. Aprenderemos a instalar/configurar el SDK y el plugin para Eclipse. Eclipse. Haremos el típico Hola Hola Mund Mundo, o, y expl explic icar aréé un poco poco sobr sobree la meto metodo dolo logí gíaa de progr program amac ació ión n para para esta esta plataforma (que es sobre Java Java). ). ¡Manos a la obra!
1. Instalar y configurar el SDK de android Vamos a la página del Androi Android d SDK y descargamos la versión para nuestro sistema operativo. Yo uso Gentoo Linux, pero los pasos son prácticamente idénticos en Windows y en Mac. La última versión al escribir esta entrada es android-sdk_r05 . Una vez que hayamos descargado el archivo, lo descomprimimos, entramos a la carpeta que se crea y ejecutamos (en Linux):
tools/android En Windows:
SDK Setup.exe Veremos algo como esto:
Available packages y desple Hacemos clic en Available desplegam gamos os el árbol árbol que aparec aparecee bajo bajo Sites, Packages and Archives para instalar el API sobre la(s) que deseamos trabajar, y una vez la(s) hayamos seleccionado hacemos clic en Install en Install Selected . En este caso he seleccionad seleccionado o el API 7 (para la versión 2.1 de Android), la documentación del API 7, los ejemplos del API 7 y el SDK del API 4 (para la versión 1.6 de Android). Android). Es importante importante elegir las APIs adecuadas teniendo el cuenta el tipo de dispositivo para el que estamos desarrollando la aplicación. Escogí en este caso el API 4 puesto que el equipo sobre el que pruebo los programas programas (HTC Tatto Tattoo o) vien vienee con Androi Android d 1.6 (Donut (Donut)) [más inf inform ormaci ación ón sob sobre re las versiones y sus codenames]. codenames]. Por supuesto, si desarrollas con el API 4 tus programas tienen un 98% de probabilidades de correr sobre las versiones más recientes de Android sin modificación alguna.
Una vez haya terminado de descargar e instalar las APIs podemos crear un dispositivo virtual sobre el que probaremos nuestras aplicaciones. Hacemos clic en Virtual Devices al lado izquierdo, luego sobre el botón New… botón New… y configuramos el dispositivo:
Como puede apreciar en la imagen de arriba, debe poner un nombre al dispositivo, seleccionar el API sobre el que va a trabajar, darle un tamaño a la memoria ROM, escoger un tipo de pantalla y algunas configuraciones avanzadas que no se tratarán en este tutorial. Una vez tengamos esto, hacemos clic en Create AVD y si todo sale bien veremos algo como esto:
2. Instalar y configurar el plugin para Eclipse Para este paso, necesitaremos Eclipse 3.5 (Galileo, recomendado) o 3.4. Abrimos eclipse, vamos a la Window -> Install New Software…
Hacemos clic en el botón Add… para añadir el repositorio de Android (https://dlssl.google.com/android/eclipse/ ):
Clic en OK y ahora seleccionamos los plugins a instalar, y seguimos el proceso de instalación:
Una vez instalado, reiniciamos Eclipse y veremos que se han añadido algunos iconos extra en la barra de herramientas, y que además podemos crear proyectos para Android
3. Hola Mundo en Android Ahora vamos a crear un nuevo proyecto y aprender un poco más sobre cómo funcionan las aplicaciones para Android. Hacemos clic en el botón de creación de proyectos Android (o File… -> New Project -> Android Proyect ):
Veremos el asistente de creación de proyectos para Android en donde debemos especificar: el nombre del proyecto (HolaParce), el API para el que vamos a desarrollar (1.6 en este caso), el nombre de la aplicación (Hola Parce en este caso), el nombre del paquete (se recomienda que sea un paquete nombrado con el estándar de Java, es decir, un dominio invertido), seleccionamos Create Activity y le damos un nombre (que cumpla las especificaciones de un nombre de clase en Java), y por último seleccionamos la versión mínima del API que deberán tener los dispositivos que corran nuestro aplicativo:
¡Clic en Finish y listo! Ahora podemos probar la aplicación… hacemos clic derecho sobre el Proyecto, seleccionamos Run as… -> Android Application. Se cargará el emulador y después de un par de minutos podremos ver nuestra aplicación:
4. Entendiendo el funcionamiento básico de las aplicaciones en Android Las aplicaciones en Android funcionan bajo el esquema de “Actividades”. Una actividad presenta una interfaz gráfica (escrita en XML) que permite al usuario interactuar con la aplicación. Cada aplicación tiene varias actividades que se van mostrando al usuario según este las vaya necesitando. Una actividad llama a otra cuando sea necesario, y cada una de las actividades que se vayan mostrando se almacenan en una pila; es decir, cada vez que la aplicación lo requiera inserta una nueva actividad en la pila y, cuando esta ya no se necesite, se hace un push sobre esta lo cual deja en descubierto la actividad que estaba debajo. Importante leer esto para tener claro cada uno de los aspectos fundamentales de las aplicaciones Android. Ahora, veremos detalladamente qué ocurrió en los pasos que seguimos arriba. Por ejemplo, al crear el proyecto se generan algunos archivos automáticamente. Veamos que hace cada uno de ellos…
Dentro del directorio res se han creado algunos subdirectorios: •
drawable-hdpi , drawable-mdpi , drawable-ldpi en donde se almacenan las
imágenes que va a utilizar nuestra aplicación. La diferencia entre ellas es
que debemos colocar las imágenes que aparecerán según el tipo de pantalla del dispositivo. En drawable-hdpi se colocarán las imágenes para dispositivos con alta resolución (High) y en drawable-ldpi (Low) pondremos las imágenes para dispositivos con pantallas pequeñas. •
values contiene inicialmente el archivo strings.xml , que es donde
declaramos las cadenas de texto que usará nuestra aplicación. No es obligatorio definir todas las cadenas de texto allí, pero es bastante recomendable hacerlo. En este caso simplemente contiene la definición de una cadena de texto (llamada hello), que es la que se muestra al ejecutar la aplicación: ?
1
2 Hello World, HolaParce! 3 4 5 Hola Parce •
layout contiene los archivos XML que representan interfaces gráficas. Si echamos un vistazo al archivo generado ( main.xml ) veremos algo como
esto: ? 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8
0 9 1 0 1 1 1 2 De aquí podemos resaltar varias cosas: ○
Los layouts son XML estrictos, así que deben comenzar con el encabezado y todas las etiquetas abiertas deben ser debidamente cerradas.
○
Los LinearLayout representan contenedores de widgets (algo similar al JPanel de swing en Java). Es decir, es la manera de organizar cada grupo de elementos de la interfaz gráfica.
○
En este caso, dentro del contenedor solo tenemos un TextView (que sería algo así como un JLabel de swing en Java).
○
Sea cual sea el elemento que pongamos en el layout, debemos especificar su anchura ( android:layout_width ) y altura (android:layout_height ). Para cada parámetro podemos usar el valor fill_parent o wrap_content . fill_parent hará que el widget ocupe todo el tamaño posible, mientras que wrap_content hará que ocupe el menos posible.
○
El parámetro android:text permite asignar un texto al TextView . En este caso se usa @string/hello que indica que se usará una variable llamada hello. Esta variable puede ser encontrada en el archivo strings.xml dentro del directorio values. También podríamos especificar el texto directamente, por ejemplo: android:text="Hola parcero!"
•
Como tal vez se dio cuenta, es posible editar los archivos XML gráficamente o con el editor de textos de Eclipse.
Dentro del directorio gen se encuentra un archivo llamado R.java . Este archivo NO debemos modificarlo ya que es Eclipse quien se encargar de poner el código allí dentro. Este archivo sirve básicamente para enlazar las cosas que hagamos en XML con la programación en Java. Por ejemplo, se crea una referencia a la variable hello creada en el archivo strings.xml . Esto permite que podamos referenciar dicha variable desde Java (esto se explica con más detalle abajo). Bajo el directorio src se creó un paquete y dentro de él un archivo en Java que es nuestra primera actividad (fíjese cómo la clase creada extiende la clase Activity del paquete android.app ):
? 0 package net.casidiablo.holaparce;
1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 0 1 1
import android.app.Activity; import android.os.Bundle; public class HolaParce extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
Veamos en detalle cada línea: •
•
•
•
•
Línea 1 define el nombre del paquete. Líneas 2 y 3 importamos las clases que necesitamos para correr la actividad. En la línea 4 podemos ver que la clase exitiende a Activity . En la línea 7 redefinimos el método onCreate de la clase Activity, el cual es ejecutado al momento de iniciar la aplicación. Note que no es necesario tener un método main; en Android se define una actividad principal que será ejecutada al iniciar la aplicación (más adelante veremos donde se configura esto). En la línea 9 se usa el método setContentView que define cual de las interfaces gráficas creadas en el directorio layout serán usadas. Como parámetro usamos la variable R.layout.main . Esto es algo confuso al principio así que lea atentamente: R, como vimos anteriormente, es una clase generada por Eclipse automáticamente cada vez que creamos nuevos componentes para la aplicación; dentro de ella se crean clases estáticas con variables enteras que representan cada uno de estos componentes (main.xml es entonces una variable entera llamada main, dentro de la clase estática layout , que a su vez se encuentra dentro de la clase R.java). Por ejemplo, para usar la variable hello desde Java, tendríamos que usar una referencia de tipo R.values.hello .
Por último, tenemos el archivo AndroidManifest.xml . Todas las aplicaciones deben tener este archivo y no debe ser renombrado. En él se especifican las opciones generales del programa, como el paquete principal, la actividad que deberá ejecutarse al iniciar la aplicación (y deben incluirse allí TODAS las actividades que se van usar), el icono a usar, los permisos, etc.
? 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6
5. Operaciones avanzadas: acceder al dispositivo por consola y obtener una shell Como sabemos, Android está basado en Linux, y como tal posee una interfaz de linea de comandos que podemos acceder usando las herramientas del sdk. Esto lo podemos hacer
tanto para dispositivos virtuales, como el de este ejemplo, como para dispositivos reales. En este caso lo haremos con el dispositivo virtual que creamos para el ejemplo. Es tan sencillo como ejecutar esto en consola (en Linux):
tools/adb -s emulator5554 shell Lo que hacemos con el comando anterior es indicarle al adb que queremos abrir una shell del dispositivo con serial emulator5554. Para ver los dispositivos conectados actualmente y sus seriales usamos el comando adb devices . Si todo va bien veríamos algo como esto:
funtoo@larry tools % ./adb -s emulator-5554 shell # ls sqlite_stmt_journals cache sdcard etc system sys sbin proc init.rc init.goldfish.rc init default.prop data root dev Desde dicha shell podemos hacer bastantes cosas, pero la más interesante para mi, es poder usar el SQLite3 para acceder a las bases de datos de las aplicaciones que creemos, lo cual nos permite una depuración mucho más rápida. Eso es todo… espero les haya gustado. Cualquier comentario, duda o sugerencia no duden en comentarla.
6. Links interesantes y fuentes de información •
•
Sitio oficial de Android para desarrolladores (esta es prácticamente todo lo que vas a necesitar) xda-developers, comunidad de desarrolladores de Android y Windows Mobile
En este nuevo tutorial de mi autoría les enseñare como diseñar y crear aplicaciones Android, también les enseñare como publicarlas en el market y ganar dinero o hacer aplicaciones gratis. Vamos a seguir estos pasos: 1-Registrarnos en la aplicación que nos permite crear aplicaciones Android. 2-Aprender lo básico sobre la creación de aplicaciones. 3-Aprender a usar el editor de código (código visual). 4-Compilar nuestra aplicación. 5-Editar nuestra aplicación para que sea admitida por el market de Android. 6-Registraros en el market de Android (necesitaremos 25$ para poder registrarnos). 7-Publicar nuestra aplicación.
1) Para nuestro primer paso tendremos que ingresar a: http://appinventor.googlelabs.com/ (Esta web esta en ingles), tendremos que usar nuestra cuenta de Google, nos registramos, aceptamos el contrato (CLUF) y ya nos hace hacer una prueba para ver si tenemos soporte de java en nuestro navegador y en nuestra PC. Una vez terminado este paso veremos una pantalla como esta:
2) Para crear nuestra aplicación de Hola Mundo vamos a hacer clic en el botón “New”, ponemos un nombre a nuestra aplicación, y luego la web nos redirigirá a una pantalla como esta:
Lo que vemos ahora es nuestro editor visual (nuestro IDE, como los de Visual Basic, Visual C, C#, etc.). Hacemos clic en la barra de objetos a nuestra izquierda-> Basic. Y tendremos objetos para poder agregar, agregamos: Button->de nombre btn1->Texto = Hola Mundo (Para cambiar el nombre, lo seleccionamos a la derecha y hacemos clic en el botón Rename, luego para modificar el texto, en la pantalla de propiedades tenemos una que se llama Text, y ponemos Hola Mundo) Ahora vamos a nuestro menú de objetos y a la solapa Other Stuff y agregamos un Notifier y le ponemos de nombre Alert. Nuestra pantalla se vera de esta manera:
3) Ahora para editar el código de nuestros objetos vamos a la derecha arriba dice Open the Blocks Editor, (AVISO: de seguro el navegador les dirá que se quiere abrir un PopUp, deben permitir a la web hacerlo o no podrán editar el código de los objetos). Al hacer clic nos dara un archivo a descargar, ese archivo lo descargamos a nuestra PC y luego lo ejecutamos. (Es un archivo java, de extensión JNLP). Al abrir nuestro archivo veremos una pantalla como esta (Si por alguna razón el Microsoft Security Essential se lo detecta como virus, no hagan caso… es Microsoft el del problema, es un falso, lo que pasa es que hay funciones en JAVA que algunos antivirus lo detectan como virus. De igual manera esta es una aplicación de Google):
Hacemos clic en My Blocks y tendremos los objetos de nuestra aplicación. Hacemos clic en btn1 y agregamos a la pantalla el evento clic ( btn1.click ). Luego hacemos clic en el objeto alert y agregamos alert.ShowAlert, pero lo agregamos adentro del evento clic del botón. Quedaría algo como esto:
Ahora pondremos el texto a mostrar como alerta, para esto hacemos clic en un área en blanco de nuestra pantalla y aparecerá una barra de menú. Hacemos clic en text y luego también en text y en la pantalla nos aparecerá un objeto
nuevo, ese objeto lo ponemos en el encastre del alert. Para editar el texto a mostrar, hacemos clic en text y nos aparece un cuadro para editar el texto y pondremos Nuestra primera apps Android.
Para testear nuestra aplicación tenemos dos opciones, si tenemos un celular con Android lo conectamos (previamente en las opciones: Configuración -> Aplicaciones -> Desarrollo -> Depuración USB) o hacemos clic en New emulador (se abrirá un emulador de Android). Vamos a usar en este caso el emulador. Esperamos a que nuestro emulador termine de cargar y luego hacemos clic en Connect to Device y veremos el nombre de nuestro emulador (o si usamos nuestro celular, veremos el nombre de nuestro celular). Esperamos a que la aplicación se envíe a nuestro emulador (o celular) y una vez que aparece en pantalla podremos usarla.
Cuando la aplicación creada se muestra en pantalla podremos usarla. En nuestro ejemplo solo tenemos un botón, pues entonces haremos clic en el. Y mostrara una alerta diciendo Nuestra primera apps Adnroid.
4) Para compilar nuestra aplicación y poder usarla en nuestro celular o subirla al Market de Android.Tendremos que volver al editor visual de objetos (la web, no la aplicación descargada en el paso 3). Y hacemos clic en el botón a nuestra derecha que dice Package for Phone->Download to this Computer. Esperamos un momento a que Google cree nuestra aplicación y nos dará un archivo a descargar, que será nuestra aplicación. Tendremos un archivo con el nombre que le pusimos a nuestra aplicación .apk (ejemplo HolaMundo.apk) 5) A partir de este punto en adelante solo serán necesarios si queremos subir nuestra aplicación al Market de Android. (Hay que pagar 25$ para poder estar dentro del Market y poder subir aplicaciones). Dependiendo el país en donde nos encontremos será el método de pago, puede ser por transferencia bancaria o por depósito directo en nuestra cuenta de Adsense.
Para editar nuestra aplicación para que sea apta para subirla al Market usaremos el programa AppToMarket, este programa editara nuestra aplicación agregándole el certificado y modificando los xml internos para que el Market nos reconozca nuestra apps. (Descarga: Downloads - apptomarket AppToMarket - Google Project Hosting) Este programa esta creado en JAVA, ejecutaremos el archivo: AppToMarket.jar y veremos algo como esto:
Vamos a la solapa 1, y tendremos que rellenar todos los campos que tenemos en vista. (Ya que esos campos estarán dentro del certificado de nuestra aplicación).
JAMAS PERO JAMAS PIERDAN EL CERTIFICADO QUE SE CREA, YA QUE SI LO PIERDEN NO PODRAN HACER ACTUALIZACIONES DE SUS APLICACIONES, YA QUE LA APLICACIÓN TIENE QUE CONTENER EL MISMO CERITIFICADO EN TODAS SUS VERCIONES. Cuando hayan rellenado todos los campos hacemos clic en Generate. Ahora vamos a la solapa numero 2, le damos al botón Browse y seleccionamos el archivo apk que Google nos creo (HolaMundo.apk), luego le damos al botón Decompile y en Features ponemos que es nuestra 1 versión. Luego clic en one clic Convert. Este botón hace todo lo que necesitamos para subir nuestra aplicación al market. Luego tendremos 2 nuevos archivos conjuntamente con nuestro apk, de nombres: HolaMundo_new.apk y HolaMundo_new_zipAlign.apk . El que usaremos para subirla a nuestro market es: HolaMundo_new_zipAlign.apk . 6) Ahora para subir nuestra aplicación tendremos que registrarnos en el market de Android y pagar los 25$. Vamos a https:/market.android.com/publish/Home y nos registramos. 7) Para subir nuestra aplicación veremos un botón abajo que dice Subir Aplicación. Hacemos clic y tendremos un formulario a rellenar (obligatorios): 1- Un uploader para subir nuestro archivo HolaMundo_new_zipAlign.apk 2- Capturas de pantalla (al menos dos de 320 x 480, 480 x 800, 480 x 854, 1280 x 800 JPG o PNG), estas capturas las hacemos desde nuestro emulador, o si usamos nuestro celular usamos alguna aplicación para este fin. SI O SI tienen que ser de esas medidas. 3- Icono de nuestra aplicación. 4- Idioma, hacemos clic en añadir idioma y ponemos Español y luego eliminamos el Ingles. Y rellenamos el titulo, descripción, texto promocional, tipo de aplicación y categoría. 5- Protección contra copias -> desactivado 6- Clasificación de contenido -> Para todos 7- Precios -> Gratis 8- Información de contacto, alguna url y nuestro email 9- Aceptar el CLUF y que nuestra aplicación esta sujeta a las leyes de EEUU
Con esto ya tenemos nuestra aplicación en el market. Y también es el fin de
nuestro tutorial, en Google podrán encontrar también video tutoriales sobre el AppInventor y mas tutoriales sobre el mismo.
Yo solo soy el punto de partida.