服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Android - Android APP性能测试--GPU、耗电、流量、crash、 lint警告

Android APP性能测试--GPU、耗电、流量、crash、 lint警告

2021-08-23 23:43测试小哥在路上 Android

本篇我们来介绍Android APP性能的GPU渲染、耗电量、网络流量消耗、crash崩溃检测、lint警告这5个模块。

本篇我们来介绍GPU渲染、耗电量、网络流量消耗、crash崩溃检测、lint警告这5个模块。

Android APP性能测试--GPU、耗电、流量、crash、 lint警告

1.GPU渲染

GPU渲染是指在一个像素点上绘制多次(超过一次):显示一个什么都没有做的activity界面算作画了1层,给activity加一个背景是第2层,在上面放了一个Text View(有背景的Text View)是第3层,Text View显示文本就是第4层,仅仅只是为了显示一个文本,却在同一个像素点绘制了四次,这是一定要优化的。过度绘制对动画性能的影响是极其严重的,如果你想要流畅的动画效果,那么一定不能忽视过度绘制。

1.1 测试方法

1)手机自动的Debug GPU overdraw

  • 打开手机—>设置—>开发者选项—>调试GPU过度绘制—>显示过度绘制区
  • 打开被测的应用

GPU过渡渲染不同的颜色代表不同的绘制程度

  1. 原色:无过渡绘制
  2. 蓝色:绘制一次 (理想状态)
  3. 绿色:绘制二次
  4. 浅红:绘制三次 (可以优化)
  5. 深红:绘制四次 (必须优化)

测试指标:

  • 控制过渡绘制为2x
  • 不允许存在4x过渡绘制
  • 不允许存在面积超过屏幕1/4的3x过渡绘制

2.耗电量

测试应用对电量的消耗前需要对手机本身的电量消耗有个大概了解,测试前先看规定时间内手机正常待机下(重启后待机)电量消耗为多少。然后再启动待测试APP看看消耗的电量增加了多少,然后取两者之间的差值。

2.1测试点

  • 测试手机安装目标APK前后待机功耗无明显差异;
  • 常见使用场景中能够正常进入待机,待机电流在正常范围内;
  • 长时间连续使用应用无异常耗电现象。

2.2 测试方法 :

前提:先关闭所有的应用,再打开被测app

  • 使用第三方测试工具:GT等,只需要测试的电流静置一晚,待机电流在正常范围内即可。一般是被测应用对比待机电流<=2mA。
  • 使用adb命令

具体测试方法如下:

1. 测试环境:

  • 1)android手机,wifi/4g

2. 测试步骤:

  • 清除已有的耗电量数据
  1. adb shell dumpsys batterystats --enable full-wake-history 
  • 设备耗电量数据重置
  1. adb shell dumpsys batterystats --reset 
  • 打开应用,测试场景(注意测试时手机不能连电脑)
  • 导出应用耗电信息
  1. adb shell dumpsys batterystats 包名| more > C:\Users\charles\Desktop\a.txt 

3. 网络流量消耗

  • 中等负荷:应用正常操作;
  • 高负荷:应用极限操作。

3.1测试点

  • 应用首次启动流量值
  • 应用后台连续运行 2 小时的流量值
  • 应用高负荷运行的流量峰值
  • 应用中等负荷运行时的流量均值

3.2测试方法 :

1) 通过adb shell dumpsys package来获取被测应用的uid信息,在未操作应用之前,通过查看

  1. adb shell cat /proc/uid_stat/uid/tcp_rcv  
  2. adb shell cat /proc/uid_stat/uid/tcp_snd 

获取到应用的起始的接收及发送的流量。Android系统自带统计功能(总体流量数值)Proc/uid_stat/{UID}/tcp_snd和tcp_rcv。

  1. UID是每个app安装时候分配的唯一编号用于识别该app.
  2. tcp_snd:表示发送数据累计大小,单位是字节
  3. tcp_rcv:表示接收到的数据累计大小。

在操作应用后,再次通过上述命令获取到应用的结束时接收及发送的流量,通过相减即得到应用的整体流量消耗。

