Android中流量、电量、弱网环境怎么测?

Android中流量、电量、弱网环境怎么测?

2023年6月27日发(作者:)

Android中流量、电量、弱⽹环境怎么测?在使⽤安卓机时,可能⼜是会经常感受到以下问题:1、应⽤后台开着,⼿机很快没有电了---应⽤耗电⼤;2、⾸次/⾮⾸次启动应⽤,进⼊应⽤特别慢---应⽤启动慢;3、使⽤使⽤过程中,越来越卡---CPU能⼒不⾜/内存泄漏;4、应⽤页⾯卡顿---帧率较低,页⾯卡顿所以对安卓要进⾏⼀些性能测试,不然将会直接影响⽤户体验android应⽤性能测试通常包括:启动时间、内存、CPU、耗电量、流量、流畅度⼀、耗电 耗电操作主要包括cpu、wifi、流量、传感器,以及应⽤屏幕wakelock等操作。我们更多的是关注应⽤本⾝是否劫持了系统的屏幕wakelock操作,没有及时释放屏幕wakelock,导致耗电。 电量测试监控⽅法可以简单的从设置-->电池-->使⽤情况中查看,⼿机中的每个部件运⾏时对应的能耗值都好在power_⽂件中,⽽系统的设置-->电池-->使⽤情况中,统计的能耗使⽤情况也是以power_的value作为基础参数的。通过命令监控app个部件的使⽤时长,然后结合设备耗电的基础参数进⾏加权计算,即可得到app使⽤的耗电量。⾄于更详细的耗电量测试,可以专门把耗电这⼀性能指标拿出来,专项测试。⼆、流量 流量是运营商的⽹络访问Internet,运营商替我们的⼿机转发数据报⽂,数据报⽂的总⼤⼩(字节数)。这⾥的数据报⽂包括⼿机上下⾏的报⽂,由于数据报⽂采⽤IP协议传输,运营商计算的流量⼀般是包含IP的数据报⽂⼤⼩。两种测试流量的测试⽅法:1、tcpdump+wireshark抓包测试法 通过抓包是流量测试直接的⽅法。在App运⾏器件,把⼿机收发的所有报⽂抓取下来,在计算收发报⽂总⼤⼩,即app消耗的流量。如果我们需要测试某个app消耗 的流量需要禁⽤其他app的连⽹权限。 1)限制其他app的连⽹权限,因为有些app的进程是常驻后台的,即使不运⾏,也会有⽹络报⽂。可以借助⼀些⼿机管家软件禁⽤⽹络。 2)⼿机上抓包,下载tcpdump,⼿机链接电脑,获得root权限3)将tcpdump(forAndroid)上传⾄android⼿机上,在命令提⽰符窗⼝中输⼊命令:adbpush

tcpdump> /data/local/tcpdump

4)给tcpdump增加可执⾏权限 adb shell su chmod 6755 /data/local/tcpdump

5)启动抓包,使⽤命令/data/local/tcpdump-v -i any -s 0 -w /sdcard/ Got后⾯的数字表⽰当前抓到的包的数量。如果有变化,表⽰有⽹络流量 6)导出抓包结果adb pull /sdcard/ 7)⽤Wireshark打开刚才的抓包结果,点击StatisticsàSummary,流量的数值为Bytes⼀⾏的Displayed⼀栏。

2、使⽤安卓⾃⾝提供的TCP收发长度统计功能 ⼀般APP和后台服务器之间的通信都是基于TCP的,所以我们可以利⽤此统计来测试我们APP的流量,⽽且安卓提供的该统计功能是按照APP纬度来统计的,不需要禁⽌其他app的连⽹权限。 操作步骤如下: 1)使⽤ps命令查看所测app的uid,例如贴吧的uid为10000+191=10191 adbshell

su ps |grep

2)进⼊/proc/uid_stat/1191⽬录,cat获取当前tcp_snd和tcp_tcv的初始值

3)此时可以开始测试了,测试完成后再次获取tcp_snd和tcp_tcv的值

4)所测时间内的流量计算 发送流量:tcp_snd_new-tcp_snd_old=2032150-893233=1128917bytes 接收流量:tcp_rcv_new-tcp_rcv_old=18648825-1350829=17297996bytes ⼆、弱⽹环境

在进⾏⼿机应⽤测试时,经常需要模拟⽹络不稳定的状态下对测试执⾏的影响。调研了⼏款⼯具,可以通过⼿动设置数据丢包率,以及⽹络时延等参数,模拟弱⽹环境。如Charles、clumsy、netlimite、atc等。 1、⼏款⼯具的⽐较 1)Charles、Fiddler这样的软件只⽀持短连接,也就是说只有⾛短连接的接⼝才⽣效,长连接的不能使⽤。 缺点:不⽀持长连接 2)Atc⼯具和苹果⾃带的ios developer (开发者选项)的使⽤⽅法是⼀样的,需要在⼿机端操作,atc⼯具需要搭建⼀系列环境后,⼿机访问⼀个ip地址就能看见控制页⾯,然后修改相应的参数即可。 缺点:不宜操作,每次修改⽹络场景需要把被测app置于后台,切换到⽹络模拟界⾯改参数,然后再切回被测app。影响被测app的操作连贯性。 3) clumsy、netlimite等这类软件易安装,安装在电脑端,⼿机通过共享⽹络连接电脑,实时的将系统接收和发出的⽹络数据包拦截下来,⼈⼯的造成延迟,掉包和篡改操作后再进⾏发送。 4)购买⼀些仪器,在全公司范围搭建⼀个弱⽹环境。 缺点:搭建成本⾼,需要有专门的技术⼈员⽀持。 综合⽐较以上四类⼯具,第三类推荐在⽇常测试过程中使⽤。下⾯就拿clumsy举例,介绍⼀下环境的搭建及使⽤。 2、clumsy环境搭建及使⽤ 1)环境准备 windows笔记本,clumsy安装⽂件,共享⽹络 2)安装clumsy clumsy免安装程序,下载完成后,直接点击exe可执⾏⽂件即可。 3)创建共享⽹络 a、电脑连接⽹线,打开⽹络和共享中⼼

