Rad Studio XE5: Tip de ayuda al inicio

Hoy quería compartir con vosotros un breve pero creo que útil tip, o consejo.

Cuando todo marcha bien…

Lo habitual, lo normal, sería que tras la instalación de RAD Studio XE5, estuvieseis en condiciones de tener esa primera experiencia con Android y en un porcentaje alto de los casos va a ser así.

🙂

Y además, con un alto porcentaje también, valga la redundancia, de que esta primera experiencia sea satisfactoria. Son muchos los compañeros del foro que han referido como algo positivo y no han narrado, o compartido con el resto de compañeros, problemas en lo que atañe a la configuración de los dispositivos. Mas al contrario, una buena parte de los comentarios leídos inducir a pensar que es así.

De hecho, la instalación del entorno de desarrollo se ocupará de los detalles de instalación y configuración de las herramientas de desarrollo de Android, que incluyen el sdk (software development kit) y el ndk (native development kit), al menos si dejamos marcados los checks de selección durante el proceso de instalación, ahorrándonos todo ese trabajo. Eso es algo que hemos comentado ya en entradas anteriores y existe buena documentación sobre estos puntos para enfrentarnos al momento de esa primera aplicación para Android. Existe además un vídeo de Danysoft que recomendábamos en la entrada anterior y que narraba los pasos a seguir.

De lo leído en la docwiki me quedaría con algunos enlaces que son necesarios en esa primera toma de contacto. Básicamente entiendo que son tres:

Todo ello en la docwiki de Embarcadero. Si la versión de Android de vuestro dispositivo pertenece a la relación de versiones soportadas, que podéis consultar en el ultimo  enlace, y se ha configurado el adecuado driver usb, que va a permitir que exista comunicación con él, no debería existir mayor problema para que podáis reconocerlo en el explorador del proyecto dentro del nodo destino. Basta habilitar en el dispositivo, habitualmente en la zona de ajustes, el área de desarrollador, marcando como la depuración usb, para que se habilite el canal de comunicación. Depende ya de cada dispositivo la ubicación de este permiso.

Eso sería lo habitual o lo normal, como queráis.

Cuando las cosas no marchan bien…

Es inevitable…

🙂

Siempre hay alguna circunstancia especial, que rompe con esa buena marcha y yo quería compartir con vosotros una en concreto que me afectó en los primeros días como betatester de XE5, por si fuera el caso que os pueda ayudar en otro momento posterior.

En mi caso, de cara a mi participación en la beta, disponía dos dispositivos Android, de forma que iba a probar las aplicaciones con dos tamaños distintos de pantalla y con diferencias en cuanto a sus especificaciones. El primero se correspondía con un móvil S3 Galaxy Mini, con un tamaño de pantalla de 4″. En cuanto al segundo dispositivo era un tablet de Airis, Onepad 1100×2 de 10″. Además ambos eran compatibles con las versiones de Android (el primero se correspondía con la 4.1.2 y el segundo con la 4.1.1, ambas JellyBean, y dentro de la lista de posibles destinos). Es decir que en ese sentido, ambos dispositivos cumplían con parte de las condiciones, de forma que podría prescindir del emulador que como sabéis es extremadamente lento.

Una vez, había instalado el entorno de desarrollo, la instalación del driver usb en el caso del móvil de Samsung se podía hacer simplemente a través del programa Kies facilitado por la misma empresa -Samsung-, que permite la sincronización de archivos entre el pc y nuestro dispositivo. Así que era una tarea trivial ya que una vez hecho este paso, la misma instalación del software configura la versión del driver usb, y una vez añadido en el área de configuración de Delphi el sdk de trabajo, el entorno quedaba capacitado para detectar el nuevo dispositivo, simplemente refrescando el nodo que trae por defecto los dos emuladores de Android que fueron añadidos con la instalación.

En ese sentido, los primeros pasos con Android fueron muy satisfactorios en el S3 ya que pude ejecutar y depurar pequeños ejemplos sin mayores problemas.

Con el tablet fue otra historia porque para empezar no era detectado correctamente en el proceso de instalación del dispositivo y mostraba una advertencia en el administrador de dispositivos de windows. De hecho, esto me obligó a buscar en los foros de Airis y a perder bastante tiempo y existían numerosas peticiones o preguntas sobre este tema y en muchos casos se remitían finalmente al uso del driver genérico de Google, aunque existían unos drivers del fabricante que funcionaban en unos modelos pero en otros no. En mi modelo de tablet,  al menos en ese momento, no existían drivers adecuados. Así que tuve que buscar información, principalmente en google y me pareció bastante imprescindibles dos enlaces:

