APP功耗测试方法

业界比较难测试的一个测试,比如新旧版本对比不一定能说明问题,所以耗电量测试只能定量测试,作为辅助数据帮助我们测试。功耗测试可以基于硬件测试方法(第三方精密仪器)和基于软件测评方法。下面就两种测试方法进行阐述:

一、为什么要进行耗电量测试

1、app耗电量测试是用户非常关注的一个方面,如果一些app设计不好或者代码有缺陷,就可能会导致耗电量消耗比较高。

2、当用户发现电池消耗过快的时候,就可能去查哪些应用消耗电量过多。

消耗排名比较高的,确有代替品的app,就可能会被用户卸载替换掉,所以针对app的耗电量进行专项测试。

二、耗电场景

软件之所以会耗电,是因为使用了手机的某种资源,手机各个模块的耗电情况是不同的。当程序有以下场景的一点或几点就会有耗电风险;比如

1、定位,尤其是调用gps定位(每次都请求)

2、网络传输,尤其是非wifi环境(移动环境里耗电量比较高,因为手机在使用移动网络的时候频繁去基站交换数据)

屏幕亮度

3、CPU频率(CPU频率高处理速度也不一定快,因为它跟系统频率,整体架构,GPU,缓存有关系)

4、内存调度频度(算法有作业排队前后顺序处理,短作业优先等多种)

5、wake_locker时间和次数(唤醒锁,我们平均每小时通过Alerm调起的次数不超过20次)

三、查看APP的耗电量

手机主屏幕-选择设置-查看电量消耗-查看各个APP电量消耗

四、耗电量API

安卓系统中很早就有了耗电量API,系统设置电池功能就是调用的这个API,利用PowerProfile类,读取powerprofile.xml文件。

五、Android电量测试方法

第一种:基于基于硬件的测试方案,使用用电量表来测试手机耗电量

(1)安捷伦。

(2)腾讯电量仪,原理:把手机电池取掉,将电量表串联在手机和外部电源之间,这样手机的供电就会经过电量表,可以获得比较准确的电量数据。

优点:精准

缺点:采购成本高,测试的是整个手机,不是被测APP,测试时要减少系统本身和其他app的干扰。得到数值无法直接参考,不知道合理还是偏高。不能给出进一步参考,比如具体哪个app方面消耗电量比较多。

第二种:借助第三方APP来评估手机上各APP的耗电情况。

1.Gsam Battery Monitor Pro是一款对电池进行监控的应用。

普通版功能:通知电池状态和时间,显示详细的电池使用内容,允许排序清单显示,应用程序的使用的cpu的使用率,感应器的使用,比如唤醒锁定,唤醒时间,可以指定时间观看时间内统计咨询。

专业版功能:大屏幕显示装置的优化监视,更精确的时间,加强控制某些应用选项

先要root手机,不root,只能看到部分功能。

Gsam安装。

2.Emmagee是一款实用的,便捷的性能测试工具,APP移动性能指标,用来监控指定的安卓应用的cpu,内存,流量启动,耗时,电量,电流等性能状态的变化。

功能介绍:

检测当前时间被测应用,占用的CPU使用率,以及总体CPU使用量。

检测当前时间被测应用占有的内存量,以及占有的总体内存百分比,剩余内存量。

检测应用从启动到当前时间消耗的流量数。

测试数据写入到,csv文件中,同时存储在手机中。

可以选择开启浮窗功能,浮窗中实时显示被测应用占有性能数据信息。

在浮窗中可以快速启动或者关闭手机的wifi网络