b、点击本地连接---属性---共享---勾选第⼀个,并选择⼀个家庭⽹络连接(此时本地连接会显⽰共享的字样)

c、cmd--输⼊命令(启动cmd,最好⽤管理者⾝份启动) netshwlan set hostednetwork mode=allow ssid=zhangyu1 key=123456789(ssid和key对应共享⽹络的名称和密码,key不能低于8位) netshwlan start hostednetwork ⾄此⼿机就会搜索到电脑共享的⽹络,然后连接即可。

3、clumsy参数说明及使⽤ 界⾯如下:

clumsy ⾸先根据⽤户选择的 filter 来拦截指定的⽹络数据。在 filter 中可以设定你感兴趣的协议(tcp/udp),端⼝号,是接收还是发出的端⼝。你也可以通过简单的逻辑语句来进⼀步缩⼩范围。当 clumsy 被激活时,只有符合这些标准的⽹络数据会被进⾏处理,⽽你不感兴趣的数据仍然会由系统正常传输。 当被 filter 的⽹络数据包被拦截后,你可以选择 clumsy 提供的功能来有⽬的性的调整⽹络情况: 1. 延迟(Lag),把数据包缓存⼀段时间后再发出,这样能够模拟⽹络延迟的状况。 2. 掉包(Drop),随机丢弃⼀些数据。 3. 节流(Throttle),把⼀⼩段时间内的数据拦截下来后再在之后的同⼀时间⼀同发出去。 4. 重发(Duplicate),随机复制⼀些数据并与其本⾝⼀同发送。 5. 乱序(Out of order),打乱数据包发送的顺序。 6. 篡改(Tamper),随机修改⼩部分的包裹内容。 类似模拟⽹络环境的软件很多,⼤家可以针对⾃⼰的情况选择,不要找环境搭建过于繁琐的⼯具,简单易⽤就好。

定位常⽤软件

在发现问题后,定位分析时,可以借助以下常⽤软件。 1、traceview使⽤简介 TraceView 是 Android 平台特有的数据采集和分析⼯具,它主要⽤于分析 Android 中应⽤程序的 hotspot,可以⽅便的查看线程的执⾏情况,某个⽅法执⾏时间、调⽤次数、在总体中的占⽐等,从⽽定位性能点。

使⽤⽅法: 使⽤Android studio->Android Device Monitor->进⼊DDMS->点击开始按钮

Case: 在微粉⾸页上下滑动,滑动过程中等待图⽚、视频加载完成 。 点击结束按钮出现结果如下(划分为上下两个⾯板,即Timeline Panel(时间线⾯板)和Profile Panel(分析⾯板):

Timeline Panel⼜可细分为左右两个部分:

(1)左边显⽰的是测试数据中所采集的线程信息。

(2)右边所⽰为时间线,时间线上是每个线程测试时间段内所涉及的函数调⽤信息。

(3)可以在时间线中移动时间线纵轴。纵轴上边将显⽰当前时间点中某线程正在执⾏的函数信息。

Profile Panel(分析⾯板) 按调⽤次数由⾼到低排列结果如下图

按照占⽤CPU时间从⾼到低排列结果如下图:

2、Systrace使⽤简介 Systrace是Android4.1中新增的性能数据采样和分析⼯具。它可帮助开发者收集Android关键⼦系统(如surfaceflinger、WindowManagerService等Framework部分关键模块、服务,View系统等)的运⾏信息,从⽽帮助开发者更直观的分析系统瓶颈,改进性能。Systrace的功能包括跟踪系统的I/O操作、内核⼯作队列、CPU负载以及Android各个⼦系统的运⾏状况等。

使⽤⽅法:

使⽤Android studio->Android Device Monitor

进⼊DDMS->打开微粉APP->点击开始systrace

设置参数->点击OK

case:

在微粉⾸页滑动列表,滑动过程中需等待图⽚视频加载完成

在chrome地址栏中输⼊chrome://tracing 点击load打开⽂件

通过⼯具抓取的数据⽤浏览器打开后显⽰如下:

查看Frames这⼀⾏,可以看到这⾥展⽰了被绘制出来的每⼀帧,并且⽤绿、黄、红三颜⾊来区分它们在绘制时的性能

选⼀个红⾊帧在底部给出Alter信息:

展开“Inflation during ListViewrecycling”这条警告(警告部分的总耗时155毫秒,远⾼于了我们对保障60fps所需的16毫秒绘制时间):

选择这⼀帧中最长的⼀块,对其进⾏进⼀步分析整个区块耗时98毫秒,⽽在这之中CPU只消耗了65毫秒的时间去运算

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1687841783a49971.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信