读取性能测试安卓软件,快速测试Android应用性能

动机

这篇文章的目的是为了给懒人一个快速测试Android应用的方法. 能够在不多的时间内更有效率的发现移动应用的性能问题.

准备

在进行测试之前, 首先要确认一下是否已经准备好了所需要的工具:

待测应用(最好是debug版本)

这个不必多说, 功能不完备, 或者还存在突出功能bug的应用还是先修好再测试吧. 需要非混淆的debug版本是为了测试内存泄露.

Android SDK 工具

Android SDK中提供了各种各样的工具, 我们可能会需要:

adb

DDMS

hprof-conv (转换ddms上dump下来的prof文件用)

抓包工具Fiddler/Charles/Wireshark (会一种就可以)

Android Studio

MAT

Uiautomator Viewer

开始测试

CPU占用

既然是快速测试,我们只关注一个点: 静默时的内存消耗

你可以进入自己想要测试的画面, 反复操作几次, 放置一段时间, 不需要太长, 半分钟就可以. 然后观察CPU的消耗.

如果对于数据展示不挑剔的话, 可以使用top命令:

adb shell "top -n 50 -d 1 | grep my.app.packagename$"

my.app.packagename是待测应用的包名

-n 参数代表输出行数

-d 参数代表输出的间隔

这段命令就是用top命令打印出来 my.app.packagename 这个包的cpu占用和内存使用情况, 每隔1秒, 打印出来一条, 一共输出50条

如果发现CPU的在应用的idle状态下仍然持续占用, 就说明是程序的bug了.

Android Studio中集成了CPU的观察工具, 如果是debug包, 可以通过Android Studio上的CPU窗口直观的观察CPU占用情况.

内存泄露

内存泄露是Android开发上很容易发现的问题. 可以集成第三方的泄露工具进行监控. 也可以使用DDMS + MAT(Eclipse Memory Analyser Tool) 进行分析. 需要debug且最好非混淆的apk包.

具体步骤:

从手机上进入应用, 进入要测试的页面, 进行操作. 这里建议同样的操作反复执行2~3次.

打开DDMS, 通过USB连接手机. 操作结束后GC 1~2次. 然后dump prof文件.

使用 hprof-conv 转化 prof 文件, 例如, 转换 xxx.prof 文件为 result.prof文件

hprof-conv xxx.prof result.prof

使用MAT打开转换后的prof文件. MAT会自动分析文件, 然后会提示你选择何种类型的报告, 不用选择任何形式的报告, 直接cancel.

点开 Histogram 在 Class Name 栏搜索 "activity". 搜索的结果上, Objects列不为1的对象就是泄露的对象.

流量占用

移动端的流量使用尽可能小, 接口调用次数尽可能少, 网络图片尽可能小, 数据传输不要太大.

通过抓包工具进行抓包. 抓到的结果中:

查看总的流量, 一般不要太大. 打开单个页面不宜超过 400KB. 因为3G下我们的网速可能会在50KB~80KB 之间, 使用5秒钟以上打开一个页面, 体验不会好.

查看单个链接, 不应该有重复的链接.

观察图片大小, 单张图片超过 50KB 都需要我们给与足够重视.

idle状态下是不是会有持续的网络传输. 如果有, 就应该仔细调查一下.

图层

使用Uiautomator Viewer观察视图结构, 越复杂描画代价越高.

总结

性能测试包含其实很广, 也涉及到比较深入的内容. 本文希望能够通过尽量简单的步骤, 让每个人都能快速的发现应用瓶颈.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值