Я хочу реализовать расширение для 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?