电量测试
一:电量测试(功耗测试)
功耗测试分两类
1.硬件测试
功耗仪---安捷伦电流测试仪(设置开机电压要与测试机电压相符,电压过大会烧坏手机,电压过小会开不了机)手机用假电池进行测试,手机设置最大亮度和音量,应用管理里面的通知管理关闭,避免干扰,以第一版本的平均电流值为基准
1:手机安装测试 APK 前后待机功耗平均电流无明显差异
2:多次执行业务场景获取电流值平均值在正常范围,得到的上下两版本平均电流增量小于2mA,最大电流的峰值不超过900mA
3:持续使用一段时间,电流值在正常范围
电流测试文档在博客园文件目录
2.软件测试---都不是能精准的,因为真机屏幕会耗电
2.1第三方工具apk: 链接: https://pan.baidu.com/s/178xgY7GcJl_9c7pEgNZqZQ 提取码: ewte
步骤:安装apk后每个几秒点击执行主流程,找到测试包名对应的pid对应的电量值,绘成图表曲线,上下版本做横向对比,或者做竞品分析
3.1:adb shell dumpsys battery获取level值(自动化每隔几秒抓取level值)-作为参考值
import csv
import os
import time
'''
前提:
1:保持应用后台只存在被测应用
2:status 2 充电状态
先设置为非充电状态
adb shell dumpsys battery set status 1 (不会显示充电图标)
adb shell dumpsys battery获取level值
测试电量半小时到一个小时以上,level差值为消耗电量值
adb shell dumpsys battery set level 80 (设置电量值80)
adb shell dumpsys battery reset (电量恢复到实际值)
'''
# 控制类
class Controller(object):
def __init__(self, count):
# 定义测试的次数
self.counter = count
# 定义收集数据的数组
self.alldata = [("timestamp", "power")]
# 单次测试过程
def testprocess(self):
# 执行获取电量的命令
result = os.popen("adb shell dumpsys battery")
# 获取电量的level
for line in result:
if "level" in line:
power = line.split(":")[1]
# 获取当前时间
currenttime = self.getCurrentTime()
# 将获取到的数据存到数组中
self.alldata.append((currenttime, power))
# 多次测试过程控制
def run(self):
# 设置手机进入非充电状态
os.popen("adb shell dumpsys battery set status 1")
while self.counter > 0:
self.testprocess()
self.counter = self.counter - 1
# 每5秒钟采集一次数据
time.sleep(5)
# 获取当前的时间戳
def getCurrentTime(self):
currentTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
return currentTime
# 数据的存储
def SaveDataToCSV(self):
csvfile = open('power.csv', 'w')
writer = csv.writer(csvfile)
writer.writerows(self.alldata)
csvfile.close()
if __name__ == "__main__":
# 采集5次,每次间隔5秒
controller = Controller(5)
controller.run()
controller.SaveDataToCSV()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix