精华内容
下载资源
问答
  • APP耗电测试

    2019-10-04 17:53:52
    APP耗电,导致电池续航能力不佳,如下图,在小米MIX2和iPhone X机型上后台静默一小时各应用的耗电排行: 基本概念 相对于PC来说,移动设备的电池电量是非常有限的,保持持久的续航能力尤为重要。另外,...

    现象

     

    APP耗电,导致电池续航能力不佳,如下图,在小米MIX2和iPhone X机型上后台静默一小时各应用的耗电排行:

     

     

    基本概念

     

    相对于PC来说,移动设备的电池电量是非常有限的,保持持久的续航能力尤为重要。另外,Android的很多特性都比较耗电(如屏幕、GPS、sensor传感器、唤醒机制、CPU、连网等的使用),我们必须要慎重检查APP的电量使用,以免导致用户手机耗电发热,带来不良体验。

     

    场景设计

     

    主要的耗电场景有:

    • cpu:复杂的运算逻辑、死循环等会直接导致CPU负载过高,会导致耗电;

    • wakelock:只要有应用拿到wakelock这个锁,系统就无法进入睡眠状态。频繁wakelock或者申请了wakelock没有释放,会导致耗电;

    • wifiscan和wifilock:wifiscan和wifilock也会导致手机的wifi模块处于激活状态,频繁的wifiscan或者wifilock不释放,会导致耗电;

    • sensor:传感器打开后会导致系统持续监听设备外围环境的数据变化,使用后不及时关闭,会导致耗电;

    • network:大量的数据传输,或者长时间的移动网络数据传输导致radio长期处于活跃状态,会导致耗电;

    • gps:gps也是一种传感器,定位中没有及时关闭,会导致耗电;

    业务层面,用户最核心基础的模块:

    • 新增的基础逻辑,倘若入口明显,潜在较大访问,必须保证性能;

    • 活动需要,因为活动上新的逻辑,存在较大的用户访问,需尽力提升用户体验;

    • 反馈体验不好的模块;

     

    监控分析

     

    耗电原理

    1、各部件单位时耗电:各部件单位时耗电信息保存在power_profile.xml文件中,如下图(以魅族MX6为例):

    2、运行时长

    电量(mAh)=各部件单位时耗电量(mA)*各部件运行时长(h)

    数据获取

     

     

    测试环境

     

    1、恢复出厂设置,排除其他APP对耗电的影响,减少干扰因素;

    2、测试过程中,不出现充电情况;

    3、Android 5.0 以上的设备;

    4、通过wifi连接电脑和手机;

    adb tcpip 5555
    adb connect 192.168.1.101 (Android设备IP地址)

     

    测试步骤

     

    1、首先,电脑用数据线连接手机设备,开启设备的开发者模式后,使用adb devices命令,能够看到设备在线

    2、打开电池数据获取

    adb shell dumpsys batterystats --enable full-wake-history

     

    3、重置电池数据:

    adb shell dumpsys batterystats --reset

     

    4、接下来可以拔掉数据线,在手机上对被测试app执行相应的用例进入测试场景

    5、操作完成后,电脑再次连接设备,执行命令:

    adb shell dumpsys batterystats > xxx.txt
    # 因为bugreport时间比较长,我们放到后面执行来减少与前面dumpsys的数据的偏差
    Android 7.0及以上:
    adb bugreport bugreport.zip
    Android 6.0及以下:
    adb bugreport > bugreport.txt

    获取指定app的信息:

    adb shell dumpsys batterystats > com.example.android.sunshine.app > batterystats.txt

     

     

    6、打开Battery Historian平台将bugreport.txt导入, 并点击submit进行分析

     

    案例分析

     

    Case1:应用后台静默,wakelock长时间未释放

    如上图,在一次版本的耗电量测试中发现耗电量显著增加,通过进一步定位发现是应用中引入的某个SDK为了在后台维持心跳使用了wakelock,而在用户将应用切入后台后一直持有没有释放,随后经过跟对应的开发同学沟通进行了优化更改了实现方式去掉了wakelock,耗电量恢复正常。

     

    Case2:应用后台静默,各种sensor持续工作

    在做另外一个版本的专项测试中发现耗电量数据异常,如下图,通过测试结果分析发现是应用在后台驻留了51分钟,各种传感器也同样工作了51分钟导致耗电量显著增加,后经过排查确定是引入的推送SDK导致的,经过修改调用方式解决。

     

    Case3:应用前台静默,各种sensor持续工作

    通过前台静默(无任何操作)15分钟,发现耗电量比上个版本高了一倍,如下图: 应用前台静默期间加速度、重力、陀螺仪这三个传感器一直被使用。

    跟开发沟通后确定是由于另外一个部门提供的SDK导致的,该SDK采集传感器数据的策略有问题导致会在应用启动后一直采集造成耗电,解决方案是按照时间窗口来采集数据, 比如每次打开APP采集5分钟传感器数据, 然后关闭传感器数据采集。

     

    通过标准

     

     

    最佳实践

     

     

     

     

    附:iOS耗电量测试

    上面主要是讲的关于Android的耗电量测试方法及分析,当然思路是一样的,关于iOS的耗电量测试由于还没有具体的数据,这里给出一些我调研尝试过的一些方法:

    1、系统接口

    iOS 10系统内置的Setting里可以查看各个APP的电池消耗,系统接口能获取到整体的电池利用率,以及充电状态。

    该方案不能检测固定某一时间段内的电池精准消耗。

    2、硬件检测

    通过硬件PowerMonitor可以精准地获得应用的电量消耗。

    步骤如下: 

    a. 拆开iOS设备的外壳,找到电池后面的电源针脚 

    b. 连接电源监控器的设备针脚 

    c. 运行应用 

    d. 测量电量消耗

    该方案成本太高并不适合我们的测试工作。

    3、软件工具检测

    由于iOS系统的封闭性,获取功耗数据只能通过Xcode自带的Instruments工具实现,步骤如下: 

    1. 断开iOS设备与Mac的连接(充电时测试功耗会导致数值不准确) 

    2. iOS设置选项->开发者选项->Logging->Start Recording

    3. 进入需要测试电量的场景操作 

    4. 操作完成后进入开发者选项点击Stop Recording 

    5. 将iOS设备和Mac连接 

    6. 打开Instruments,选择Energy Log 

    7. 选择File->Import Logged Data from Device

    8. 保存的数据以时间轴输出到Instrument面板

    该方案作为性能测试的补充方案具有较高的权威性,但输出的数据不直观,用于功耗测试的效果并不理想。

    4、使用Battery Life进行功耗测试

    该APP无需额外费用,输出结果直观(可得到毫安数及百分比)准确,可以尝试使用。

    转载于:https://www.cnblogs.com/lp475177107/p/10678569.html

    展开全文
  • Android App耗电测试

    千次阅读 2019-08-09 17:47:30
    耗电测试是指测试App在运行过程中消耗的能量。 设备运行期间消耗能量公式:W = w * t = U * I * t U为电池供电电压,I为电流值,t为测试时间,通常来说U可以认为不变,因此A = I * t (mAh)可以作为消耗能量的值,...

    一、基本概念

    耗电量测试是指测试App在运行过程中消耗的能量。
    设备运行期间消耗能量公式:W = w * t = U * I * t
    U为电池供电电压,I为电流值,t为测试时间,通常来说U可以认为不变,因此A = I * t (mAh)可以作为消耗能量的值,对于平稳的测试过程,耗电量与测试时间成正比,因此可以通过平均电流 I = Q / t来评价耗电量水平

    https://blog.csdn.net/Learning1221/article/details/80101675

    二、工具

    1. 安卓手机自带的耗电量监控(设置/电量和性能/耗电排行)

        找到要测试的应用点进去,点“应用信息”/电量和性能

        注意事项:在测试过程中将其他无关应用进程结束掉,避免影响测试结果

    2. Emmagee (无法支持Android 7.0 以上版本)

    https://www.cnblogs.com/jytian/p/6516170.html
    3. Trepn Profiler

    https://blog.csdn.net/s_jason/article/details/77323629

    4. GSam Battery Monitor

    https://www.cnblogs.com/pasco/p/4106209.html

    5. soloPi

    https://testerhome.com/topics/19981

    6. https://blog.csdn.net/vansbelove/article/details/80534444

    展开全文
  • 前言耗电量指标待机时间成关注目标提升用户体验通过不同的测试场景,找出app耗电的场景并解决01需要的环境准备1、python2.7(必须是2.7,3.X版本是不支持的)2、golang语言的开发环境3、Android SDK此三个的环境搭建...

    前言

    耗电量指标

    待机时间成关注目标

    提升用户体验

    通过不同的测试场景,找出app高耗电的场景并解决

    01需要的环境准备

    1、python2.7(必须是2.7,3.X版本是不支持的)

    2、golang语言的开发环境

    3、Android SDK

    此三个的环境搭建这里就不详细说了,自行在网上找资料吧

    02battery-historian服务搭建

    1、克隆安装包

    git clone https://github.com/google/battery-historian.git

    2、下载battery-historian的代码和依赖

    go get -d -u github.com/google/battery-historian/...

    3、修改setup.go文件的参数

    closureCompilerVersion = "20170409"

    值修改为

    closureCompilerVersion = "20190513"

    因为版本不一样,编译会失败,所以升级到稳定版本

    4、切换到setup.go所在的目录,进行编译

    go run setup.go

    5fe3b8362558bd6e3b2c23285084d808.png

    5、启动battery-historian服务

    go run cmd/battery-historian/battery-historian.go

    a918199a49939daa4f4e2ac6f6127b9d.png

    6、验证是否安装成功http://localhost:9999/,出现如下,则ok

    45d41ca626c4ff79c7c2f81b0b91f2c6.png

    03进行耗电量数据收集

    1、清理耗电量数据

    adb kill-server

    adb start-server

    adb shell dumpsys batterystats --reset

    adb shell dumpsys batterystats --enable full-wake-history

    2、运行测试用例/手工操作

    使用monkey或appium来操作想要被测试的Android应用,最好就持续几个钟,效果才比较明显,这里具体就不展开详细说明了

    3、收集数据

    Android 7.0以上版本使用的命令 :adb bugreport bugreport.zip

    Android 6.0 或以下使用的命令:adb bugreport > bugreport.txt

    106e7f49c51e55126d7c78b20d489b2a.png

    acf0ce754c0d8d3c5ec75c41a92e88e1.png

    04上传数据,进行数据分析

    7ad9a58eaafe58d7014713bdcaaf8ad7.png

    举报/反馈

    展开全文
  • 文章陈述了手机发展趋势及耗电特性,集中讨论了时下最为关心的智能手机耗电问题,并介绍了测量手机软件耗电量的两种方法。此外还解释了为何运营商此前会提出收取微信的费用,心跳机制是什么。
  • 文章陈述了手机发展趋势及耗电特性,集中讨论了时下最为关心的智能手机耗电问题,并介绍了测量手机软件耗电量的两种方法。此外还解释了为何运营商此前会提出收取微信的费用,心跳机制是什么。  美国著名手机公司...
  • 专项测试APP耗电

    2016-03-31 20:05:20
    一、前言  随智能手机的兴起,移动互联网的发展,优秀的APP层出不穷。然人们对优秀APP的要求也越发的"挑剔"。从起初的新颖,到后来的稳定,再到现在的流畅,省电等。随着用户日益增长的APP质量...今日暂对APP耗电
    一、前言
      随智能手机的兴起,移动互联网的发展,优秀的APP层出不穷。然人们对优秀APP的要求也越发的"挑剔"。从起初的新颖,到后来的稳定,再到现在的流畅,省电等。随着用户日益增长的APP质量需求,一个优秀APP的背后必然站着一个优秀的测试团队,一个优秀的测试团队必然会针对用户的痛点建立专项测试。这是一个新兴却快速发展的测试领域,也是一个移动互联网QA迟早会涉及的领域。今日暂对APP耗电测试做些简单的讨论。
      二、耗电场景
      如果说耗电测试是一个完整的生命,那耗电场景就是它的灵魂。
      当然每个APP的功能不同,谈业务场景真可谓万万千。但我们适当的抽象一下,或者换个角度思考一下,不难看出有些通用的方法。
      软件之所以会耗电,是因为使用了手机的某种资源。手机各个模块的耗电情况是不同的。
      如果想了解详细,谷歌官方有统计资料,不难搜索到,我总结的几个典型的耗电场景如下:
      1)定位,尤其是调用GPS定位。
      2)网络传输,尤其是非Wifi环境。
      3)屏幕亮度
      4)cpu频率
      5)内存调度频度
      6)wake_locker时间和次数
      如果您的应用程序涉及到以上的一点或几点,就有耗电风险。
      您可以尝试用自动化的方法构建一些典型的场景,并关注电量消耗。
      三、检测方法
      这部分是今日讨论的重点,关于电量获取的方法有三种:
      1)专业仪器,电表
      这个就不展开去说,大致就是把电表连接在电池两级,靠硬件检测电流,电压变化。
      通常都有PC上的配套软件,能有些图表输出。如果实在觉得抽象,可以想象下心电图。
      这种方式需要一定的成本,且环境不熟不太容易。选用的公司不是很多。优点就是精准。
      2)安卓API(耗电检测APP)
      通过监听BroadcastReceiver中的batterInfo 广播就能了解到电量信息。
        ... ...
    展开全文
  • app测试耗电测试

    2018-09-02 15:36:00
    1、耗电量场景 1)GPS定位 ...1)基于硬件的测试方案:电量表来测试手机耗电量 优点:精准 缺点:测的是整机,不是单个app测试时要尽量减少系统本身和其他app的干扰,单独查看得到的数值没...
  • 一、Battery Historian测试所需环境:Go+Git+Python+Java+Battery Historian源码 下载Battery Historian源码并且运行的步骤如下: 1.打开Git Bash输入命令行go get -d -u github....
  • 但事实上,在iOS 9及以前的系统上,能获取到更多更详细的信息,大部分是一些硬件的固定信息,对我们测试没有帮助。但也有一些其他有用的信息,比如说当前的温度,电流,都是很有用的信息,如下图:     ...
  • 这段时间需要测试一个Android手机app耗电量,在网上找了一个工具,Gsam Battery Monitor,觉得挺好用,和大家分享一下。 安装app后打开,可以看到主界面是这样的 点击一下上图红圈的位置,会出现下图的列表 ...
  • 一、耗电测试用例设计 新旧版本耗电量对比测试 1、前台播放-在线歌曲30分钟 2、前台播放-已下载歌曲30分钟 3、前台播放-本地歌曲30分钟 4、后台播放-在线歌曲30分钟 5、后台播放-已下载歌曲30分钟 6、后台...
  • Android-APP-CPU 耗电测试的例子

    千次阅读 2015-06-04 17:13:54
    对比测试APP弹幕硬解和软解的耗电量。 主要使用 CPU ,所以只考虑 CPU 的耗电。 因为耗时较长,用 UIautomator 自动修改设置和播放。 需要 Root。 数据来源: /sys/devices/system/cpu/cpu0/cpufreq/stats/...
  • 如何测试Android APP耗电量?,文中用adb的方式,bat脚本可以半自动化测试,实例参考,适用于新手入门
  • 最近正在研究APP的性能测试相关内容,在确认了耗电作为其中一个指标后,开始了对于耗电监测工具的调研和使用。 一 Emmagee (1)限制条件:Android2.2及以上,7.0以下系统版本,且在Android 5.0以上无TopActivity...
  • 上个月,接收到用户反馈,用着我们的 App,尤其是物流模块的司机端耗电量特别大,看下有什么办法可以进行 iOS 性能优化?从问题看,只能猜测到 CPU 开销比较大或者地理位置获取时候比较耗电。我们一起去敲敲轮子,...
  • Android App耗电发热分析

    千次阅读 2017-04-12 21:18:07
    如题,这是一篇分享如何分析Android平台App耗电问题的文章,今天学到的新技能,算是之前写过的一篇文章Android APP耗电优化的一些经验的续集吧,O(∩_∩)O。 首先,上一个adb命令: adb shell dumpsys ...
  • Android APP耗电优化的一些经验

    万次阅读 2016-12-04 01:56:24
    怎么测试APP并判断是否耗电过高?既然要优化,那我们首先要一个标准。APP怎么样才算是正常,怎么样才算是过于耗电,需要优化?测试方法 使用电流计测量APP运行时手机实时电流大小并与标准APP(一般是仅包含空白...
  • 上个月,接收到用户反馈,用着我们的 App,尤其是物流模块的司机端耗电量特别大,看下有什么办法可以进行 iOS 性能优化?从问题看,只能猜测到 CPU 开销比较大或者地理位置获取时候比较耗电。我们一起去敲敲轮子,...
  • 这是一篇讲述应用耗电的文章,围绕 ...它们各有自己的耗电榜单,软件排行榜为机器中每个 App耗电榜单,硬件排行榜则为各个硬件的耗电榜单。这两个排行榜的统计是互为独立,互不干扰的。 ** 此处主要讲述软件层...
  • 通过测试一些特殊的模块或功能是否有bug,来间接地反映耗电量的情况。比如,用户通过任何场景进行支付,此时在弱网下(上行:100Kbps,下行:100Kbps,dns delay和网络delay都在100ms),那么当钱包跳转到声波支付界面...
  • MQC在兼容性测试、功能测试、稳定性测试中都提供了耗电量的测量,可以来MQC交流群来讨论。 附上MQC的功能简介: 自上次MQC发布功能测试和安全测试以来,已经过了几个月的时间。MQC的5大功能(兼容...
  • 文章目录启动速度内存CPUFPS(应用的使用流畅度)GPU渲染耗电量 启动速度 测试内容 冷启动速度 热启动速度 完全启动速度 有网启动速度 无网启动速度 主要测试冷启动和热启动 测试标准 测试标准:冷启动时间不...
  • Android APP耗电优化

    2018-10-15 11:17:41
    可能造成耗电的一些原因 网络请求耗电,而且手机数据网络进行http请求比无线网进行http请求更加耗电,因为数据网络调用到一些底层的硬件模块,就如GPS一样,当手机打开GPS功能后,也是启动了一些硬件模块就会明显...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,043
精华内容 2,817
关键字:

app耗电测试