【问题标题】:How do Android apps which monitor all network activity work?监控所有网络活动的 Android 应用程序如何工作?
【发布时间】:2015-09-24 21:36:24
【问题描述】:

我需要监控设备上的所有网络活动,作为我的应用程序的一部分,而不是出于调试目的。 This post 谈论使用 TCP 转储,但一些答案表明这需要 root。没有一个答案能真正解释您将如何在应用程序中执行此操作。

我知道从应用程序内部访问所有网络流量是有可能的,因为像Network Connections 这样的应用程序可以显示正在访问的所有 IP 地址,以及哪些应用程序正在访问它们。

有谁知道我需要使用哪些 API、权限等才能在我的应用中获取此类数据?

【问题讨论】:

  • 如果用于调试,则取决于您使用什么来传输数据。 HttpUrlConnection、HttpClient、OkHttp。您通常可以很容易地记录所有经过这些处理的数据。
  • 澄清一下,我想监控设备上的所有网络活动,而不仅仅是来自我的应用程序,我希望它能够暴露给最终用户,而不仅仅是用于调试。我认为另一个用户所做的编辑导致不太清楚(尽管总体上很有帮助!)

标签: android networking


【解决方案1】:

如果你还在寻找,在 android.net 包中有这个类:

/**
 * Collection of historical network statistics, recorded into equally-sized
 * "buckets" in time. Internally it stores data in {@code long} series for more
 * efficient persistence.
 * <p>
 * Each bucket is defined by a {@link #bucketStart} timestamp, and lasts for
 * {@link #bucketDuration}. Internally assumes that {@link #bucketStart} is
 * sorted at all times.
 *
 * @hide
 */
public class NetworkStatsHistory implements Parcelable {

【讨论】:

  • @user3174484 你有什么办法吗?我也在努力实现和你一样的目标。
猜你喜欢
  • 1970-01-01
  • 2011-09-02
  • 2023-03-12
  • 2013-01-18
  • 2013-11-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多