ago 262013
 

Buenas,

Adelantándonos al lanzamiento del nuevo RadStudio XE5, y gracias a que como MVP nos han ofrecido la posibilidad de hablar de él antes de que vea la luz, hoy quisiera mostrar cómo hacer el primer “Hello Wordl!!” en la nueva plataforma soportada (y tan deseada por muchos), Android.

Lo primero que haremos es configurar el entorno de trabajo. Para ello necesitamos dos cosas, nuestro RadStudio XE5 y el SDK (Software Development Kit) y NDK (Native Development Kit) de Android. Si bien la propia instalación de RadStudio XE5 ya nos ofrece la posibilidad de instalar tanto el SDK como el NDK, es posible instalarlo por separado sin ningún tipo de problemas. Para ello sólo tenemos que acceder a sendas webs, descargarlo y descomprimirlo. No obstante, si hacemos ésto, tenemos que tener presente que el SDK incluye Eclipse por lo que, si no lo queremos, podremos borrar su directorio ahorrando así unos cuantos megas.

Dado que en el IDE podremos escoger como dispositivo destino tanto el emulador que trae el SDK como un dispositivo Android conectado al PC por USB, vamos a ver cómo configurar ambos para así poder escoger uno u otro según necesidades.

Mediante un dispositivo Android

Una de las cosas más importantes es saber si nuestro dispositivo Android es compatible con el entorno de desarrollo. Básicamente, si tienes un Android 2.3 o superior y corre en un procesador ARMv7, lo será. Hay varias aplicaciones en el Google Play que pueden darte esta información si la desconoces, como ahora CPU-Z o Android System Info.

Una vez visto que nuestro dispositivo Android es compatible, tenemos que descargarnos e instalar el driver USB apropiado para nuestro dispositivo si Windows no lo reconoce de forma automática. Si es uno Nexus de Google, podemos hacerlo mediante el Android SDK Manager (Manager.exe) que encontraremos en la raíz de la carpeta de la instalación del SDK. ¡Es importante arrancarlo con permisos administrativos!

google_drivers-png

En caso contrario, tendríamos que ir a la página del fabricante de nuestro dispositivo y descargarlo desde ahí; podéis ver la página de OEM USB Drivers.

Otra cosa que tendremos que hacer es habilitar la depuración por USB en nuestro dispositivo. Esto dependerá de cada versión de Android. Por ejemplo, en un 4.0 Ice Cream Sandwich procederíamos así:

  • Ir a Ajustes
  • Ir a Opciones de Desarrollado
  • Habilitar Depuración de USB

o bien, si tenéis un 2.3 Ginger bread haremos esto:

  • Ir a Ajustes
  • Ir a Aplicaciones
  • Ir a Desarrollo
  • Habilitar Depuración de USB

Haciendo estos pasos, nuestro dispositivo Android tendría que aparecer en el Explorador de Windows como una unidad más de disco y lista para que RadStudio despliegue nuestras aplicaciones en él.

Mediante un emulador en nuestro propio ordenador

Si no disponemos de un dispositivo Android compatible o bien queremos usar un tamaño de pantalla distinto, tenemos la opción del emulador de Android, también llamado Android Virtual Device (AVD).

Para poder ejecutar el emulador tenemos que instalar, si no lo está, un Android system image que pueda usar el emulador. Para ello arrancaremos el Manager.exe con derechos administrativos y su el árbol buscaremos el nodo ARM EABI v7a System Image.

arm_eabi-png

También (y de forma opcional) podemos instalar un acelerador del emulador si nuestro ordenador lo soporta. Para ello buscaremos en el árbol de nodos la entrada que diga Intel x86 Emulator Accelerator (HAXM) y la instalaremos. Esto realmente descarga el instalador, así que tendremos que ir a su carpeta (<SDK>\extras\intel folder) he instalarlo ejecutando el archivo IntelHaxm.exe.

avd_manager-pngUna vez hechos estos pasos, ya sólo queda crear el emulador. Para ello, desde el mismo Android SDK Manager iremos al menú Tools – Manage AVDs….

En la pantalla que aparecerá veremos los emuladores que hayamos creado. Es aconsejable crear un emulador para cada uno de los dispositivos Android para el que queramos hacer pruebas. Para crear uno nuevo simplemente le datemos al botón de New.

