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

其中所用到的工具借鉴了目前大多是测试普遍用到的第三方监测APK,但较多博客都未对使用方法以及注意事项有详细的说明,个人整理一番,仅供借鉴和个人记忆

 

功耗

 

工具:耗电监控(PowerTutor)

 

1.使用PowerTutor检测耗电值

测试前先记录平均电压,可以使用一段时间手机,记录下手机不同耗电阶段时的电压,取平均数:

步骤:启动应用—》点击Stop Profiler—》点击System Viewer—》切换到Stat View视图页面,记录Voltage电压值

Android手机APK功耗、流量、内存测试方法_第1张图片

方法:

建议:

1.测试场景、执行步骤以及网络环境一致

2.可以使用bat或者python将个别简单步骤进行自动化实现,具体命令可百度

测试步骤:

3.启动应用,进入测试场景,保持1分钟以上,等待电压稳定

4.启动监测工具,点击“StarProfiler”激活检测程序,点击“ApplicationViewer”进入被检测应用列表,点击被测应用,进入详情信息可查看当前应用的LCD、CPU的功耗走势(ChartView)、占比饼图(PieView)、当前运行情况(StatView)关注AveragePower数据即可,即平均数值,待测试时间到达后,记录当前AveragePower数值即可

5.测试完毕后停止工具检测即可

流量、CPU、内存

工具:流量检测(ITest)

Android手机APK功耗、流量、内存测试方法_第2张图片

 

建议:

1.测试场景、执行步骤以及网络环境一致

2.可以使用bat或者python将个别简单步骤进行自动化实现,具体命令可百度

测试步骤:

1.启动测试工具,增加需监控的应用,设置监控指标以及根据需要进行logcat以及弱网的设置

2.启动被测应用,进入测试场景,等1分钟数据平稳

3.启动监测工具,点击启动监控案件

4.测试时间完成后,点击停止监控,数据保存到提示的存储目录

数据分析:

1.CPU:当前每次记录的耗损,计算平均值即可

2.内存:当前应用每次记录占用整机内存,计算平均即可

3.数据上传下载:记录的数据为持续增长性,即操作应用10分钟,导出的文本数据:[last数据-first数据=测试时间内消耗的数据流量]

 

android-【DDMS->heap】工具-内存检测工具(内存泄露的检测工具)内存测试:安装android-studio,安装SDK并配置

Heap监测应用进程-内存使用情况

1.      

打开DDMS视图

 

1. 启动eclipse后,切换到DDMS透视图,并确认Devices视图、Heap视图都是打开的;


2. 将手机通过USB链接至电脑,链接时需要确认手机是处于“USB调试模式,而不是作为“Mass Storage”


3. 链接成功后,在DDMSDevices视图中将会显示手机设备的序列号,以及设备中正在运行的部分进程信息;


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 objectTotal Size值;
b) 正常情况下Total Size值都会稳定在一个有限的范围内,也就是说由于程序中的的代码良好,没有造成对象不被垃圾回收的情况,所以说虽然我们不断的操作会不断的生成很多对象,而在虚拟机不断的进行GC的过程中,这些对象都被回收了,内存占用量会会落到一个稳定的水平;
c) 反之如果代码中存在没有释放对象引用的情况,则data objectTotal Size值在每次GC后不会有明显的回落,随着操作次数的增多Total Size的值会越来越大,
    直到到达一个上限后导致进程被kill掉。
d) 此处已system_process进程为例,在我的测试环境中system_process进程,所占用的内存的data objectTotal Size,正常情况下会稳定在2.2~2.8之间,而当其值超过3.55后进程就会被kill

 Android手机APK功耗、流量、内存测试方法_第3张图片

 

在我们的程序中,要是出现某个进程出现了不断增加的现象,可能该应用就存在泄漏的问题。如果某个进程在操作过程中出现程序崩溃,可能该应用程序已申请不到空间,可能存在内存泄露。

 

 

内存抖动:

使用AndroidStudio工具:

Android手机APK功耗、流量、内存测试方法_第4张图片

勾选EnableADBIntergration

Android手机APK功耗、流量、内存测试方法_第5张图片

勾选待测试的包以及选择视图

 

内存尽量测试单一场景,便于分析

 

内存泄漏场景设计思维:

在执行第一次时,进入测试场景GC后,若存在泄露,在第二次进入后,同样GC回收后,如果依然泄露,那么会在上一次基础上造成内存增长,保持一个持续增长的趋势,从而达到测试目的,也同样测试出在该场景可能存在泄露问题

 

下载“”蜜源app“”,0投资,既省钱,又可以赚钱(平台会付给我邀请费3元每人,激活后,你也可以邀请其他人赚邀请费):
Step 1: 应用宝或者苹果商店下载“蜜源”,这样下载比较安全,经过平台的病毒等检测
Setp 2: 使用手机注册后,需要激活码激活,输入 FaIlFA 激活即可
不懂得,可以私信聊

 

你可能感兴趣的:(android,手机,流量,测试工具,测试)