Estoy buscando la posibilidad de recuperar ambos , los nombres de los paquetes y los nombres comunes de las aplicaciones instaladas en un dispositivo Android a través de ADB, o al menos recuperar el nombre común si se conoce el nombre del paquete. Una búsqueda rápida en nuestro sitio trajo dos preguntas relacionadas, pero no resuelven mi problema:
- ¿Cómo obtengo el nombre común de una aplicación que tiene el nombre del paquete (como com.android.blabla)? (línea de comando o aplicación incluida) no funciona a través de ADB (pero usa una aplicación que debe buscar manualmente), que coincide con la solicitud del OP
- ¿Cómo encontrar una aplicación basada en el nombre del paquete? simplemente vuelve a una búsqueda de URL en Google Play , que no siempre encaja (ya que no todas las aplicaciones están disponibles allí).
Estoy buscando una forma de recuperar la información directamente desde el dispositivo, si es posible, no "de ninguna manera" (incluidas las "búsquedas web" o "a través de una aplicación"), ya que esas dos preguntas lo tienen.
Sé que hay varias herramientas disponibles para obtener detalles del paquete:
adb dumpsys package
: Si bien esto enumera todos los paquetes con muchos detalles, no se muestra el "nombre común"adb shell pm list
: solo da los nombres de los paquetesaapt
sería capaz de obtener el nombre común, pero requeriría primero extraer el.apk
archivo del dispositivo, lo que no es realmente conveniente (y obviamente será bastante lento con muchas y / o grandes aplicaciones instaladas)
¿Me he perdido algo? Sé que la información debe estar en el dispositivo (¿de qué otra manera podría mostrar los nombres de las aplicaciones en la GUI? Dudo que Android analice el .apk
archivo cada vez que la GUI necesita el "nombre común"). Entonces, ¿hay alguna manera de obtenerlo, usando ADB directamente?
TL; DR
Antecedentes (si alguien tiene curiosidad): Quiero poder obtener rápidamente una lista de aplicaciones de usuario de cualquiera de mis dispositivos, sin tener que volver a las acrobacias. Una lista de los nombres de sus paquetes que puedo recuperar usando adb shell pm list -3
, pero como esos son solo nombres de paquetes, reconocer las aplicaciones es una conjetura. Entonces, si hubiera algún comando ADB para recuperar el nombre común de un nombre de paquete dado, simplemente podría usar un bucle como for pkg in $(adb shell pm list -3); do echo "- $(adb <whatever_the_command_is> $pkg) ($pkg)"; done
- y obtener una lista de todas las aplicaciones de usuario instaladas en un "formato legible por humanos" junto con sus nombres de paquete.
Casos de uso:
- Vea qué aplicaciones "superflous" están instaladas (que podría eliminar)
- Verificación cruzada de listas de múltiples dispositivos
- Documentación;)
- y probablemente más (pero los 3 anteriores son para lo que lo necesito)