En la pantalla que nos aparecerá tendremos que escoger un nombre para el emulador, el tipo de dispositivo y el API a usar. También hay que seleccionar el check de Use host GPU. Aceptando la pantalla crearemos el emulador y volveremos al administrador de AVDs.

Ahora que tenemos creado nuestro emulador, sólo tendremos que seleccionarlo y pulsar el botón de Start… para que nuestro Delphi lo reconozca y lo podamos usar.

Si al lanzar el emulador obtenemos el error “PANIC: Could not open“, lo que necesitamos hacer es crear una variable de entorno llamada ANDROID_SDK_HOME que apunte a la carpeta que contiene la carpeta \.android. En mi caso se encuentra en d:\.android, por lo que la variable me tiene que apuntar a d:\. Una vez añadida la variable de entorno, reiniciamos el ordenador y ya debería arrancar el emulador.

En el IDE de Delphi

add_sdkDentro del IDE de RadStudio tendremos que configurar el SDK para Android. Para ello iremos a Tools – Options – SDK Manager, pulsaremos Add y, en el cuadro de diálogo que aparece, escogeremos la plataforma Android y en la versión SDK, si no sale la nuestra en el desplegable, le daremos a Add New. Seguiremos el asistente, poniendo la ruta a las carpetas del SDK y NDK. Al establecer estas rutas, en la siguiente pantalla no tendremos que especificar nada ya que lo cogerá todo por defecto.

Ahora que ya tenemos configurado el SDK y NDK de Android en el IDE, sólo necesitamos crear una nueva aplicación de tipo “FireMonkey Mobile Application”, seleccionar nuestro dispositivo en Project Manager – Target Platforms – Android – Target, compilar, ejecutar y esperar a que aparezca nuestra aplicación en nuestro dispositivo.

Con estos sencillos pasos ya estamos en disposición de hacer nuestro primer “Hello world!” en nuestro dispositivo Android.

Hasta la próxima entrada.

Saludos.

 

  19 Responses to “Delphi y Android, cofigurando el entorno de desarrollo”

  1. HAXM only accelerates images emulating the Intel CPU, not the ARM one. And XE5, as far as I can tell, doesn’t support Intel-based devices. So, sadly (as the emulator is terribly slow without it), HAXM doesn’t help the XE5.

  2. Hola, me parece bien tu tema, y en lo personal ya tengo funcionando el delphi y he desarrollado unas aplicaciones, pero al empaquetarlas y copiarlas en un cell no me funcionan cunado tengo una version de Android 2.3 (Gingerbread) pero si en la 4.3, lo he probado con diferentes celulares y me pasa lo mismo, como puedo hacer mis app’s compatibles?

  3. Hola! 🙂
    una pregunta por favor: yo conecte una tablet por cable usb y ejecuta el programa que compilo en delphi, y todo bien. pero como le hago para copiar esa aplicación en otra tablet? algo asi como hacer mi instalador de esa aplicacion, bueno por lo menos copiarla y que funcione…

    saludos!

  4. Hola Cadetill, te felicito por tu trabajo con gmlib y por mantener esta página para los hispano hablantes que tenemos que hacer de tripas corazón y bregar con ese inglés constantemente …

    Una pregunta, ya esto es con XE6, pero no logro que Delphi XE6 me reconozca un Samsung SII GT-I9100P con el Android 4.0.3. Me sale en el explorador y puedo copiar hacia y desde el todo lo que me plazca pero nada de que me salga en los Targets del Delphi.

    Gracias, por anticipado

    Lenny

  5. Aquí dice haber compatibilidad, sino, no es eficiente hacer aplicaciones sencillas para androides que no cumplan con ARM6, ni un HOLA MUNDO?

    http://docwiki.embarcadero.com/RADStudio/XE7/en/Android_Devices_Supported_for_Application_Development

    Saludos

  6. Hola que tal.

    muchas gracias por el aporte.
    solo una pregunta, estos procedimientos son los mismos para el XE7?

  7. Ok gracias.
    lo voy a intentar, conoces alguna pagina o sitio donde existan tutoriales de desarrollo de aplicaciones de android y Delphi.
    no se nada de android y necesito algo desde -1 jeje
    saludos.

  8. Buenas noches,
    Muy interesante tu blog, me ha servido de mucho..

    Gracias por tus aportes, intentare para ver como me va..

    éxitos.!!

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)