который даже делает измерение трафика без запуска фоновой службы. Теперь пытаюсь выяснить, могу ли я сделать это таким же образом, а также попытаться отнести трафик к активности на переднем плане.

аюсь создать фоновый сервис, который должен измерять использование трафика различными приложениями, чтобы иметь возможность показать пользователю, какие приложения потребляют большую часть трафика данных.

Я обнаружил, что приложение Spare Parts делает именно это, но после его установки на устройство Dell Streak 1.6, я всегда получаю «Нет данных об использовании батареи» для «Использование сети». Эта функция вообще работает в Запасных частях? Также я не смог найти рабочий исходный код для Spare Parts.

https://android.googlesource.com/platform/development/+/froyo-release/apps/SpareParts
выглядит устаревшим или неполным. (?)

Но Запасные части, кажется, измеряют, например, Загрузка процессора на приложение. Как это сделать на телефоне без рута?

Моя общая идея о том, как можно измерить трафик на приложение, состоит в том, чтобы регулярно проверять

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

файлы и посмотреть, какое приложение в настоящее время имеет фокус и, таким образом, наиболее вероятно, вызовет сгенерированный сетевой трафик.

К сожалению, я не могу найти способ сфокусироваться на приложении.

Я нашел это:

Android, как получить информацию о том, какие действия в настоящее время показывает (в foregorund)?

но, похоже, речь идет о тестировании, а не только о стороннем сервисе, работающем на некорневом устройстве Android.

Мы можем узнать, какие виды деятельности работают сActivityManager.getCurrentTasks(), но любой из них может быть тем, у которого есть фокус. Похоже, что архитекторы Android явно не хотят, чтобы сторонние приложения знали, на какое приложение нацелено внимание, из соображений безопасности

(видетьhttp://android.bigresource.com/Track/android-zb2mhvZX4/).

Это можно обойти?

Кроме того, если я хочу не только определить, какие действия потребляют трафик, но также и какие сервисы, я могу получить все запущенные сервисы сActivityManager.getCurrentSerives() и даже посмотреть для каждого, находится ли он в режиме переднего плана (в отличие от того, чтобы быть выброшенным, если Android нужны ресурсы). Но это опять-таки не подводит меня далеко.

Есть идеи?

Ответы на вопрос(1)

Ваш ответ на вопрос