tcpdump&wireshark分析功耗问题

前言

在处理功耗问题时,经常会遇到回到一些应用在后台使用网络或在待机时候使用网络,导致功耗过高。这时候需要使用到tcpdump和wireshark,可以帮忙我们找到哪些有用在后台偷跑流量、哪些应用上行数据。

需要使用到的工具

tcpdump

一般已经集成在手机里可直接使用,没有的可以从网站(https://www.androidtcpdump.com/android-tcpdump/downloads)下载。

wireshark

从网站(https://www.wireshark.org/download.html)下载按照即可。

ss

ss是Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。

log抓取

tcpdump抓取有两种方法

1、平台自带的log工具可以直接抓取,比如mtklog Tool→net log;

2、使用tcpdump 指令抓取

tcpdump -p -vv -s 0 -C 100 -w /data/capture.pcap

adb pull /data/capture.pcap .

socket统计信息抓取

同步抓取socket统计信息,使用ss指令抓取,如下:

while true; echo \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-; do ss -p; sleep 5; done > /data/ss.log

wireshark 分析

使用wireshark打开抓取的tcpdump log,然后在状态栏点击 统计->endpoints选项,获取到如下界面:

从上图中可以看到,本机与远程IP 收发的总字节数为86M和packets 个数为66569,以及与每个远程IP的进行收发的字节数和packets数量,但无法知道是哪个app在进行网络传输,所以要与抓取的ss log对照去看。

比如想要知道IP:125.89.169.119 是哪个APP在进行访问,可以在抓取的ss log中搜索,如下所示:

就可以看到是包名为:d.article.video的app,也就是西瓜视频。

wireshark其他对功耗分析有用的功能

查看packets的时间分布,在状态栏 统计→I/O Graphs

当没有抓到ss log时,可以从 统计->HTTP->负载分布 中看到一些信息:

以及在 统计->已解析的地址 中找到一些信息:

eof

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值