Android 如何跟踪每个应用程序的数据使用情况?
How does Android tracks data usage per application?
Android 可以跟踪 from/to 应用程序发送和接收的字节数。
我想知道这些数据是如何统计的。例如,当我 运行 本机应用程序打开 TCP 套接字,发送和接收数据时,该数据被计算在内。
我知道它与 xt_qtaguid
模块有关,该模块标记套接字每个 UID。
快速搜索:
快速浏览 packages/apps/Settings (http://androidxref.com/5.1.1_r6/xref/packages/apps/Settings/src/com/android/settings/DataUsageSummary.java#296) 似乎它依赖于
这似乎归结为阅读:
mStatsXtIfaceAll = new File(procRoot, "net/xt_qtaguid/iface_stat_all");
mStatsXtIfaceFmt = new File(procRoot, "net/xt_qtaguid/iface_stat_fmt");
mStatsXtUid = new File(procRoot, "net/xt_qtaguid/stats");
"net/xt_qtaguid/stats" 似乎包含有关应用级别的信息。
--
这里略过几步,但是这个文件只打开阅读后,它是由xt_qtaguid内核模块写入的。
内核不是我的专长,我们现在不属于系统的 "Android" 部分,也许这个问题属于 Linux 内核问题而不是 Android题? :)
Android 可以跟踪 from/to 应用程序发送和接收的字节数。
我想知道这些数据是如何统计的。例如,当我 运行 本机应用程序打开 TCP 套接字,发送和接收数据时,该数据被计算在内。
我知道它与 xt_qtaguid
模块有关,该模块标记套接字每个 UID。
快速搜索:
快速浏览 packages/apps/Settings (http://androidxref.com/5.1.1_r6/xref/packages/apps/Settings/src/com/android/settings/DataUsageSummary.java#296) 似乎它依赖于
这似乎归结为阅读:
mStatsXtIfaceAll = new File(procRoot, "net/xt_qtaguid/iface_stat_all");
mStatsXtIfaceFmt = new File(procRoot, "net/xt_qtaguid/iface_stat_fmt");
mStatsXtUid = new File(procRoot, "net/xt_qtaguid/stats");
"net/xt_qtaguid/stats" 似乎包含有关应用级别的信息。
-- 这里略过几步,但是这个文件只打开阅读后,它是由xt_qtaguid内核模块写入的。
内核不是我的专长,我们现在不属于系统的 "Android" 部分,也许这个问题属于 Linux 内核问题而不是 Android题? :)