Google USB Driver y OEM USB Drivers.

El primero era interesante porque indicaba como descargar e instalar el driver usb de Google, además de indicar detalles de los modelos que incluye, básicamente los relacionados con la empresa. Y el segundo refiere la instalación en el dispositivo, localización de la carpeta en nuestro sistema tras la descarga.

Para que el sistema instale y reconozca el driver de Google para ese dispositivo, es necesario que modifiquemos el fichero android_winusb.inf, ubicado en la carpeta donde se encuentra el sdk de Android, dentro del directorio “extras”:  <sdk>extrasgoogleusb_driver. Necesitamos añadir un par de lineas conteniendo el VendorID y el ProductID del dispositivo.

Para ello, podemos buscar ambos datos en la pestaña de detalles de las propiedades del dispositivo. En este caso, como veis por la imagen, ya tenía localizados a través del ID. de Hardware los valores VID 2207 y PID 0010.

info

 

Seguimos…

Lo siguiente fue añadir las dos lineas inferiores, con la estructura adecuada usando dichos valores, siguiendo el mismo patrón que descubre el resto de lineas leídas en el fichero para otros dispositivos:

 %SingleAdbInterface% = USB_Install, USBVID_2207&PID_0010
 %CompositeAdbInterface% = USB_Install, USBVID_2207&PID_0010&MI_01

Por lo tanto, teniendo en cuenta que hay una sección en el fichero para 32 bits y otra para 64 bits, os muestran a continuación como quedó parte de ese fichero (las he remarcado en color en cada sección):

[Google.NTx86]
;Google Nexus One
 %SingleAdbInterface% = USB_Install, USBVID_18D1&PID_0D02
 %CompositeAdbInterface% = USB_Install, USBVID_18D1&PID_0D02&MI_01
 %SingleAdbInterface% = USB_Install, USBVID_18D1&PID_4E11
 %CompositeAdbInterface% = USB_Install, USBVID_18D1&PID_4E12&MI_01
;Google Nexus S
 %SingleAdbInterface% = USB_Install, USBVID_18D1&PID_4E21
 %CompositeAdbInterface% = USB_Install, USBVID_18D1&PID_4E22&MI_01
 %SingleAdbInterface% = USB_Install, USBVID_18D1&PID_4E23
 %CompositeAdbInterface% = USB_Install, USBVID_18D1&PID_4E24&MI_01
;Google Nexus 7
 %SingleBootLoaderInterface% = USB_Install, USBVID_18D1&PID_4E40
 %CompositeAdbInterface% = USB_Install, USBVID_18D1&PID_4E42&MI_01
 %CompositeAdbInterface% = USB_Install, USBVID_18D1&PID_4E44&MI_01
;Google Nexus Q
 %SingleBootLoaderInterface% = USB_Install, USBVID_18D1&PID_2C10
 %SingleAdbInterface% = USB_Install, USBVID_18D1&PID_2C11
;Google Nexus (generic)
 %SingleBootLoaderInterface% = USB_Install, USBVID_18D1&PID_4EE0
 %CompositeAdbInterface% = USB_Install, USBVID_18D1&PID_4EE2&MI_01
 %CompositeAdbInterface% = USB_Install, USBVID_18D1&PID_4EE4&MI_02
 %CompositeAdbInterface% = USB_Install, USBVID_18D1&PID_4EE6&MI_01
;OnePad 1100x2
 %SingleAdbInterface% = USB_Install, USBVID_2207&PID_0010
 %CompositeAdbInterface% = USB_Install, USBVID_2207&PID_0010&MI_01
[Google.NTamd64]
;Google Nexus One
 %SingleAdbInterface% = USB_Install, USBVID_18D1&PID_0D02
 %CompositeAdbInterface% = USB_Install, USBVID_18D1&PID_0D02&MI_01
 %SingleAdbInterface% = USB_Install, USBVID_18D1&PID_4E11
 %CompositeAdbInterface% = USB_Install, USBVID_18D1&PID_4E12&MI_01
;Google Nexus S
 %SingleAdbInterface% = USB_Install, USBVID_18D1&PID_4E21
 %CompositeAdbInterface% = USB_Install, USBVID_18D1&PID_4E22&MI_01
 %SingleAdbInterface% = USB_Install, USBVID_18D1&PID_4E23
 %CompositeAdbInterface% = USB_Install, USBVID_18D1&PID_4E24&MI_01
