最近发现自己学的很多东西没有做好积淀的工作,也萌生了写一些东西的念头。本人也没有写博客的习惯,下边就写一下手机端的性能测试

  最近公司,要我们从事对竞品的性能测试,我负责CPU和内存的性能测试,下面就和大家来分享一下android应用程序的CPU和内存的性能测试。

  首先稍做分析一下测试环境:我们知道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的表格中,并画出相应的数据表。

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

  大家有什么看法意见,请及时拍砖~

Android应用性能测试之CPU和内存占用的更多相关文章

  1. [Android Pro] Android应用性能测试之CPU和内存占用(转载)

    首先稍做分析一下测试环境:我们知道CPU和内存占用是一个实时变化的状态,而市面上还没有具体的哪款android应用能做到实时监控CPU和内存占用并使用log日志保存.考虑到android的底层框架是基 ...

  2. .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?

    原文:.NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 都知道可以在任务管理器中查看进程的 CPU 和内存占用,那么如何通过 .NET 编写代码的方式来获取到 ...

  3. Android 性能测试之CPU

    接上一篇 CPU跟内存一样,存在一些测试子项,如下清单所示 1.空闲状态下的应用CPU消耗情况 2.中等规格状态下的应用CPU消耗情况 3.满规格状态下的应用CPU消耗情况 4.应用CPU峰值情况 C ...

  4. Android App性能测试之adb命令

    本篇文章总结了Android App性能测试过程中常用的adb命令.通过这些adb命令,可以查看App的性能数据,为评判性能好坏作参考. CPU相关 显示占用CPU最大的5个应用 adb shell ...

  5. ElasticSearch CPU和内存占用高的优化记录

    公司最近使用ElasticSearch作为数据报表汇总引擎.上线三个月累计数据800万,但是今天突然大面积出现查询超时,上服务器查看服务运行情况,发现cpu使用率高达300% mem 使用率也到了90 ...

  6. ps查看CPU和内存占用前10的进程

    内存增序 ps aux --sort rss 内存减序 ps aux --sort -rss cpu增序 ps auxw --sort=%cpu cpu减序 ps auxw --sort=-%cpu ...

  7. 解决Antimalware Service Executable CPU,内存占用高的问题

    1.win键+R键打开运行对话框框,输入gpedit.msc打开本地组策略编辑器(组策略):2.依次打开计算机配置-管理模板-Windows组件-Windows Defender:3.如果要关闭Win ...

  8. Android APP 性能测试之 GT 工具

    一.介绍: GT(随身调)是 APP 的随身调测平台,它是直接运行在手机上的"集成调测环境"(IDTE, Integrated Debug Environment).利用 GT,仅 ...

  9. 《Android应用性能优化》2——内存、CPU、性能测评

    4.高效使用内存 4.1 说说内存 Android设备的性能主要取决于以下三因素: CPU如何操纵特定的数据类型: 数据和指令需占用多少存储空间: 数据在内存中的布局 4.2 数据类型 int和lon ...

随机推荐

  1. 利用redis做频率限制第一篇

    public Result checkRateLimit(String clientIp, int ipTime, int ipCount) { // 每个ip的redis的key都不一样 Strin ...

  2. cmd命令行

    拷贝

  3. Eclipse配置--智能补全

    定位到:Windows→Preferences→Java→Editor→Content Assist 将Auto Activation triggers for java的默认值“.”修改为" ...

  4. Eclipse 安装 HDFS 插件

    Eclipse 安装 hdfs 连接插件 1.插件安装 在$HADOOP_HOME/contrib/eclipse-plugin/文件夹中有个hadoop-eclipse-plugin-0.20.20 ...

  5. flex日期合并与拆分

    <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...

  6. linq any() all() 返回true 或者false

    一.any()只要有一个符合条件就返回true static void Main(string[] args) { //any 有符合条件的就返回true ,,,,,,,,,}; ); Console ...

  7. phonegap的照相机API

    1. Camera Api简单介绍 2. 拍照 3. 预览照片 一. Camera Api简单介绍 Camera选择使用摄像头拍照,或从设备相册中获取一张照片.图片以base64编码的 字符串或图片U ...

  8. 20160128_关于SVN提交不了并且还提示升级的解决方法

    因为是在项目中新增了文件夹,可能是直接在文件夹里放入文件,导致svn没有读取到文件信息,所以提交不了. 搞了一晚上,蛋疼死,解决方法:把新增的文件夹复制出来,删掉里面的 .svn文件夹.然后删掉项目里 ...

  9. C# 截取字符串某个字符分割的最后一部分

    例如 string s1="123.456.789",想截取得到的新字符串为“789” 代码如下: string s1 = "123.456.789"; str ...

  10. List<string[]> 如何去重

    List<string[]> 如何去重,代码如下: static void Main(string[] args) { List<string[]> list = new Li ...