Posted tagged ‘adb’

Android Debug Bridge

16 mayo, 2019

Hola a todos,

continuando con el curso de Android, en esta ocasión les comparto unas notas sobre el ADB. Vamos a conocer esta herramienta y algunas de las instrucciones comunes que nos permiten interactuar con los dispositivos en los que probamos nuestras aplicaciones.

Sin más, aquí las notas: http://www.nachintoch.mx/teaching/mobile_dev/adb.pdf

Android Studio: Error “Unable to detect adb version…” al actualizar platform-tools o el IDE

6 junio, 2017

Hola a todos!

Ya hemos resuelto algunos de los errores comunes que ocurren al usar Andorid Studio y el Android SDK en sus versiones más recientes en sistemas de 32 bits: es posible hacerlo sin tener que apuntar completamente a versiones previas, como hemos visto hasta ahora.

Esta semana vamos a resolver el problema de no ver nuestros dispositivos o emuladores para ejecutar una aplicación en desarrollo, o que el sistema no reconozca el ADB como un programa válido

unable-detect-adb


Esto se debe a que las nuevas versiones del ADB son programas de 64 bits y como ya he comentado en post anteriores, no es posible ejecutar estos programas en sistemas de 32 bits; por limitaciones físicas de los equipos…. Y no; instalar 2 veces el sistema operativo, no lo hace de 64 bits.

Puesto que no podemos ejecutar un programa de 64 bits por esta limitaciones, la solución es reemplazar el binario del ADB por uno de 32 bits. Podemos usar el que viene incluido con platform-tools v23.0.1, que podemos descargar a continuación:

https://dl-ssl.google.com/android/repository/platform-tools_r23.0.1-linux.zip

Descomprimimos el archivo y en el primer nivel jerárquico de directorios que contiene el ZIP, debe aparecer un archivo llamado “adb”

platform-tools

Copiamos el archivo “adb” y lo pegamos en

<android_sdk_home>/platform-tools

En este directorio ya exista un archivo llamado “adb”; debemos sobreescribirlo, pues al actualizar Android Studio o platform-tools se inserta la nueva versión de ADB; esa de 64 bits que nos da problemas, y debemos reemplazarla por esta versión de 32 bits para poderlo ejecutar.


Una vez que hayamos sobreescrito el archivo adb, Android Studio y el sistema deberían reconocer y ejecutar correctamente el ADB y deberíamos poder contactar nuestros dispositivos y emuladores Android.

correct-adb


-El límite es la imaginación-

Android: liberar memoria moviendo aplicaciones como Google Drive y WhatsApp al almacenamiento externo (¡Root no necesario!)

18 octubre, 2014

Saludos!

Les traigo un nuevo post para liberar memoria de un dispositivo Android; esta vez, moviendo apps al medio de almacenamiento externo.

Esto es muy fácil y se puede hacer por dos medios:

1 – Si tienes las herramientas de desarrollo de Google para Android instaladas en una computadora, ejecuta adb en una consola con el siguiene comando (si no las tienes o prefieres seguir pasos que no requieran del uso de una computadora ve al segundo método más abajo):

* Primero vamos a comprobar que tu dispositivo es visible. Para esto, ejecuta

adb devices

Si tu dispositivo aparece en la lista, ahora vamos a entrar a la consola del dispositivo, ejecuta

adb shell

Captura de pantalla de 2014-10-17 19:43:17

 

2 – Los siguientes pasos, son independientes de la opción que elijas. Esta otra, no requiere de las herramientas de desarrollo de Google, si no solamente que tengas instalado un emulador de terminal. Yo prefiero Terminal Emulator que pueden descargar desde Google Play en el siguiente enalce: https://play.google.com/store/apps/details?id=jackpal.androidterm Esta opción nos va a permitir mover aplicaciones usando únicamente el mismo dispositivo sin necesidad de utilizar una computadora.

Ya sea que hayamos entrado a la consola del sistema operativo (Android) por medio de “adb shell” o abriendo una aplicación como Terminal Emulator, ahora ejecuta en la terminal

pm set-install-location 2

Nota, en este caso; podrías obtener un error. Si eso pasa, sustituye “set-intall-location” por “setInstallLocation”.

Captura de pantalla de 2014-10-18 01:35:06

