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]/,
には2つのファイルしかありません:tcp_rcv
とtcp_snd
、各APNトラフィック統計で各アプリケーションを取得するにはどうすればよいですか?