Я хочу реализовать расширение к android.net.TrafficStats
для измерения трафика данных на APN или APN на приложение. прототип методов выглядит так:
getInterfaceTxPackets(String interface)
getInterfaceRxPackets(String interface)
getInterfaceTxBytes(String interface)
getInterfaceRxBytes(String interface)
getUidInterfaceTxPackets(int uid,String interface)
getUidInterfaceRxPackets(int uid,String interface)
getUidInterfaceTxBytes(int uid,String interface)
getUidInterfaceRxBytes(int uid,String interface)
Я прочитал android.net.TrafficStats.java
, он вызывает собственные методы в android_net_TrafficStats.cpp
, и собственные методы читают статистику трафика из некоторых файлов:
общие файлы статистики трафика находятся в папке /sys/class/net/
, в этой папке есть несколько подпапок, таких как: eth0, ip6tnl0, rmnet0, rmnet1, rmnet2, rmnet3, подробные файлы статистики сохраняются в этих папках.
файлы статистики трафика для каждого приложения находятся в /proc/uid_stat/[uid]/
Мои вопросы:
соответствует ли папка rmnet0, rmnet1, rmnet2, rmnet3...
. соответствуют каждому APN? Если да, то каково правило соответствия? Если нет, то как я могу получить статистику трафика каждой APN?
В папке /proc/uid_stat/[uid]/,
есть только два файла: tcp_rcv
и tcp_snd
, как я могу получить статистику трафика каждого приложения на каждом APN?