SC20141018-013613

Hecho esto, salimos del shell usado

exit

Ahora, vamos al gestor de aplicaciones nativo del sistema operativo. Seleccionamos la aplicación “no movible” que queremos pasar al almacenamiento externo. La opción para mover la aplicación al almacenamiento externo debería ahora estar habilitada. Damos un toque sobre él y Android moverá la aplicación al medio de almacenamiento externo. Así habremos liberado más memoria interna del dispositivo ¡Yey!

SC20141018-013332

Estos procedimientos son muy útiles; y más considerando que no se requiere root para efectuarlos, por lo que cualquier usuario puede repetirlos sin problema (en teoría).

Cuando hayamos terminado, es muy recomendable volver a entrar al shell de Android (por el método que prefieras) y volver a usar set-install-location, pero esta vez con el parámetro 0 en lugar de 2. Así, las aplicaciones serán instaladas en la memoria adecuada y podrá evitarnos comportamientos extraños que pueden afectar nuestra experiencia de usuario.

He realizado satisfactoriamente estos procedimientos, utilizando mi Samsung Galaxy Ace (GT-S5830M) con ambos métodos y moviendo WhatsApp a la memoria microSD; pero son bastante generales y deberían funcionar de igual manera con cualquier dispositivo Android: sea tablet, smatphone, etc… Sin embargo, no conozco las consecuencias que puede traer el mover ciertas aplicaciones a la memoria, y todo efecto será tu responsabilidad.

Dejemos fluir nuestra imaginación para hacer máximo provecho de los nuevos espacios en memoria que tendremos disponibles 😀

Cómo resolver el problema de acceso para depurar Android apps en un dispositivo real; usando Debian 6 (GNU/Linux)

10 diciembre, 2012

Saludos a todos!

He comenzado a desenvolverme como desarrollador de software en plataforma Android y me encontré con un problema peculiar. Cuando quería acceso a mi teléfono para depurar mis programas; ya fuera en Eclipse o en consola, se me reportaba el número de serie de mi móvil como “????????????” y aparecía la frase “no permissions”.

Salida:

List of devices attached
???????????? no permissions

Buscando en la red, encontré la siguiente solución (todo lo realicé como super usuario y con el cable USB de mi teléfono desconectado hasta que indique lo contrario):

  • Crear un archivo “99-android.rules” en el directorio /etc/udev/rules.d/ con el siguiente contenido:
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0e79", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0502", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="413c", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0489", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="091e", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="24e3", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2116", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0482", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="17ef", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1004", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0409", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2080", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2257", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="10a9", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1d4d", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0471", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04da", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1f53", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04dd", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fce", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0930", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", MODE="0666"
    • sudo gedit /etc/udev/rules.d/99-android.rules
  • Reiniciar los servicios udev
    • sudo /etc/init.d/udev restart
  • Reiniciar los servicios adb
    • cd {directorio donde se aloja
el fichero del Android SDK}
/android-sdk-linux/platform-tools
    • sudo ./adb kill-server
    • sudo ./adb start-server

Y listo! Ahora puedes reconectar el dispositivo por el puerto USB y para comprobar que está disponible para las operaciones de depuración en el mismo directorio “platform-tools” ingresa

./adb devices

La salida debe mostrar el número de serie de tu dispositivo y la palabra “device” a continuación.

Fue una lastima que después de haberme peleado con el servidor adb, al correr el programa en mi celular; éste no funcionara X¬D  pero en fin; para eso sirve la depuración no? para hacerlo funcionar a toda costa!!

Una notota: antes de lo anterior, probé inicialmente con la configuración disponible en el portal de desarrolladores de Android oficial de Google (http://developer.android.com/tools/device.html) y escribiendo en el archivo “51-android.rule” una única línea con el id del fabricante de mi celular. No funciono, luego probé con la siguiente: http://stackoverflow.com/questions/9210152/set-up-device-for-development-no-permissions … sin éxtio. Fue hasta que lo hice como arriba para que funcionara, no borré los archivos creados, ahora son basura en mi HDD 8¬P

Les dejo la nota por si les funcionan esas configuraciones, puede que quizá mi solución no funcione si no las aplican también.


A %d blogueros les gusta esto: