Android手机APK功耗、流量、内存测试方法

用发展的眼光看中国Android⼿机APK功耗、流量、内存测试⽅法
其中所⽤到的⼯具借鉴了⽬前⼤多是测试普遍⽤到的第三⽅监测APK,但较多博客都未对使⽤⽅法以及注意事项有详细的说明,个⼈整理⼀番,仅供借鉴和个⼈记忆
功耗
⼯具:耗电监控(PowerTutor)
1.使⽤PowerTutor检测耗电值
测试前先记录平均电压,可以使⽤⼀段时间⼿机,记录下⼿机不同耗电阶段时的电压,取平均数:
步骤:启动应⽤—》点击Stop Profiler—》点击System Viewer—》切换到Stat View视图页⾯,记录Voltage电压值
⽅法:
建议:
1.测试场景、执⾏步骤以及⽹络环境⼀致
2.可以使⽤bat或者python将个别简单步骤进⾏⾃动化实现,具体命令可百度
测试步骤:
3.启动应⽤,进⼊测试场景,保持1分钟以上,等待电压稳定
4.启动监测⼯具,点击“StarProfiler”激活检测程序,点击“ApplicationViewer”进⼊被检测应⽤列表,点击被测应⽤,进⼊详情信息可查看当前应⽤的LCD、CPU的功耗⾛势(ChartView)、占⽐饼图(PieView)、当前运⾏情况(StatView)关注AveragePower数据即可,即平均数值,待测试时间到达后,记录当前AveragePower数值即可
5.测试完毕后停⽌⼯具检测即可
流量、CPU、内存
⼯具:流量检测(ITest)
原电池电动势的测定建议:
1.测试场景、执⾏步骤以及⽹络环境⼀致
2.可以使⽤bat或者python将个别简单步骤进⾏⾃动化实现,具体命令可百度
测试步骤:
1.启动测试⼯具,增加需监控的应⽤,设置监控指标以及根据需要进⾏logcat以及弱⽹的设置
2.启动被测应⽤,进⼊测试场景,等1分钟数据平稳
3.启动监测⼯具,点击启动监控案件
4.测试时间完成后,点击停⽌监控,数据保存到提⽰的存储⽬录
数据分析:
foxy电脑迷1.CPU:当前每次记录的耗损,计算平均值即可
2.内存:当前应⽤每次记录占⽤整机内存,计算平均即可
3.数据上传下载:记录的数据为持续增长性,即操作应⽤10分钟,导出的⽂本数据:[last数据-first数据=测试时间内消耗的数据流量]
内存测试:安装android-studio,安装SDK并配置
Heap监测应⽤进程-内存使⽤情况
1.
打开DDMS视图
1. 启动eclipse后,切换到DDMS透视图,并确认Devices视图、Heap视图都是打开的;
2. 将⼿机通过USB链接⾄电脑,链接时需要确认⼿机是处于“USB调试”模式,⽽不是作为“Mass Storage”;
3. 链接成功后,在DDMS的Devices视图中将会显⽰⼿机设备的序列号,以及设备中正在运⾏的部分进程信息;
4. 点击选中想要监测的进程,⽐如system_process进程;
5. 点击选中Devices视图界⾯中最上⽅⼀排图标中的“Update Heap”图标;
6. 点击Heap视图中的“Cause GC”按钮(清理内存);
7. 此时在Heap视图中就会看到当前选中的进程的内存使⽤量的详细情况。
说明:
a) 点击“Cause GC”按钮相当于向虚拟机请求了⼀次gc操作;
b) 当内存使⽤信息第⼀次显⽰以后,⽆须再不断的点击“Cause GC”,Heap视图界⾯会定时刷新,在
对应⽤的不断的操作过程中就可以看到内存使⽤的变化;
c) 内存使⽤信息的各项参数根据名称即可知道其意思,在此不再赘述。
如何才能知道我们的程序是否有内存泄漏的可能性呢?
这⾥需要注意⼀个值:Heap视图中部有⼀个Type叫做data object,即数据对象,也就是我们的程序中⼤量存在的类,类型的对象。
在data object⼀⾏中有⼀列是“Total Size”,其值就是当前进程中所有Java数据对象的内存总量,⼀般情况下,这个值的⼤⼩决定了是否会有内存泄漏。
可以这样判断:
a) 不断的反复操作当前应⽤,同时注意观察data object的Total Size值;
b) 正常情况下Total Size值都会稳定在⼀个有限的范围内,也就是说由于程序中的的代码良好,没有造成对象不被垃圾回收的情况,所以说虽然我们不断的操作会不断的⽣成很多对象,⽽在虚拟机不断的进⾏GC的过程中,这些对象都被回收了,内存占⽤量会会落到⼀个稳定的⽔平;
c) 反之如果代码中存在没有释放对象引⽤的情况,则data object的Total Size值在每次GC后不会有明显的回落,随着操作次数的增
多Total Size的值会越来越⼤,
直到到达⼀个上限后导致进程被kill掉。桥头堡建设
d) 此处已system_process进程为例,在我的测试环境中system_process进程,所占⽤的内存的data object的Total Size,正常情况下会稳定在2.2~2.8之间,⽽当其值超过3.55后进程就会被kill。
jinjide在我们的程序中,要是出现某个进程出现了不断增加的现象,可能该应⽤就存在泄漏的问题。如果某个进程在操作过程中出现程序崩溃,可能该应⽤程序已申请不到空间,可能存在内存泄露。
内存抖动:
使⽤AndroidStudio⼯具:
魔法波鲁勾选EnableADBIntergration
勾选待测试的包以及选择视图
内存尽量测试单⼀场景,便于分析
内存泄漏场景设计思维:
在执⾏第⼀次时,进⼊测试场景GC后,若存在泄露,在第⼆次进⼊后,同样GC回收后,如果依然泄露,那么会在上⼀次基础上造成内存增长,保持⼀个持续增长的趋势,从⽽达到测试⽬的,也同样测试出在该场景可能存在泄露问题
下载“”蜜源app“”,0投资,既省钱,⼜可以赚钱(平台会付给我邀请费3元每⼈,激活后,你也可以邀请其他⼈赚邀请费):
Step 1: 应⽤宝或者苹果商店下载“蜜源”,这样下载⽐较安全,经过平台的病毒等检测
Setp 2: 使⽤⼿机注册后,需要激活码激活,输⼊ FaIlFA 激活即可
不懂得,可以私信聊

本文发布于:2024-09-24 06:26:50,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/104294.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:内存   测试   数据
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议