Android 应用开发(28)----APP功耗测试方法相关推荐

  1. android app功耗测试方法,APP功耗测试方法

    APP功耗测试方法 发布时间:2018-04-26 23:27, 浏览次数:560 , 标签: APP 业界比较难测试的一个测试,比如新旧版本对比不一定能说明问题,所以耗电量测试只能定量测试,作为辅助 ...

  2. H5+Android混合开发电视APP

     最近公司搞"黑马"项目,想到H5在手机app上的应用很多,但是目前在我们公司电视端的应用几乎为零,所以就拟定题目为<基于H5技术的新型电视应用>,经过43小时的奋 ...

  3. Android Studio 开发–微信APP门户界面设计

    Android Studio 开发–微信APP门户界面设计 本次Github代码仓库 --crcr1013/MyWechat 文章目录 Android Studio 开发--微信APP门户界面设计 前 ...

  4. Android设计开发 答题app 安卓+后台Java+数据库mysql

    Android设计开发 答题app 安卓+后台Java+数据库mysql 基于安卓设计开发答题系统界面简洁大方 有用户注册,登录模块 主页,答题,选择答案,提交答案等模块 程序已经调试完成,包括前端安 ...

  5. 安卓大作业:使用Android Studio开发天气预报APP(使用sqlite数据库)

    使用Android Studio开发天气预报APP 今天我来分享一下如何使用Android Studio开发一个天气预报APP.在文中,我们将使用第三方接口获取实时天气数据,并显示在APP界面上. 步 ...

  6. Android Studio开发安卓app 封装WEB(H5,URL)

    由于项目需要,需使用安卓app封装WEB(H5)url链接,之前用的HbuilerX混合开发,但是Hhuildex的UNIAPP在线打包无法实现开机自动启动功能.需使用离线打包,就干脆学习使用andr ...

  7. Android Studio开发安卓app 安卓与webview中的js交互

    Android Studio开发安卓app 安卓与webview中的js交互 1.webview中的页面调用android中的方法 在Android Studio开发安卓app 封装WEB(H5,UR ...

  8. 【创新项目实训】Android移动开发教学app案例之音频播放器(二)

    教学app案例之音频播放器(二) 一.开发环境 二.项目介绍 三.开始主界面 四.显示歌曲列表 五.播放音乐的服务 六.实现播放音乐 一.开发环境 软件环境: Android Studio 4.1.3 ...

  9. Android TV开发:APP安装、ICON图标问题

    使用AndroidX版本的Android Studio开发的面向TV的APK,安装后,在电视默认主屏没有显示该APP的ICON,是怎么回事? 一开始没有注意到电视的Android版本,安装APK时出现 ...

最新文章

  1. 面试官:MySQL 表设计要注意什么?
  2. iOS10存高级安全隐患 黑客入侵可比以往快2500倍
  3. 使用LiveNVR实现将RTSP转RTMP、FLV、HLS,实现监控摄像头无插件直播
  4. 解决 Gradle 进行多模块开发时,模块相互依赖的问题
  5. leetcode - 646. 最长数对链
  6. 数据结构之查找-顺序查找,折半查找,分块查找
  7. 360与Bing合作上线英文搜索
  8. TCP和HTTP的区别和联系
  9. 数据结构(郝斌课程内容概述)
  10. qq自定义diy名片代码复制_免root安卓版QQ自定义在线 卡iPhone 12 Pro Max,卡5G,6G在线等状态...
  11. AngularJS总结
  12. fabs在python中是什么意思_Python fabs() 与 abs() 区别是什么?
  13. vue3 setup写法(语法糖版本)
  14. ASCII编码以及转换
  15. win10系统无法访问指定设备或路径怎么解决?
  16. Tensor是神马?为什么还会Flow?
  17. Nacos 与其他注册中心对比
  18. 微信小程序页面元素如何保存成图片
  19. 修改图片大小尺寸如何操作?修改图片大小尺寸的作用
  20. mre下的控件实现(一、公共的宏定义)

热门文章

  1. struct sk_buff与struct socket及struct sock 结构体分析
  2. 大图社区搜索的调查综述(二)——预备知识
  3. matlab的矩阵编译器,MATLAB引擎方式实现VC与MATLAB混合编程
  4. python类与对象 动画_python之类与对象(2)
  5. mysql时间间隔年份_MySQL DATEDIFF函数获取两个日期的时间间隔的方法
  6. 【LeetCode】【HOT】543. 二叉树的直径(递归)
  7. Revit二次开发The symbol is not active
  8. LINUX系列:Shell命令
  9. 【剑指Offer】20包含min函数的栈
  10. 【Python】【数据库】