Android应用性能测试之CPU和内存占用
最近发现自己学的很多东西没有做好积淀的工作,也萌生了写一些东西的念头。本人也没有写博客的习惯,下边就写一下手机端的性能测试。
最近公司,要我们从事对竞品的性能测试,我负责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和内存占用的更多相关文章
- [Android Pro] Android应用性能测试之CPU和内存占用(转载)
首先稍做分析一下测试环境:我们知道CPU和内存占用是一个实时变化的状态,而市面上还没有具体的哪款android应用能做到实时监控CPU和内存占用并使用log日志保存.考虑到android的底层框架是基 ...
- .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
原文:.NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用? 都知道可以在任务管理器中查看进程的 CPU 和内存占用,那么如何通过 .NET 编写代码的方式来获取到 ...
- Android 性能测试之CPU
接上一篇 CPU跟内存一样,存在一些测试子项,如下清单所示 1.空闲状态下的应用CPU消耗情况 2.中等规格状态下的应用CPU消耗情况 3.满规格状态下的应用CPU消耗情况 4.应用CPU峰值情况 C ...
- Android App性能测试之adb命令
本篇文章总结了Android App性能测试过程中常用的adb命令.通过这些adb命令,可以查看App的性能数据,为评判性能好坏作参考. CPU相关 显示占用CPU最大的5个应用 adb shell ...
- ElasticSearch CPU和内存占用高的优化记录
公司最近使用ElasticSearch作为数据报表汇总引擎.上线三个月累计数据800万,但是今天突然大面积出现查询超时,上服务器查看服务运行情况,发现cpu使用率高达300% mem 使用率也到了90 ...
- ps查看CPU和内存占用前10的进程
内存增序 ps aux --sort rss 内存减序 ps aux --sort -rss cpu增序 ps auxw --sort=%cpu cpu减序 ps auxw --sort=-%cpu ...
- 解决Antimalware Service Executable CPU,内存占用高的问题
1.win键+R键打开运行对话框框,输入gpedit.msc打开本地组策略编辑器(组策略):2.依次打开计算机配置-管理模板-Windows组件-Windows Defender:3.如果要关闭Win ...
- Android APP 性能测试之 GT 工具
一.介绍: GT(随身调)是 APP 的随身调测平台,它是直接运行在手机上的"集成调测环境"(IDTE, Integrated Debug Environment).利用 GT,仅 ...
- 《Android应用性能优化》2——内存、CPU、性能测评
4.高效使用内存 4.1 说说内存 Android设备的性能主要取决于以下三因素: CPU如何操纵特定的数据类型: 数据和指令需占用多少存储空间: 数据在内存中的布局 4.2 数据类型 int和lon ...
随机推荐
- samba配置(基础版)
1. 下载及安装Samba 推荐用yum来安装,这样它可以自己解决包的依赖关系,省时.省事又方便.一条命令搞定: yum -y install samba 2. 配置Samba 关于Samba的配 ...
- 一般css样式开头公共部分
@charset "utf-8"; /* CSS Document -- skyren */ body { font-family: "微软雅黑", Arial ...
- 批量创建IP方法
以下教程,将告诉大家如何在Windows系统中通过命令行,批量添加IP.目标,在本机的的网卡名称为“本地连接”的网卡中,批量添加192.168.1段的ip地址,起开始IP为10,每次增加1,知道22为 ...
- git日志--log
1. 查找改动某个文件所有的日志 git log --pretty=oneline somefile.java git log --oneline somefile.java git log --pr ...
- Ansible4:Ad-hoc与命令执行模块【转】
Ad-Hoc 是指ansible下临时执行的一条命令,并且不需要保存的命令,对于复杂的命令会使用playbook.Ad-hoc的执行依赖于模块,ansible官方提供了大量的模块. 如:command ...
- 【实验室笔记】太阳能板清洁器DEMO
<太阳能板清洁器DEMO>2015年的毕昇杯比赛作品,用时两天,整体设计思路很简单: [机械结构]: 清洁器主体采用角钢搭建,用钢锯切割好以后,上螺丝,走线用的尼龙扎带捆绑: 清洗滚轮采用 ...
- cornerstone 怎么使用
Cornerstone的逻辑很清晰,界面打开后,左边栏上下分开,上面是working copies的列表,下面是REPOSITORIES的列表.常见的功能基本上跟windows一样,在上下文中可以得到 ...
- cisco 2950 3550 3750 系列交换机密码破解
破解密码原则:只删除密码 ,不破坏配置#本文中的#号表示注释的意思#第一步. 连接交换机的console口到终端#第二步. 按住交换机面板上的mode键的同时 插入电源,直到sys灯不闪,常亮再松开m ...
- Spring 实例化bean的三种方式:
方法一:使用构造器实例化bean java代码: package com.model; public class User { private String username; public User ...
- python 多线程 paramiko实现批量命令输入输出
远程批量执行命令 实现多线程执行 速度快 实现多并发登录 #-*- coding: utf-8 -*- #!/usr/bin/python import paramiko import threadi ...