当前位置: 首页 > article >正文

手机应用的耗电量计算

通过计算每个uid从最后一次充电结束后在各个硬件模块上消耗电量求和,得到总的耗电量。

耗电类型

计算公式

备注

CPU

1.CPU活跃耗电量=单位活跃耗电量*活跃时长

2.耗电量=Sum(每个cluster的单位耗电量*进程cluster占用时长)

3.耗电量=Sum(每个频点单位耗电量*频点工作时长)

存在丢失系统binder调用部分耗电量

Wakelock

耗电量=单位wakelock耗电*WAKE_TYPE_PARTICAL持锁时长

数据流量

计算方式1:通过时间计算

耗电量=单位时间数据流量耗电量*数据流量模块使用时长

计算方式2:通过发送、接收包总量计算

耗电量=单位包耗电量*数据总包(接收包+发送包)

存在网络信号差异,尤其是弱信号,则包统计不准确

Wifi

计算方式1:通过时间计算

耗电量=单位时间wifi耗电量*wifi模块使用时长

计算方式2:通过发送、接收包总量计算

耗电量=单位包耗电量*wifi总包(接收包+发送包)

蓝牙

耗电量=发送数据包*单位发送包耗电量 + 接收数据包*单位接收包耗电量 + 空闲时间耗电量 

Sensor

Sum{Ti * Pi}

Ti:第i个sensor的使用时长

Pi:第i个sensor的单位时间耗电量

i:表示Sensor序号

GPS

耗电量=GPS持有时长*单位时间GPS耗电量

存在不同信号强度差异

Camera

耗电量=Camera持有时长*单位时间Camera耗电量

存在算法差异影响

闪关灯

耗电量=闪关灯持有时长*单位时间闪关灯耗电量

存在档位差异

音频

耗电量=音频持有时长*单位时间音频耗电量

存在音效差异

视频

耗电量=音频持有时长*单位时间音频耗电量

屏幕

1.计算总的屏幕耗电量

screenPower = Sum{i档位单位耗电 * i 档位单位耗电时长},i=0,1,2,3

2.计算所有应用前台总时长

totalFgTime = Sum{Ti}

3.按比例分配每个app的屏幕耗电量

Pi = Ti * screenPower/totalFgTime

Pi表示第i个app的屏幕耗电量

悬浮窗可能无法统计

设备挂起/空闲

计算规则如下

1.计算suspendPower

suspendPower = 时长*单位时间suspend耗电量

2.计算idlePower=时长*单位时间idle耗电量

总耗电=suspendPower+idlePower

AOD

耗电量=AOD持有时长*单位时间AOD耗电量

SystemServer

计算步骤:

1.计算系统部分耗电量

sysPower=计算规则同1中CPU计算方法,但是时间是统计系统binder调用时长数据

2.将SystemServer binder耗电分配出去

Pi = sysPower*Si/C

Pi:表示单个进程的binder耗电量

Si:表示单个进程的binder调用数量

C:表示所有进程的binder调用数量

依据binder call数量分配会有较大误差。例如绘制数据量的进程比后台小数据量计算的进程引起systemsrver的耗电更高

每个Uid的耗电量包括以下部分或所有的模块:CPU、WakeLock、Modem、Wifi、Ble、Sensor、Gps、Camera、FlashLight、Audio、Video、Screen等。

计算公式:

0

Pk表示每个模块的耗电量,n表示耗电模块总数


http://www.kler.cn/a/547859.html

相关文章:

  • 初阶数据结构:树---二叉树的链式结构
  • wireshark 网络安全 awd 网络安全
  • pytorch学习基础1——张量的创建与基础操作
  • Ubuntu 系统迁移
  • 字节Trae使用感想(后端)
  • Golang Model 字段自动化校验设计
  • AI agent 未来好的趋势:AI医疗影像、智能客服、个性化推荐
  • Python深度学习代做目标检测NLP计算机视觉强化学习
  • IntelliJ IDEA集成本地化部署的DeepSeek
  • 【VUE】前端工程化与前端工程化与webpack
  • 机器学习所需数学知识详细版02【】
  • 收银系统源码开发指南:PHP + Flutter + Uniapp 全栈方案
  • 【linux】在 Linux 服务器上部署 DeepSeek-r1:70b 并通过 Windows 远程可视化使用
  • halcon激光三角测量(十七)calibrate_sheet_of_light_3d_calib_object
  • 基于AIOHTTP、Websocket和Vue3一步步实现web部署平台,无延迟控制台输出,接近原生SSH连接
  • lean4安装
  • 把 CSV 文件摄入到 Elasticsearch 中 - CSVES
  • Pythong 解决Pycharm 运行太慢
  • C#(Winform)通过添加AForge添加并使用系统摄像机
  • 提取MV视频中的音频到mp3