博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Android Pro] Android应用性能测试之CPU和内存占用(转载)
阅读量:5922 次
发布时间:2019-06-19

本文共 1151 字,大约阅读时间需要 3 分钟。

首先稍做分析一下测试环境:我们知道CPU和内存占用是一个实时变化的状态,而市面上还没有具体的哪款android应用能做到实时监控CPU和内存占用并使用log日志保存。考虑到android的底层框架是基于Linux的平台,所有我们可以通过Linux的资源监控命令来实现对android平台的资源实时监控。

  要做到上边的测试环境的实现,需要具备以下几点:

  1、被测试的手机具备root权限:因为涉及到底层的linux命令,需要读取或执行相应的文件。至于如何root你的手机,不同型号的手机root的方法不一样,这里就不做介绍了。具体的可以在网上搜索一下自己手机型号的root教程,这里就不做介绍了。

   2、需要搭建android的开发环境:因为我们需要监控的是具体的某个应用资源占用的情况,所以需要知道这个应用对应的“安装的包名”是什么,这就需 要使用android开发环境中DDMS模块中的Devices中查看,当启动被测软件时,其主应用程序的安装包名一般就会在列表的最下端出现(如 google地图等除外,开机就启动了)。

  

  通过上边的截图我们可以看到百度地图的主程序包名为:com.baidu.BaiduMap

  由于篇幅有限,具体的android开发环境的搭建流程,可以参见网络上的教程,这里就不赘述了。

  3、通过Linux命令监控。前边都是一些初始的准备条件,下边其实就是实际的操作流程:

  (1)adb shell (进入linux的底层)

  (2)echo 3>/proc/sys/vm/drop_caches (清除一下系统cache)

  (3)top -d 1 | grep com.baidu.BaiduMap (以百度地图为例,每一秒打印一次资源利用情况)

  

  至于上边每一列代表什么含义呢?由于使用到了复合查询“管道符”的方式,所以必须拥有root权限,否则grep的命令无法识别。

  在这里我们看到cmd并没有显示出所对应的列的标题,所以我们可以单独通过top命令来了解到:

  

  至于以上各列的含义我不说我想大家也应该猜得到了,在这里仅说一下我们要用到的两个参数,其他的可以再网上查询了解:

  |--CPU%:CPU占用率

  |--RSS:实际占用的物理内存数,单位KB

  我们可以针对不同的业务,打印出不同的“标签”,用于区别现在从事的那个业务,并为后期分析各业务模块中CPU和内存的占用以及对比使用。

  

  上边就是对具体的某款android应用的评测的数据的获取,我们将日志复制到excel的表格中,并画出相应的数据表。

  最后,可以根据得到的图表进行性能分析(多款同类软件进行比较),得出本公司软件的评审标准出来。

转载地址:http://lwivx.baihongyu.com/

你可能感兴趣的文章
【Two Sum】cpp
查看>>
【Jump Game II 】cpp
查看>>
HDU 2563 统计问题(递归,思维题)
查看>>
iOS6 自适应旋转处理
查看>>
练习使用DBHelper(代替JDBC)
查看>>
Swift ios应用开发实践
查看>>
OC中如何对内存进行管理的
查看>>
黄聪:WordPress图片插件:Auto Highslide修改版(转)
查看>>
矩阵点乘
查看>>
C++类的动态加载
查看>>
java设计模式-工厂模式
查看>>
iOS-开发者相关的几种证书(转)
查看>>
sql 中的 STUFF()使用说明,以及千分位的常用函数
查看>>
one()方法的介绍
查看>>
斐波纳契数列非递归(C#)
查看>>
PyCharm安装及调试
查看>>
Android自定义XML属性
查看>>
C#判断WebService接口是否可用
查看>>
分享一个Eclipse代码配色教程与颜色主题插件
查看>>
deque简单解析
查看>>