百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

Android APP性能测试上篇--启动时长、内存

xsobi 2024-12-24 16:26 9 浏览

如图所示,列出了目前app主要的一些性能指标,以及对应使用的测试工具。

普遍的app性能测试,主要是以下几类:启动时长、内存、cpu、FPS (app使用的流畅度)、GPU过度渲染、耗电、耗流、crash崩溃。除了这些还有手机版本号兼容性,屏幕分辨率兼容性,稳定性测试,安全测试等。

由于性能测试内容篇幅较大,因此我这里将所有内容分拆为上、中、下三篇来展开介绍。上篇介绍启动时长、内存的测试,中篇介绍CPU、FPS,下篇介绍GPU渲染、耗电量、网络流量消耗、crash崩溃。

1. 启动时长

软件的响应时间和响应速度直接影响到用户的体验度,如果一个软件,迟迟加载不出来,会直接影响到软件的日活、留存。因此对于一个软件,对响应速度测试是必不可少的。

1.1主要测试点

主要测试点为以下5类,在项目中,主要测试关注点是冷启动,热启动:

1)冷启动:首次启动app的时间间隔(只是启动时间,不包括页面加载)

2)热启动:非首次启动app的时间间隔(只是启动时间,不包括页面加载)

3)完全启动:从启动到首页完全加载出来的时间间隔

4)有网启动:从发起跳转,到页面完全加载出来的时间间隔

5)无网启动:从发起跳转,到页面完全加载出来的时间间隔

1.2 测试方法

1)使用adb命令

(1) 冷启动

adb shell am start -W packageName/ActivityName(绝对路径,首个Activity)

含义:

TotalTime: 应用自身启动耗时, ThisTime+应用application等资源启动时间;

WaitTime: 系统启动应用耗时, TotalTime+系统资源启动时间

(2)热启动:按back按键后再启动adb命令

adb shell am start -W packageName/ActivityName

测试标准:冷启动时间不超过1.5s, 热启动不超过1s.

2)使用一些测试工具,比如teslin云测平台、UI自动化测试场景分析。

(1)在teslin云测平台上,机型为100,以手上测试APP为例,测得的启动耗时如下图

(2)在UI自动化测试场景上得到的APP启动耗时如下图

3)使用AndroidStudio的logcat日志获取应用的响应时间

4)代码日志输入查看

直接源码打日志,输入各个位置的耗时操作最为有效,需要源码。

5)借用工具,高速相机,但是成本较高。


2. 内存

在Android系统中,每个APP进程除了同其他进程共享内存(shared dirty)外,还独用私有内存(private dirty),通常我们使用PSS(私有内存+比例分配共享内存)来衡量一个APP的内存开销。由于一个移动设备的内存是固定的,如果内存消耗过大就会造成应用卡顿或者闪退,需要对内存进行测试。正常情况下,应用不应占用过多的内存资源,且能够及时释放内存,保证整个应用内的稳定性和流畅性。

2.1主要测试点

1)空闲状态:切换至后台或者启动后不做任何操作,消耗内存最少。

2)中强度状态:时间偏长的操作应用。

3)高强度状态:高强度使用应用,可以跑monkey来测试(通常用来测试内存泄漏)。

2.2 测试方法

1)使用adb命令: adb shell dumpsys meminfo packageName获取应用包名和Actively:

输入:adb shell dumpsys window | findstr mCurrentFocus,获取包名

输入:adb shell dumpsys meminfo packageName,获取内存使用情况

测试关注点:

(1)Native heap alloc:JNI层的内存分配

(2)Dalvik heap alloc:Java层的内存分配

(3) PSS

分析:

(1)若Native heap alloc和Dalvik heap alloc的值一直增长,则应用程序可能出现了内存泄漏。

(2)Total的PSS:应用真正占据的内存大小,此处为559455.

2)使用性能测试工具:GT (腾讯开发的性能测试app)

GT除了支持Android,同样支持ios。涉及功能:性能测试(CPU、内存、流量、电量、帧率/流畅度等等)、开发日志的查看、Crash日志查看、网络数据包的抓取、APP内部参数的调试、真机代码耗时统计。

3) 使用一些测试工具,比如teslin云测平台

以手上测试APP为例,其内存占用测试结果如下图所示:

4) 使用AndroidStudio 自带 CPU 和内存检测功能

Android Monitor 可以检测CPU 和内存,能够绘制出变化图,可以直观明了的看出内存和cpu的变化曲线。

关注点:

(1)退出某个页面后,内存是否有回落。

