2011-03-16 4 views
4

대부분의 데이터 트래픽을 소비하는 앱을 사용자에게 보여줄 수 있도록 다양한 애플리케이션의 트래픽 사용량을 측정해야하는 백그라운드 서비스를 만들고자합니다.다른 Android 앱이 생성하는 네트워크 트래픽 양을 확인하십시오.

스페어 파트 앱이 정확하게 작동하지만 1.6 Dell Streak 장치에 설치 한 후 "네트워크 사용"에 대해 항상 "배터리 사용 데이터가 없습니다"라는 메시지가 나타납니다. 이 기능이 예비 부품에서 작동합니까? 또한 Spare Parts에 대한 작업 소스 코드를 찾을 수 없습니다.

https://android.googlesource.com/platform/development/+/froyo-release/apps/SpareParts
은 시대에 뒤섞여 있거나 불완전한 것으로 보입니다. (?)

그러나 예비 부품은 예를 들어. 앱당 CPU 사용량. 전화가 끊긴 전화에서 어떻게 그럴 수 있습니까? 응용 프로그램 당 트래픽을 측정 할 수있는 방법의

내 일반적인 생각은 정기적으로

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

파일을 확인하고 볼 수있는 응용 프로그램 현재 초점과 따라서 mos있다 생성 된 네트워크 트래픽을 유발할 가능성이 있습니다.

불행히도 현재 앱에 초점을 맞추는 방법을 찾을 수 없습니다.

Android, how to get information on which activity is currently showing (in foregorund)?

하지만 비 뿌리 안드로이드 장치에서 실행뿐 아니라 3 차원 자 서비스, 시험에 관하여 보인다

나는이 발견했다.

어떤 활동이 ActivityManager.getCurrentTasks()으로 실행되는지 확인할 수 있지만 그 중 하나는 포커스가있는 활동 일 수 있습니다. 안드로이드 아키텍트가 보안 문제 때문에 어떤 앱이 포커스를 가지고 있는지 알기를 명시 적으로 원하지 않는 것처럼 보입니다

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

이 방법이 있습니까? 또한

, 나는뿐만 아니라 트래픽을 먹을뿐만 아니라 어떤 서비스, 나는 ActivityManager.getCurrentSerives() 으로 현재 실행중인 모든 서비스를받을 수 있으며, 슬로우 달리이 (전경 모드의 경우에도 각각에 대해 볼 수있는 활동을 감지하려는 경우 안드로이드가 리소스를 필요로하는 경우). 그러나 이것은 다시 나를 데려 오지 않습니다.

아이디어가 있으십니까?

답변

3

ActivityManager.getRunningAppProcesses 호출로 현재 전경 어플리케이션을 감지 할 수 있습니다. RunningAppProcessInfo 레코드 목록을 반환합니다. 어떤 응용 프로그램이 전경에 있는지 확인하려면 RunningAppProcessInfo.importance 필드가 RunningAppProcessInfo.IMPORTANCE_FOREGROUND과 같음을 확인하십시오.

그러나 ActivityManager.getRunningAppProcesses() 메서드 호출은 UI 스레드가 아니라 수행해야합니다.백그라운드 스레드에서 호출하면 (예 : AsyncTask를 통해) 올바른 결과를 반환합니다. 자세한 내용은 my post을 확인하십시오.

+1

답장을 보내 주셔서 감사합니다. 나는 이것이 내 문제의 큰 부분을 해결한다고 생각한다. NetSentry app [소스 코드] (http://code.google.com/p/netsentry/source/checkout)도 백그라운드 서비스가 실행되지 않고도 트래픽 측정을 수행합니다. 이제 내가 똑같은 방식으로 할 수 있는지 알아보고 전경에서 활동에 대한 트래픽을 분석하려고합니다. – iseeall

관련 문제