Trova il traffico di networking generato da altre applicazioni Android

Sto provando a fare un servizio di background che dovrebbe misurare l'utilizzo del traffico di varie applicazioni in modo da poter mostrare all'utente quali applicazioni consumano la maggior parte del traffico dati.

Ho scoperto che l'app Spare Parts fa esattamente questo, ma dopo averlo installato su un dispositivo 1.6 Dell Streak, ho sempre "Non disponibile dati di utilizzo della batteria" per "utilizzo di networking". Questa function funziona affatto a Spare Parts? Inoltre, non ho trovato un codice sorgente di lavoro per le parti di ricambio.

  • Passare enum o object attraverso un intento (la soluzione migliore)
  • Android: cambiare il text all'interno di ViewPager
  • exception libGDX nel thread "Applicazione LWJGL"
  • Quale dp devo utilizzare per le icone Android?
  • Errore di build di gradi di Android: le zecche in canvasio trasparente devono essere nere o rosse
  • Creazione di elenco di visualizzazione in modo dinamico in Android
  • https://android.googlesource.com/platform/development/+/froyo-release/apps/SpareParts
    sembra essere obsoleto o incompleto. (?)

    Ma le parti di ricambio sembrano misurare ad esempio l'utilizzo della CPU per app. Come funziona su un telefono senza radice?

    La mia idea generale di come è ansible misurare il traffico per app è controllare regolarmente

    "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"

    file e per vedere quale applicazione attualmente è concentrata e quindi più probabile che provocherà il traffico di networking generato.

    Purtroppo non riesco a trovare come get l'applicazione attualmente concentrata.

    Ho trovato questo:

    Android, come get informazioni su quale attività sta attualmente visualizzando (in foregorund)?

    ma sembra che si tratti di test, non solo di un servizio di partito 3d in esecuzione su dispositivo Android non radicato.

    Possiamo get quali attività sono in esecuzione con ActivityManager.getCurrentTasks() , ma ognuna di esse può essere quella con attenzione. Sembra che gli architetti di Android in modo esplicito non vogliono che le applicazioni del partito 3d possano sapere quale applicazione ha la messa a fuoco, a causa di problemi di sicurezza

    (vedi http://android.bigresource.com/Track/android-zb2mhvZX4/ ).

    C'è un modo per aggirare questo?

    Inoltre, se voglio non solo rilevare quali attività consumano il traffico, ma anche quali servizi, posso get tutti i servizi attualmente in esecuzione con ActivityManager.getCurrentSerives() e anche vedere per ciascuno se è in modalità di primo piano (a differenza di essere buttato fuori se Android ha bisogno di risorse). Ma questo ancora non mi port molto lontano.

    Qualche idea?

  • Android: come aprire un file apk dopo il download per l'aggiornamento automatico?
  • Come impostare il geopoint sulla posizione corrente sulla mappa in android?
  • Intel XDK non è in grado di installare il module di debug
  • Connessione HTTPS con risultato di authorization di base in Non autorizzato
  • Richiedere un gran numero di contatti
  • Imansible modificare ArrayAdapter in ListView: UnsupportedOperationException
  • One Solution collect form web for “Trova il traffico di networking generato da altre applicazioni Android”

    È ansible rilevare l'applicazione correntemente triggers con la chiamata ActivityManager.getRunningAppProcesses . Restituisce un elenco di record di RunningAppProcessInfo . Per determinare quale applicazione è in primo piano, controllare il field RunningAppProcessInfo.importnce per l'uguaglianza a RunningAppProcessInfo.IMPORTANCE_FOREGROUND .

    Ma essere ware che chiamano metodo ActivityManager.getRunningAppProcesses() deve essere eseguito NON nel thread UI. Basta chiamarlo nel thread di background (ad esempio tramite AsyncTask) e restituirà i risultati corretti. Controlla il mio post per ulteriori dettagli.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.