如果没有及时回落,且程序自动GC或者手动GC,那便可确认有问题。

(2)进行某个操作后,内存是否增长过快。

如果增长过快,也有可能存在风险,需重复操作确认。

以上便是性能测试上篇的内容。


都看到这里了,动动你的小手,来波收藏、转发、关注、点个赞呗[心][心][心]

相关推荐

高并发基础-一文带你了解Redis及其常见用法与应用场景

1.概述Redis是一个键值对存储的存储系统;一般用做缓存比较多,也可以将其作为数据库及消息中间件使用。传统应用中,数据存储在关系型数据库中,前端请求到来时通过SQL语句查询关系型数据库中的数据并返...

Python中的函数注释:参数有冒号,声明后有-> 箭头

我在查看python的fixture源码时发现fixture的方法定义形式如下:deffixture(fixture_function:Optional[_FixtureFunctio...

干货!SQL性能优化,书写高质量SQL语句

写SQL语句的时候我们往往关注的是SQL的执行结果,但是是否真的关注了SQL的执行效率,是否注意了SQL的写法规范?以下的干货分享是在实际开发过程中总结的,希望对大家有所帮助!1.limit分页优化...

一起学《C程序设计》第十课——结构体、共用体以及枚举类型

注意,请认真学习完《C程序设计(第五版)》第九章后再阅读本文会有更大的收获。结构体作用与定义前面我们学习过C语言的数组,C语言的数组在使用上有一定的局限性,比如我们常使用的一维数组一旦定义了就只能接纳...

8 种最坑的SQL错误用法,你有没有踩过?

来源:yq.aliyun.com/articles/725011、LIMIT语句2、隐式转换3、关联更新、删除4、混合排序5、EXISTS语句6、条件下推7、提前缩小范围8、中间结果集下推总结sq...

ArkTS基础语法:从声明到类型的深度解析

#ArkTS基础语法:从声明到类型的深度解析在鸿蒙应用开发的领域中,ArkTS作为重要的编程语言,其基础语法是开发者们必须掌握的关键内容。今天,我们就围绕ArkTS的声明和类型相关知识展开深入探讨,...

8 种最坑的 SQL 错误用法,你有没有踩过坑?

原文作者:程序员追风01、LIMIT语句分页查询是最常用的场景之一,但也通常也是最容易出问题的地方。比如对于下面简单的语句,一般DBA想到的办法是在type,name,create_time...

Python常用数据类型及其用法-总结篇

前言在前面的文章中,我们介绍了Python常用的数据类型及其相关方法,分别为:《Python列表详解》《Python元组与字典用法详解》《Python集合详解》《Python字符串》与我们软件开发或测...

贯穿知识点看“线”(名师知识点总结训):状语从句

添加关注不迷路!!!状语从句状语从句有时间、地点、原因、目的、结果、条件、方式、比较和让步状语从句,共9种,是每年必考的语法项目,主要考查连词的判断选用,主句与从句谓语动词的时态运用。其中,以对时间状...

C++关键字介绍(c++语言中常用的关键字含义)

下表列出了C++中的常用关键字,这些关键字不能作为变量名或其他标识符名称。1、autoC++11的auto用于表示变量的自动类型推断。即在声明变量的时候,根据变量初始值的类型自动为此变量选择匹配的...

核心词汇aboard,abroad和board用法解析

1.aboardadv./prep.在船上;在(船、飞机、公共汽车、火车等)上;上(船、飞机、公共汽车、火车等)意为“在公共汽车/船/火车/飞机上;上公共汽车/船/火车/飞机”,可作介词式副词。Th...

Excel VBA小技巧:Areas集合,你不知道的多区域操作神器

大家好!今天我们来聊聊ExcelVBA中一个超级实用但经常被忽视的功能——Areas集合。如果你经常需要处理不连续的多区域操作,这篇文章绝对能让你眼前一亮!什么是Areas集合?简单来说,Areas...

Flink用法介绍(flink的使用场景)

自定义source只需要传入一个SourceFunction即可val stream4 = env.addSource( new MySensorSo...

amiable与amicable 用法辨析(able和capable的区别)

1.amiable/'emibl/用于指人,其意义为:“友好的”“和蔼的”(friendly,good-natured,good-humored):Thenext-doorneighbou...

常考词汇in terms of用法解析(in terms of doing)

intermsof含义较多,要根据上下文来判断,如:1.intermsof用……术语(话、字眼、口吻)Hereferredtoyourworkintermsofhighpr...