![](/img/trans.png)
[英]How to Track App Usage in Android? How to detect when an activity is launched?
[英]How to detect the cause for HUGE data usage when my app in background
我們有一個擁有超過一百萬活躍用戶的Android應用。 我們最近開始收到用戶的反饋,抱怨說我們的應用程序在后台(一周大約0.5-3 GB)時會消耗大量網絡數據。
除了沒有網絡調用的推送通知接收器外,該應用程序在后台沒有任何操作。 確保后台一周的數據消耗少於10 MB。
當我的應用程序在后台運行時,是否可以使用代碼來幫助我找出造成此數據消耗的原因?
當我的應用程序在后台運行時,是否可以限制所有SDK的數據訪問?
通常,解決此問題的最佳方法是什么?
謝謝
更新:
在我們的案例中,我們最終發現問題的根源來自與該應用程序集成的SDK。
如果您遇到相同的問題,建議您仔細查看應用中的所有第三方代碼,尤其是添加的新庫。
其次,檢查您的應用程序在清單中定義的所有服務,仔細查看這些服務中的任何服務是否可能是此問題的根源。
第三,在應用程序中使用重試機制的網絡操作位置,可能存在無限的“ while循環”,試圖將一些數據發送到服務器(可能是某種報告或分析)。
您需要檢查來自設備的有線通信。 您將需要一台計算機,並且您的設備連接到同一局域網。
現在,您將能夠檢查源自設備的所有請求。 大概您將不得不讓它們運行一段時間,以重現某種定期后台服務運行和下載數據的問題。 但是,我現在可以告訴您,推送通知本身不會在單個設備上引起3GB的數據。
您可以按以下方式編寫代碼以計算數據使用量。
recived = TrafficStats.getUidRxBytes(uid);// uid is your appID
send = TrafficStats.getUidTxBytes(uid);
TrafficStats.getMobileRxBytes();
TrafficStats.getMobileTxBytes();
TrafficStats.getTotalRxBytes();
TrafficStats.getTotalTxBytes();
你可以在這里找到一個很好的答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.