Encuentra cuánto tráfico de red generan otras aplicaciones de Android
ntento crear un servicio en segundo plano que mida el uso del tráfico de varias aplicaciones para poder mostrarle al usuario qué aplicaciones consumen la mayor parte del tráfico de datos.
Encontré que la aplicación Spare Parts hace exactamente eso, pero después de instalarla en un dispositivo Dell Streak 1.6 siempre obtengo "No hay datos de uso de batería disponibles" para "Uso de red". ¿Funciona esto en absoluto en piezas de repuesto? Además, no pude encontrar un código fuente que funcione para Spare Parts.
https: //android.googlesource.com/platform/development/+/froyo-release/apps/SparePart
parece estar desactualizado o incompleto. (?)
Pero las piezas de repuesto parecen medir, p. Uso de CPU por aplicación. ¿Cómo hace eso en un teléfono no rooteado?
Mi idea general de cómo se puede medir el tráfico por aplicación es verificar regularmente el
"sys/class/net/" + sWiFiInterface + "/statistics/rx_bytes"
"sys/class/net/" + sWiFiInterface + "/statistics/tx_bytes"
"sys/class/net/" + sMobileInterface + "/statistics/rx_bytes"
"sys/class/net/" + sMobileInterface + "/statistics/tx_bytes"
files y para ver qué aplicación tiene el foco actualmente y, por lo tanto, es más probable que cause el tráfico de red generado.
amentablemente, no puedo encontrar cómo hacer que la aplicación se centre actualmente.
Encontré esto
Android, ¿cómo obtener información sobre qué actividad se muestra actualmente (en primer plano)?
pero parece que se trata de probar, no solo un servicio de fiesta en 3D que se ejecuta en un dispositivo Android no rooteado.
Podemos obtener qué actividades se están ejecutando conActivityManager.getCurrentTasks()
, pero cualquiera de ellos puede ser el que está enfocado. Parece que los arquitectos de Android explícitamente no quieren que las aplicaciones de fiestas en 3D sepan qué aplicación se centra, debido a problemas de seguridad
(verhttp: //android.bigresource.com/Track/android-zb2mhvZX4).
¿Hay alguna forma de evitar esto
Además, si quiero detectar no solo qué actividades consumen tráfico sino también qué servicios, puedo obtener todos los servicios que se ejecutan actualmente conActivityManager.getCurrentSerives()
e incluso ver para cada uno si está en modo de primer plano (a diferencia de ser descartado si Android necesita recursos). Pero esto nuevamente no me lleva muy lejos.
¿Algunas ideas