• App性能测试之耗电量


    手机app的主要耗电场景有:

    (1)cpu:复杂的运算逻辑、死循环等会直接导致CPU负载过高,会导致耗电;
    (2)wakelock:只要有应用拿到wakelock这个锁,系统就无法进入睡眠状态。频繁wakelock或者申请了wakelock没有释放,会导致耗电;
    (3)wifiscan和wifilock:wifiscan和wifilock也会导致手机的wifi模块处于激活状态,频繁的wifiscan或者wifilock不释放,会导致耗电;
    (4)sensor:传感器打开后会导致系统持续监听设备外围环境的数据变化,使用后不及时关闭,会导致耗电;
    (5)network:大量的数据传输,或者长时间的移动网络数据传输导致radio长期处于活跃状态,会导致耗电;
    (6)gps:gps也是一种传感器,定位中没有及时关闭,会导致耗电;
    (7)业务层面,用户最核心基础的模块:
    (8)新增的基础逻辑,倘若入口明显,潜在较大访问,必须保证性能;
    (9)活动需要,因为活动上新的逻辑,存在较大的用户访问,需尽力提升用户体验;
    (10)反馈体验不好的模块;

    测试方法:
    (1)adb connect ip:port 无线连接设备;
    (2)断开并重启adb服务:adb kill-server 和 adb start-server;
    (3)重置电池数据:
    # 设置Historian在时间线上显示关于每个单独唤醒锁的详细信息,启用完整唤醒锁报告
    # (注意,通过启用完全唤醒锁定报告,电池历史记录将在几个小时内溢出。使用此选项进行短时间测试(3-4小时))
    adb shell dumpsys batterystats --enable full-wake-history

    # 采集报告前将battery统计状态重置 adb shell dumpsys batterystats
    --reset

    (4)若已连接数据线,则拔电数据线(且测试过程中,不应出现充电情况);

    (5)在手机上对目标app执行相应场景操作;

    (6)操作完成后,再次连接设备,执行以下命令:

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

    数据分析:

    1、对于xxx.txt文本,可直接打开;

    (1)打开txt文本后,查找目标app的包名,获取app的进程uid:

     (2)再查找“Estimated power use (mAh)”,获取目标uid的耗电量:

    2、对于bugreport.zip文件,可通过battery historian工具进行解析:

    (1)在chrome浏览器打开:https://bathist.ef.lc/

    (2)打开生成的bugreport.zip文件,再点击Submit,即可分析数据

    (该文件放在运行adb命令的目录处,如C:Usersffff>adb bugreport>bugreport.zip,则文件生成在C:Usersffff 目录里)

     

    参考:https://www.jianshu.com/p/2f144bf7fe51

    参考:http://www.51testing.com/html/28/n-4456728.html

  • 相关阅读:
    Linux上将文件夹复制到指令目录
    将PC版网页转为手机端自适应网页
    WCF初探-18:WCF数据协定之KnownType
    WCF初探-17:WCF数据协定之等效性
    WCF初探-16:WCF数据协定之基础知识
    WCF初探-15:WCF操作协定
    2018数学二21题解法分析
    柯西不等式:简单常考形式
    等价、合同、相似、正交变换;二次型,正定,惯性指数
    高数狄利克雷收敛条件(傅里叶)
  • 原文地址:https://www.cnblogs.com/Maruying/p/13639534.html
Copyright © 2020-2023  润新知