精华内容
下载资源
问答
  • APP功耗测试方法发布时间:2018-04-26 23:27,浏览次数:560, 标签:APP业界比较难测试的一个测试,比如新旧版本对比不一定能说明问题,所以耗电量测试只能定量测试,作为辅助数据帮助我们测试。功耗测试可以基于硬件...

    APP功耗测试方法

    发布时间:2018-04-26 23:27,

    浏览次数:560

    , 标签:

    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 App功耗浅析

    千次阅读 2017-04-13 09:53:45
    尽量减少SD卡读写操作,包括SharedPreferences,能保存在内存中的尽量保存在内存中,不用害怕内存爆掉,内存绝对不会因为多存了几十个变量而溢出的,如果你需要保存到SD卡的数据很多那只能说你的App设计有问题,建议...

    1.   主要原因

    (1)http请求(GZIP压缩)

    (2)json数据解析(json解析效率主要是解析耗时),大量的数据解析

    (3)数据库读写操作

    (4)SD卡读写操作

    (5)程序的执行的timer定时器(例如IM中的心跳包,用系统的Alarm优化)

    (6)网络切换(wifi会比手机的数据移动网络更加省电)

    2.  优化方案

    (1)http请求:可以采用gzip压缩减少传输过程中的数据量,app发起http请求和服务端返回的http请求数据都采用gzip压缩。

    (2)json解析:推荐使用jackson。

    (3)尽量优化数据表设计,避免冗余字段,避免冗余表。

    (4)SD卡读写,尽量减少SD卡读写操作,包括SharedPreferences,能保存在内存中的尽量保存在内存中,不用害怕内存爆掉,内存绝对不会因为多存了几十个变量而溢出的,如果你需要保存到SD卡的数据很多那只能说你的App设计有问题,建议重新理下App的编码设计或者是功能设计。

    (5)java语言中的timer是采用线程实现的,只要是手机不休眠就会一直跑,所以我们应该尽量采用系统那种Alarm来实现上述功能,例如心跳包,我见过网上的IM的SDK的心跳包基本都是采用系统闹钟加上广播实现的,而且timer和handler有一个弊端,在手机休眠的时候这两个的执行是被挂起的,当时候不休眠的时候它们才会继续计时执行,而系统那种即使在手机休眠的时候也会保持在指定时间点唤醒cpu执行操作,结束后再进入休眠,也就是说系统的alarm只有在计时到的那个时间点才会执行,而timer计时是在计时过程中一直跑,我看timer实现的源码是用while(true)循环来检测是否到时间点,没到就wait,并且continue。

    (6)手机数据流量网比wifi更加耗电,因为手机数据流量会调用手机上面的一些硬件设备,从而唤醒cpu增加耗电,这个跟开启摄像头,开启gps是一样的,一设计调用硬件设备的绝对唤醒cpu,一唤醒cpu耗电绝对增加。

     

    3.   源码角度

    http://www.cnblogs.com/hyddd/p/4402621.html
    展开全文
  • 我现在做了一个多线程上传文件的app,现在想降低功耗,有什么解决办法和好的思路么?谢谢!
  • 算是研究一下相关的内容吧. 从以下几个部分开始,持续更新… ...2.使用Android相关工具(Battery-Historian). 参考文档 Battery-Historian GitHub 官方文档 其他先行者的博客 使用Google的分析工具 Battery-Hi.

    算是研究一下相关的内容吧.

    从以下几个部分开始,持续更新…

    1.使用专业设备进行分析.

    主要是使用 安捷伦66311B 设备,搭配 IOLibSuite_18_1_25310measure进行测试.
    //TODO
    安捷伦66311B 使用说明
    //TODO
    安捷伦66311B 分析结论


    2.使用Android相关工具(Battery-Historian).

    参考文档
    Battery-Historian GitHub
    官方文档
    其他先行者的博客

    使用Google的分析工具 Battery-Historian.


    3.代码上通过API去收集相关信息.

    //TODO…
    可以基于开发的AspectJ-Collection SDK,添加收集相关的当前电池信息记录.


    4.总结分析.

    通过上面的一系列分析,排查出现有APP存在哪些方面的功耗问题,具体怎么解决,以及后续的验证.

    展开全文
  • 前言耗电量指标待机时间成关注目标提升用户体验通过不同的测试场景,找出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

    举报/反馈

    展开全文
  • 1、根据adb 命令获取batterystats信息  命令:adb shell dympsys batterystats > D:/batterystats.txt ...  本地配置python环境、下载解压battery-historian文件,运行historian.py D:...
  • 手机多次跟蓝牙模块连接断开后出现假连接,执行到发现服务并拿到characteristic后就终止了,调用gatt.disconnect()方法,回调onServicesDiscovered()传回的status = 129,还有,感觉多设备连接那一块问题百出,不是...
  • android功耗蓝牙APP开发问题记录

    千次阅读 2016-11-10 16:18:11
    概述:实现了BLE扫描、... 在android5.0(SDK 21)以上时,BluetoothAdapter.startLeScan()和stopLEScan已经过时,所以在5.0以上时需要判定android版本. 扫描代码: private void scanLeDevice(final boolean enab
  • 掌握Android功耗蓝牙的通讯过程以及了解温度传感器读写数据 Android功耗蓝牙 蓝牙4.0 • 蓝牙4.0 = BLE • 特性 • 超低的峰值、平均和待机功耗• 低成本 • 不同厂商设备交互性• 无线覆盖范围增强 ...
  • Android APP蓝牙低功耗控制安信可TB02开发板,Android源码; 蓝牙基础哭泣基于第三方库H-Ble,Android Ble类库,基于替换,暴露搜索,连接,发送,接收,交换连接等接口,无需担心细节操作即可进行Ble通信。 原料药...
  • APP功耗测试方法2018年04月26日 23:27:55阅读数:124业界比较难测试的一个测试,比如新旧版本对比不一定能说明问题,所以耗电量测试只能定量测试,作为辅助数据帮助我们测试。功耗测试可以基于硬件测试方法(第三方...
  • 功耗蓝牙(BLE)在 Android APP 中的应用 最近公司接了一个新项目,用户可以把自己的乐器跟Phone或Pad连接起来,当弹奏乐器的时候,会把演奏情况同步反馈到设备上,方便用户练习,有点类似于之前玩过的一款叫 [ ...
  • Android功耗

    千次阅读 2018-07-24 17:35:07
    3.我的app不耗电 软件功耗的组成 软件功耗主要包括9项 功耗项 解释 usage 通用的功耗 CPU CPU的功耗 wakelock 唤醒带来的功耗 mobileRadio 移动无线的功耗 wifi wifi功耗 gps ...
  • Android app开发中,为了让某个页面持续显示一定时间,需要设置亮屏代码。 常用的方法有四种,分别如下: 方法1:通过PowerManager获取wakelock。 方法2:在view中设置view.setKeepScreenOn(true); 方法3:...
  • Android手机功耗

    2019-09-28 20:13:08
    极力推荐Android 开发大总结文章:欢迎收藏 程序员Android 力荐 ,Android 开发者需要的必备技能 本篇文章主要介绍手机开发中的功耗部分知识点,功耗直接影响到手机的待机时间,通过阅读本篇文章,您将收获以下内容...
  • 使用adb工具,您可以查看每个正在运行的应用的功耗adb shell dumpsys cpuinfo样本输出Load: 1.12 / 1.07 / 1.01CPU usage from 11344ms to 1613ms ago:10% 122/system_server: 5.8% user + 4.5% kernel / faults: 989...
  • 使用adb工具,您可以查看每个正在运行的应用的功耗adb shell dumpsys cpuinfo样本输出Load: 1.12 / 1.07 / 1.01cpu usage from 11344ms to 1613ms ago:10% 122/system_server: 5.8% user + 4.5% kernel / faults: 989...
  • Android 4.3(API Level 18)开始引入Bluetooth Low Energy(BLE,低功耗蓝牙)的核心功能并提供了相应的API,应用程序通过这些api可以扫描设备、查询services,读写设备的characteristics(属性特征)。对比传统的...
  • 性能测试 Android性能测试分为两类: 1、一类为rom版本(系统)的性能测试 2、一类为应用app的性能测试 Androidapp性能测试包括的测试项比如: 1、资源消耗 2、内存泄露 3、电量功耗 4、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,646
精华内容 2,658
关键字:

androidapp功耗