2)使用第三方测试工具:GT等。TrafficStats类是Android提供的一个流畅统计类,可以统计手机开机累计到现在使用的流量,也可以统计某个或者多个进程或者应用所使用流量,包括Wi-Fi和移动数据GPRS。

GT使用

TrafficStats.getUidTxBytes(uid)来获取流量数据(该方法号称是获取到指定 uid 发送流量的总和,但实测情况是只有 tcp 层的流量)。

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

以手上测试APP为例,其网络流量测试结果如下图所示:

Android APP性能测试--GPU、耗电、流量、crash、 lint警告

4.crash崩溃

通过查看bugly的崩溃反馈,明确出现崩溃的版本和模块。

常见模块及其关键字对照:

  • login :账号
  • videodetail :短视频
  • ad :广告

5. lint警告

Lint 是Android Studio 提供的代码扫描分析工具,它可以帮助我们发现代码结构/质量问题,同时提供一些解决方案,而且这个过程不需要我们手写测试用例。

Lint 发现的每个问题都有描述信息和等级(和测试发现 bug 很相似),我们可以很方便地定位问题,同时按照严重程度进行解决。

查询方式:android studio里面的 Analyze->Inspect Code

Android APP性能测试--GPU、耗电、流量、crash、 lint警告

查询结果:

Android APP性能测试--GPU、耗电、流量、crash、 lint警告

以上便是性能测试下篇的内容,截止到这里,也算是把APP性能测试主要关注的点都讲了一下。

原文地址:https://www.toutiao.com/a6998338960191668748/

延伸 · 阅读

精彩推荐
  • AndroidAndroid界面效果UI开发资料汇总(附资料包)

    Android界面效果UI开发资料汇总(附资料包)

    android ui界面设计,友好的界面会提高用户体验度;同时也增强了android ui界面设计的难度,本文提供了一些常用开发资料(有下载哦)感兴趣的朋友可以了解下...

    Android开发网4672021-01-03
  • AndroidAndroid程序设计之AIDL实例详解

    Android程序设计之AIDL实例详解

    这篇文章主要介绍了Android程序设计的AIDL,以一个完整实例的形式较为详细的讲述了AIDL的原理及实现方法,需要的朋友可以参考下...

    Android开发网4642021-03-09
  • AndroidAndroid编程解析XML方法详解(SAX,DOM与PULL)

    Android编程解析XML方法详解(SAX,DOM与PULL)

    这篇文章主要介绍了Android编程解析XML方法,结合实例形式详细分析了Android解析XML文件的常用方法与相关实现技巧,需要的朋友可以参考下...

    liuhe68810052021-05-03
  • AndroidAndroid中AsyncTask详细介绍

    Android中AsyncTask详细介绍

    这篇文章主要介绍了Android中AsyncTask详细介绍,AsyncTask是一个很常用的API,尤其异步处理数据并将数据应用到视图的操作场合,需要的朋友可以参考下...

    Android开发网7452021-03-11
  • Android汇总Android视频录制中常见问题

    汇总Android视频录制中常见问题

    这篇文章主要汇总了Android视频录制中常见问题,帮助大家更好地解决Android视频录制中常见的问题,需要的朋友可以参考下...

    yh_thu5192021-04-28
  • AndroidAndroid实现Service获取当前位置(GPS+基站)的方法

    Android实现Service获取当前位置(GPS+基站)的方法

    这篇文章主要介绍了Android实现Service获取当前位置(GPS+基站)的方法,较为详细的分析了Service基于GPS位置的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    Ruthless8342021-03-31
  • AndroidAndroid CardView+ViewPager实现ViewPager翻页动画的方法

    Android CardView+ViewPager实现ViewPager翻页动画的方法

    本篇文章主要介绍了Android CardView+ViewPager实现ViewPager翻页动画的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    Abby代黎明9602022-03-02
  • AndroidAndroid实现固定屏幕显示的方法

    Android实现固定屏幕显示的方法

    这篇文章主要介绍了Android实现固定屏幕显示的方法,实例分析了Android屏幕固定显示所涉及的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    鉴客6192021-03-27