;Google Nexus 7
 %SingleBootLoaderInterface% = USB_Install, USBVID_18D1&PID_4E40
 %CompositeAdbInterface% = USB_Install, USBVID_18D1&PID_4E42&MI_01
 %CompositeAdbInterface% = USB_Install, USBVID_18D1&PID_4E44&MI_01
;Google Nexus Q
 %SingleBootLoaderInterface% = USB_Install, USBVID_18D1&PID_2C10
 %SingleAdbInterface% = USB_Install, USBVID_18D1&PID_2C11
;Google Nexus (generic)
 %SingleBootLoaderInterface% = USB_Install, USBVID_18D1&PID_4EE0
 %CompositeAdbInterface% = USB_Install, USBVID_18D1&PID_4EE2&MI_01
 %CompositeAdbInterface% = USB_Install, USBVID_18D1&PID_4EE4&MI_02
 %CompositeAdbInterface% = USB_Install, USBVID_18D1&PID_4EE6&MI_01
;OnePad 1100x2
 %SingleAdbInterface% = USB_Install, USBVID_2207&PID_0010
 %CompositeAdbInterface% = USB_Install, USBVID_2207&PID_0010&MI_01

Y casi fin de la historia…

🙂

La instalación ya mostraba correctamente los dos dispositivos en el administrador del sistema. Os incluyo esa imagen:

administrador_dispositivos

Pero falta un punto.

Nos queda modificar el fichero adb_usb.ini,  en donde vamos a añadir el VID, para lo cual podemos usar la consola (previamente ya hemos conectado mediante cable usb) :

  1. adb kill-server
  2. echo 0x2207 >> "%USERPROFILE%.androidadb_usb.ini"
  3. adb start-server
  4. adb devices

Tras esto, se debería solventar el problema. El ultimo comando debería retornar una lista de todos identificadores que representan los dispositivos conectados, tanto fisicos como emuladores, y a partir de este momento, podríamos identificar los dispositivos en el nodo adecuado de Delphi, como se puede ver en la imagen inferior.

Tenéis amplia información de los distintos comando que podéis utilizar con el adb de Google. La podéis encontrar en:

http://developer.android.com/intl/es/tools/help/adb.html

explorador

Espero que pueda ser de ayuda a los compañeros de la comunidad en algún momento.

Saludos y buen camino.

 

 

2 comentarios sobre “Rad Studio XE5: Tip de ayuda al inicio

Agrega el tuyo

  1. Saludos Salvador,

    Voy a comenzar a desarrollar una aplicación para android próximamente y estoy pensado en hacerla en embarcadero XE5.

    Tu experiencia en el desarrollo de la aplicación(sin contar con los problemas de controladores antes mencionados) fue satisfactorio? Te sentiste cómodo en y simple en el desarrollo de las diferentes partes de tu aplicación?

    Te hago estas preguntas porque esta sera mi primera ves desarrollando para android, pero no quiero demorarme aprendiendo JAVA si ya se Delphi.

    Saludos,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Blog de WordPress.com.

Subir ↑

Recetas y consejos nutricionales

Indicadas para personas con diabetes, recomendadas para todos.

¡Buen camino!

ANÉCDOTAS Y REFLEXIONES SOBRE UN VIAJE A SANTIAGO…

http://lfgonzalez.visiblogs.com/

Algunas reflexiones y comentarios sobre Delphi

It's All About Code!

A blog about Delphi and related technologies

The Podcast at Delphi.org

The Podcast about the Delphi programming language, tools, news and community.

Blog de Carlos G

Algunas reflexiones y comentarios sobre Delphi

The Road to Delphi

Delphi - Free Pascal - Oxygene

La web de Seoane

Algunas reflexiones y comentarios sobre Delphi

El blog de cadetill

Cosas de programación....... y de la vida

Delphi-losophy

A Lover of Delphi Wisdom

Delphi en Movimiento

Algunas reflexiones y comentarios sobre Delphi

marcocantu.blog

Algunas reflexiones y comentarios sobre Delphi

/*Prog*/ Delphi-Neftalí /*finProg*/

Blog sobre programación de Neftalí -Germán Estévez-

Press F9

Algunas reflexiones y comentarios sobre Delphi

El blog de jachguate

Un blog sobre tecnología y la vida en general

A %d blogueros les gusta esto: