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.

  • ingrandire e ridurre l'animation in android
  • Come faccio a passare i dati tra le attività nell'applicazione Android?
  • Errore durante l'esecuzione dello strumento di systrace in ADB utilizzando un emulatore Jelly Bean 4.1 in Windows 7
  • Caricare un file di grandi size in multipart utilizzando OkHttp
  • Lista Endless di Android
  • Come get la data presa e visualizzarla?
  • 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?

  • Riproduzione di un video in VideoView in Android
  • Limitazione sulla dimensione della plot? Android Open GL ES 2.0
  • Ottieni informazioni su AutocompleteTextView dal conseguente AutoCompleteTextView $ DropDownListView
  • In android Perché il mio ProgressBar si blocca?
  • L'esecuzione istantanea non funziona in Android Studio, dice Gradle versione 2.10 è necessaria. Uso 2.10
  • cosa esegue metodo Activity.finish ()?
  • 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.