TL;DR:
En el dispositivo, podemos navegar a Ajustes ' Aplicaciones, y para cada aplicación por separado puede llamar a los detalles sobre el almacenamiento utilizado: por la propia aplicación, por sus datos, por su caché. ¿Es posible obtener esos detalles desde la línea de comandos, idealmente a través de ADB - y sin tener acceso a root?
En detalle:
Ya he buscado en la web, pero no he encontrado información al respecto. Ya he intentado recorrer la lista de paquetes ( pm list packages
), obteniendo la ruta del archivo APK ( adb shell pm path $pkgname | awk -F':' '{print $2}'
), y obtener el tamaño del archivo ( adb shell stat $path | grep Size
) - pero eso tiene una serie de desventajas:
- sólo me da el tamaño del APK (para aplicaciones de sistema actualizadas, sólo de la última actualización)
- incluso si se hace con guión, se tarda ~2s por aplicación para obtener incluso eso. Como los dispositivos de hoy en día ya vienen con mucho más de 100 aplicaciones de sistema, tardaría "siglos" incluso si sólo se instalaran unas pocas aplicaciones de usuario (casi 6 minutos en un Wiko Sunny 3 casi virgen en el que acabo de probar eso)
- los detalles sobre los datos y el caché faltan por completo
En el mejor de los casos, Android ya ha recogido esos datos en algún lugar; no se tarda tanto en hacerlo a través de la interfaz gráfica de usuario. Quizá haya alguna base de datos que se pueda consultar sin tener privilegios de Root - o algún XML para analizar, o algún comando del shell que me he perdido?
PS: si sabes de una solución sólo Root, eso sería "mejor que nada". Por favor, indícalo en un comentario entonces para que pueda volver y pedirte que hagas esa respuesta si no hay soluciones no Root.