android.net.TrafficStats
への拡張を実装して、アプリケーションごとまたはAPNごとのデータトラフィックを測定したいと考えています。私はandroid.net.TrafficStats.java
を読んAndroidでは、アプリケーションごとにインターフェイスごとのデータトラフィックを測定する方法
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.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
との2つのファイルしかありません。各APNトラフィック統計でどのように各アプリケーションを取得できますか。
あなたはICSにいますか?私の意見では、アプリケーショントラフィックの統計情報はICSでのみ利用可能です。http://developer.android.com/sdk/android-4.0-highlights.html#data-dev – ChrLipp
これを満たすことができるICSのNetworkStatsFactory.javaが見つかりました要件。ありがとう – freeman