Este tutorial da por entendido que el lector ya tiene configurado eclipse para poder programar en android.
Aparte de la opción de emular un sistema Android en un dispositivo virtual (ADV) también tenemos la opción de hacerlo directamente mediante nuestro móvil/tablet, los pasos a seguir serán estos:
Tu turno!
En primer lugar y para ir preparando el terreno debemos de indicar al dispositivo que se debe de poner en modo "Depuración USB" cuando este conectado. Dirígete a Ajustes --> Aplicaciones --> Desarrollo --> Y marcas la opciones "Depuración USB" (Como opcional puedes marcar la opción "Pantalla activa" así evitara que entre en modo suspensión en la carga lo que implicara también cuando estés programando)
Modo simple
Turno para el SDK de Android!
Puede ser que en las nuevas versiones del SDK de android o del Kernel de Linux ya traigan el soporte implementado para poder usar la depuración en el dispositivo (no estoy seguro), así que previamente prueba este modo simple antes de pasa al modo avanzado:
Conecta tu dispositivo al ordenador mediante USB.
Desde terminal dirígete donde tengas descomprimido tu SDK a la carpeta platform-tools que se encuentra dentro de ella ( Descargate desde aqui el SDK).
sudo ./adb kill-server
lo volvemos a reconectar con:
sudo ./adb start-server
Comprueba si te ha funcionado:
./adb devices
debería contestar con algo parecido a
List of devices attached
HT15GV806647 device
HT15GV806647 device
Lógicamente a ti te saldrán distintos dispositivos,pero sea como fuere lo a encontrado y esta conectado a el!
En caso de recibir un:
List of devices attached
???????????? no permissions
Procede al modo avanzado de configuración.
Modo avanzado
Vamos ha obtener un poco de información del dispositivo, así que, conecta tu dispositivo al ordenador mediante usb y ejecuta la siguiente orden por terminal:
lsusb
Nos debe de aparecer algo así:
Mostrara información de todos los dispositivos conectados a USB. De entre todo lo que te salga tienes que buscar la linea donde salga algo referente a tu dispositivo (En mi caso aparece como "High Tech Computer Corp." ,siglas de HTC )
Bus 002 Device 011: ID 0bb4:0c86 High Tech Computer Corp.
De esta linea en concreto vamos a extraer dos datos, la ID del vendedor 0bb4 y la ID del producto 0c86 .
Ahora hay que crear unas normas para la próxima vez que se vuelva a conectar, ejecuta la siguiente linea en terminal modificando evidentemente las IDs de vendedor y de producto:
sudo echo SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0c86", SYMLINK+="android_adb", MODE="0666" >> /etc/udev/rules.d/99-android.rules
Con esto le estamos indicando que cree un archivo llamado 99-android.rules
en la ruta /etc/udev/rules.d con el contenido citado.
Sin salir de terminal, le damos permisos al archivo recién creado:
sudo chmod a+r /etc/udev/rules.d/99-android.rules
Ahora debemos de reconectar el dispositivo para que surjan efecto los cambios, ¡ no hace falta que quites y pongas de nuevo el usb ! equivaldrá a lo mismo si ejecutas en terminal un simple:
sudo restart udev
Turno para el SDK de Android!
Desde terminal dirígete donde tengas descomprimido tu SDK a la carpeta platform-tools que se encuentra dentro de ella ( Descargate desde aqui el SDK).
sudo ./adb kill-server
lo volvemos a reconectar con:
sudo ./adb start-server
Nota: Creo que es muy importante iniciar el servicio de adb con sudo ya que luego puedes tener problemas de permisos al intentar localizar el dispositivo ,etc.
Comprueba si te ha funcionado:
./adb devices
deberia contestar con algo parecido a
List of devices attached
HT15GV806647 device
HT15GV806647 device
Lógicamente a ti te saldrán distintos dispositivos,pero sea como fuere lo a encontrado y esta conectado a el!
En caso de recibir un:
List of devices attached
???????????? no permissions
Mata el servicio adb y vuelve arrancarlo pero usando sudo como cite antes.
Turno para Eclipse!
Después de tanto rollo, vamos a ver si esto esta funcionando...
Abre tu Eclipse en el proyecto Android en el que estas trabajando y colocate en el archivo AndroidManifest.xml y declara tu aplicación como "Debugeable" ,esto es, añade la opción android:debuggable="true"
en el elemento <application> ,después,
cambia la perspectiva a "DDMS" y fíjate si en la ficha "Devices" aparece tu dispositivo como se muestra en la imagen: Todo perfecto pues! Dale a "Run" en Eclipse para comprobar que te lo ejecuta en tu dispositivo.
Un ejemplo con mi móvil de como fue la operación (Salieron unas marcas de dedos bien jode-fotos)
Para cualquier duda/consejo/critica podéis postear algún comentario.
Saludos!
Nota: Encontré este script googleando que te descarga e instala el SDK de android,NDK,Eclipse y te prepara la conexión para que puedas depurar por móvil,tiene muy buena pinta pero no lo he probado (Mire un poco el código y parece estar correcto)
Nota2: Una lista de identificadores de vendedores
Compañia | ID de USB |
---|---|
Acer | 0502 |
Dell | 413c |
Foxconn | 0489 |
Garmin-Asus | 091E |
18d1 | |
HTC | 0bb4 |
Huawei | 12d1 |
Kyocera | 0482 |
LG | 1004 |
Motorola | 22b8 |
Nvidia | 0955 |
Pantech | 10A9 |
Samsung | 04e8 |
Sharp | 04dd |
Sony Ericsson | 0fce |
ZTE | 19D2 |
Me funcionó a la primera, en windows sería más o menos la misma forma,no?
ResponderEliminarOh dios, por fin conseguí que me funcionase, actualicé mi móvil a gingerbread, con froyo podía depurar pero con gingerbread no, mil gracias por tu aporte, con el simple me bastó.
ResponderEliminarBuenas de nuevo, me he servido de mi experiencia con tu post para publicar otro post en mi blog de gatsu-anotaciones. Por supuesto menciono y recomiendo tu blog. La entrada es http://gatsu-anotaciones.blogspot.com/2012/01/depura-tus-aplicaciones-caseras-android.html
ResponderEliminarMe alegro que te haya servido y agradezco de veras tu detalle de citarme en tu blog :D
EliminarOtro que se suma a las gracias.
ResponderEliminarPor algún motivo utilizando el Windows-Eclipse del portatil todo funcionaba bien, pero al pasar al ubuntu-eclipse del fino no reconocía el dispositivo.
Este post (junto con otros que también había encontrado por google) me ha ayudado mucho a continuar con la depuración en el dispositivo.
Gracias ;)
Por un error de teclado, antes he escrito "fino" y debería de haber puesto "fijo". Me refería al intentar depurar con el ordenador fijo. Lo siento :s
ResponderEliminarGracias... fantasticamente explicado.
ResponderEliminarHola,
ResponderEliminarTodo ha funcionado correctamente a la primera :-) Excelente explicación.
Ahora tengo un pequeño problema, no consigo que me recupere los mensajes de log que envío desde el programa para depurar procesos, al iniciar el logCat me da el siguiente mensaje:
Unable to open log decive 'dev/log/main': No such file or directory.
No se si tengo que crear el directorio a mano o lo hace directamente Eclipse.
Gracias.
Hola,
ResponderEliminarTrabajo sobre Windows, y en el DDMS me aparece el móvil conectado, pero a la hora de ejecutar la aplicación me abre el dispositivo virtual que tengo configurado en vez de el móvil.
Alguna pista de porq ocurre esto???
Gracias
Si, simplemente modifica la configuración del dispositivo a usar por defecto cuando vayas a depurar.
EliminarLo modificas de maquina virtual a dispositivo.
hola necesito esta misma explicacion para window que no puedo usar estos comandos
ResponderEliminarMe apareció acceso denegado cuando ocupe la ruta /etc/udev/rules.d/99-android.rules lo que hice fue ocupar el comando cd /etc/udev/rules.d/ y luego sudo gedit 99-android.rules escribí la configuración SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0c86", SYMLINK+="android_adb", MODE="0666" claro con mis valores y ya funciono, Gracias. Estoy desarrollando en Android Studio que por cierto tiene un mayor rendimiento en UBUNTU que en W8.1 además que en W8.1 se muere de vez en vez.
ResponderEliminarEste comentario ha sido eliminado por el autor.
Eliminar