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