【问题标题】:Android - Track down why app using so much dataAndroid - 追踪应用使用如此多数据的原因
【发布时间】:2025-12-06 17:35:01
【问题描述】:

目前我的应用程序使用大量移动数据时遇到问题,我不能 100% 确定为什么因为典型的请求只是 JSON 发送/接收的数据并且通常非常小(IE 发送用户名/密码以进行登录) .一些用户报告每月使用的数据量高达 5 GB。我看到的典型请求大约是 1 MB,并且每天只触发一次,我看到的最高请求是 3 MB(曾经发生一次以下载其他内容)。在我的所有AsyncHttpClient 请求之前和之后,我都使用了以下以下内容,但没有发现任何可以让它使用那么多数据的东西,因为大多数数据都小于 0.01 MB。

long bytes = TrafficStats.getUidRxBytes(applicationUID) + TrafficStats.getUidTxBytes(applicationUID);

我也尝试在 android studio 中使用分析器,但除非是直接网络调用(当它应该这样做时),否则没有任何东西真正超过 100kb。唯一可能使用数据的库函数来自 Firebase 和 Google。有没有更好的方法来追踪这个问题?

【问题讨论】:

    标签: android performance https androidhttpclient


    【解决方案1】:

    更改为volley 后,我发现最简单的解决方案是使用stetho 直接从我的浏览器监控我的网络请求。

    将听诊器添加到您的构建中

    implementation 'com.facebook.stetho:stetho:1.5.1'
    implementation 'com.facebook.stetho:stetho-js-rhino:1.5.1'
    implementation 'com.github.darshan-kapasi:StethoForVolley:1.2.1' <~ for volley request
    

    更改以下截击请求
    RequestQueue queue = Volley.newRequestQueue(context);
    

    RequestQueue queue = Volley.newRequestQueue(context, new StethoVolleyHurlStack());
    

    在主要活动上初始化

    Stetho.initializeWithDefaults(this);    
    

    在您的开发机器上,连接您的手机,然后打开chrome://inspect/ 并运行您的应用程序。您应该会看到它显示在设备下,单击检查面板,您可以监控您选择的网络请求。

    资源链接

    Stetho Github Repo

    Stetho Volley Github Repo

    【讨论】:

      【解决方案2】:

      您可以尝试通过传递数据的 localhost 服务器发送网络请求,同时检查通过它的流量

      【讨论】: