2011-12-17 55 views
3

我正在開發一個需要下載大量數據的Android應用程序。如何測量我的應用程序的數據使用率

爲了提高可用性,我想測量我的應用程序產生的數據流量,並在應用程序下載特定數量的數據時爲用戶提供提示。

我目前的想法:總結所有下載的字節在一起,並對指定的限制作出反應。但是,由於我在許多不同的情況下以及代碼中的許多不同位置下載了東西,還有其他可能性來衡量每個應用程序的數據使用情況嗎?

AFAIK,sys/net/NETINTERFACE/statistics/rx_bytes報告整個系統的總量,所以這不是一個解決方案。

回答

12

但是,由於我在許多不同的情況下以及代碼中的許多不同位置下載了東西,是否有其他可能性來衡量每個應用的數據使用情況?

TrafficStats也許能夠通過UID報告事情。我說「可能」是因爲它似乎與設備有關。我懷疑Android 3.0+會一直由UID報告,但我的2.2和2.3經驗混雜在一起。

Here is a sample application演示記錄此信息。

+0

我們可以通過wifi和手機獲得應用程序的數據使用率嗎? – Riser 2014-11-14 08:45:43

+0

@Erick:是的,'TrafficStats'分別報告WiFi和移動數據。 – CommonsWare 2014-11-14 12:07:06

+0

但特殊的應用? – Riser 2014-11-14 12:53:53