Android性能测试之概述(一)

原创 2015年11月18日 19:39:36

我们知道,当一个软件功能测试进行得比较稳定的时候,将会进行软件的调优,给用户的第一印象是功能,但是能不能留住用户,就是性能了。

本篇将会讨论关于Android中几个最重要的性能指标,将对性能这个玩意有一个整体的认知,之后的篇幅将会对这几个指标的原理以及测试方法做一个全面的讲解。


指标:时延(流畅度) 内存 CPU 流量 功耗 5大块


时延:    

时延指的是时间延迟了,我把它和流畅度归类到一起了。

这里如果设计测试场景的话,涉及到比较简单的几个方面:

第一次加载应用

非第一次加载应用

各个页面滑动的流畅度

衡量的方法也是非常简单,logcat只要过滤Displayed标签就可以得到各个Activity启动的时间,当然我们一般加上ActivityManager这个标签表示启动的哪一个activity


如图了,+428ms就是我们需要的数值了。

对于流畅度,安卓也提供了方法给我们

首先,打开开发者调试--监控--GPU呈现分析--选择在adb shell dumpsys gfxinfo这一项

打开之后只要在操作某一步骤之后输入命令dumpsys gfxinfo这个命令就可以取到GPU绘制的相关信息,打开这个文件找到Profile data in ms这个字段,就可以看到是否流畅了,一般而言ms数不要超过16ms就算ok


这张图我做的操作只是滑动一个自定义控件得到的数值。

当然,这个文件的其他部分也是很有意思的,有兴趣可以看看,以后看时间写一下各个字段含义

最后,衡量流畅度还有帧率(第三方软件还是很多的),屏幕过度绘制等等指标。


内存:

内存

android内存分为两部分 native和dalvik  其中bitmap是算在native里面的 而dalvik是java的代码堆

我们可以直接通过dumpsys meminfo [packagename]这条命令列出进程相关内存状态


具体解释内容放在提高篇再详细写吧,不过先记几个概念再说:

vss:虚拟机的内存
rss:实际占用的内存,包含共享内存+私有内存
pss:私有内存和共享内存的平均,即总的共享内存/各个应用+私有内存
uss:就是私有内存

上面4个参数还是挺重要的。


CPU:

CPU可能是性能最简单衡量的一个了,直接调用linux命令的top,就直接打出来了,不过说,常用两个参数

-m   mun打印出前面多少各进程

-s    sort,按什么顺序排列,有cpu vss虚拟机内存 rss实际内存 thr线程


流量:

测试流量两种方法,第一种直接用市面上的第三方工具统计,本质就是调用api接口,安卓给我们封装了一个非常好用的接口TrafficStats,强大的类,强大的方法,如果怕第三方本身就是耗流量的也可以自己实现apk去统计,更加准确。

第二种方法就是直接读取应用的流量统计数据文件,安卓的类统计本质上就是读取这个文件+计算得到的,本人还是建议用api接口把,简单,强大。

linux目录在/proc/[uid]/net/dev这个目录,UID的获取可以用dumpsys package [packageName]得到,UID是个啥?简单的说就是用来区分应用程序的一个id,且每个机型都是唯一的,UID相同才能互相访问资源,保护应用的安全....等等特性了。


功耗:

就是耗电,自带的统计就可以看到了,记得很多人研究过耗电,但是都没有结果,原因是耗电这个数据差异性太大,尤其是通过软件的检测,所以这个玩意只能作为一个参考,正真的大公司都是通过硬件检测电流来计算的,打算用一个篇幅学习一下耗电的原因和api统计耗电的实现。

好了,今天就写这么多吧,下班,回家!



版权声明:本文为博主原创文章,转载请说明出处! 举报

相关文章推荐

移动端性能测试概述

随着移动设备的普及和使用范围越来越广,APP的性能测试变的越来越重要。比起之前的性能测试,APP性能测试有着自己的特色和KPI,难度也随之增加。 APP的自动化测试工具发展跟不上设备的发展速度,虽然...
  • tsr106
  • tsr106
  • 2015-12-07 14:57
  • 2074

Prestodb概述及性能测试

概述内容 (1)简介 (2)Hive and Prestodb, comparison of functionality (3)Hive and Prestodb, comparis...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

Java性能优化指南系列(一):概述和性能测试方法

Java性能分析是一门艺术和科学;科学指的是性能分析一般都包括大量的数字、测量和分析。绝大多数的性能工程师都有科学背景,运用科学的严谨是获取最大性能的重要组成部分。艺术部分指的是什么呢?性能调优是部分...

强烈推荐转载-Android 性能测试

关于Android的性能测试,看到一篇很好的文章,转载过来和大家分享下。    Android性能测试,跟pc性能测试一样分为客户端及服务器,但在客户端上的性能测试分为 2 类,对于应用性能测试,...

Android 性能测试之TraceView的使用

Traceview是android平台配备一个很好的性能分析的工具。它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到method。 在SDK路径\tools目录下. ...

Android性能测试工具 之Emmagee

Emmagee是监控指定被测应用在使用过程中占用机器的CPU、内存、流量资源的性能测试小工具。 支持SDK:Android2.2以及以上版本   Emmagee功能介绍 1、检...

Android应用性能测试

最近发现自己学的很多东西没有做好积淀的工作,也萌生了写一些东西的念头。本人也没有写博客的习惯,下边就写一下手机端的性能测试。   最近公司,要我们从事对竞品的性能测试,我负责CPU和内存的性能测试,...

android性能测试工具之dumpsys

该命令用于打印出当前系统信息,默认打印出设备中所有service的信息,可以在命令后面加指定的service name. 有两种方法可以查看service list: 1. adb she...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)