器件功耗模型原理
器件功耗模型原理
谷歌提供了一套通用的器件耗电模型和配置方案,先对器件进行耗电因子拆解,建立器件功耗模型,得到一个器件耗电的计算公式。通过运行时统计器件的使用数据,代入功耗模型,就可以计算出器件的功耗。例如CPU功耗建模基本思路是在每个CPU频点的运行时长乘以该频点对应的功耗或电流值,累加所有频点的功耗,得到 CPU 的总功耗
测试出器件电流
由于每个型号的产品器件组成不一样,为了精准建模,一般OEM厂商都是会对自家机型进行参数测试和校准后更新到 power_profile.xml
| 场景 | 步骤 | xxx机型 | 备注 | ||
| A1 | A2 | 结果 | power_profile.xml 填写记录 | ||
| screen,full | 1.打开飞行模式,灭屏时间最长,其他的基础功能关 2.进入到日历应用界面 3.将亮度设置至最大(4095),待电流稳定后,测试5分钟,记录电流值A1(echo 4095 > /sys/class/backlight/panel0-backlight/brightness) 4.将亮度调整至为0,待电流稳定后,测试5分钟,记录电流值A2 (echo 0 > /sys/class/backlight/panel0-backlight/brightness) 5.A1-A2 | 1820.33 | 38.97 | 1781.36 | 已填写 |
| screen,on | 1.打开飞行模式,灭屏时间最长,其他的基础功能关 2.进入到日历应用界面 3.将亮度调整至为0,待电流稳定后,测试5分钟,记录电流值A1 4.输入命令 adb shell"echo test > /sys/power/wake_lock 5.灭屏待机,待电流稳定后,测试5分钟,记录电流值A2 6.A1-A2 | 38.97 | 12.7 | 26.27 | 已填写 |
| Bluetooth.on | 1.打开飞行模式 2.单独打开蓝牙,不连接任何设备,处于idle状态 3.灭屏待机 4.待电流稳定后,测试5分钟,记录电流值A2 5.A2-CPU.idle | 8.88 | 9.68 | 0.8 | 已填写 |
| Bluetooth.active | 1.打开飞行模式,音量7格。 2.单独打开蓝牙,连接蓝牙耳机 3.播放音乐 4.灭屏 5.待电流稳定后,测试5分钟,记录电流值A1 6.亮屏,停止音乐,关闭蓝牙 7.插入模拟耳机,播放音乐 8.灭屏 9.待电流稳定后,测试5分钟,记录电流值A2 6.A1-A2 | 58.02 | 44.8 | 13.22 | 已填写 |
| WiFi.on | 1.打开飞行模式 2.单独打开WiFi,不连接任何设备,处于idle状态 3.灭屏待机 4.待电流稳定后,测试5分钟,记录电流值A2 5.A2-CPU.idle | 8.88 | 9.91 | 1.03 | 已填写 |
| WiFi.active | 1.打开飞行模式,中等亮度 2.单独打开WiFi,连接2.4G网络 分别做WLAN发送/接收信号 (下载:应用商店下载王者荣耀,电流取5min平均值 网速按已下载完的进度进行计算 上传:百度网盘上传文件 ) 3.待电流稳定后,测试5分钟,记录电流值A2、A1 4.(A2+A1)/2 | 403.4 (上传) | 447.44 (下载) | 425.42 | 已填写 |
| WiFi.scan | 1.打开飞行模式,中等亮度 2.单独打开WiFi,不连接任何设备,处于idle状态 3.停留在WiFi设置界面 4.待电流稳定后,测试5分钟,记录电流值A1 5.按返回键,退回到设置界面 6.待电流稳定后,测试5分钟,记录电流值A2 5.A1-A2 | 199.64 | 153.56 | 46.08 | 已填写 |
| Dsp.audio | 1.打开飞行模式,灭屏时间最长,其他的基础功能关 2.输入命令 adb shell"echo test > /sys/power/wake_lock 3.灭屏待机,待电流稳定后,测试5分钟,记录电流值A1 4.输入命令 adb shell"echo test > /sys/power/wake_unlock 5.插入模拟耳机 6.播放音乐 5.待电流稳定后,测试5分钟,记录电流值A2 6.A2-A1 | 12.7 | 44.8 | 32.1 | 已填写 |
| Dsp.video | 1.打开飞行模式,灭屏时间最长,中等亮度,其他的基础功能关 2.插入模拟耳机 3.播放720p视频 4.待电流稳定后,测试5分钟,记录电流值A1 5.暂停播放 6.待电流稳定后,测试5分钟,记录电流值A2 7.A1-A2 | 194.44 | 135.31 | 59.13 | 已填写 |
| camera.avg | 1.打开飞行模式,灭屏时间最长,最低亮度,其他的基础功能关 2.打开相机 3.默认拍照模式下预览 4.待电流稳定后,测试1分钟,记录电流值A1 5.手动6秒拍摄一次照片,测试一分钟,记录电流值A2 6.A2-A1 | 784.42 | 1054.59 | 270.17 | 已填写 |
| camera.flashlight | 1.打开飞行模式,灭屏时间最长,最低亮度,其他的基础功能关 2.打开相机 3.默认拍照模式下预览 4.待电流稳定后,测试1分钟,记录电流值A1 5.打开闪光灯,测试一分钟,记录电流值A2 6.A2-A1 | 784.42 | 852.53 | 68.11 | 已填写 |
| GPS.on | 1.打开飞行模式,中等亮度,关闭位置服务 2.进入到工模 3.进入到工模界面,进行搜星 4.待电流稳定后,测试5分钟,记录电流值A1 5.打开位置服务,进入到工模界面,进行搜星 6.待电流稳定后,测试5分钟,记录电流值A2 5.A2-A1 | 58.03 | 118.62 | 60.59 | 已填写 |
| radio.active | 1.插卡,选择4G网络,中等亮度 2.做数据下载(浏览器下载王者荣耀,下载界面观察下载速率) 下载:应用商店下载王者荣耀,电流取5min平均值 网速按已下载完的进度进行计算 上传:百度网盘上传文件 ) 3.待电流稳定后,测试5分钟,记录电流值A1 4.做数据数据上传(百度云盘上传文件) 5.待电流稳定后,测试5分钟,记录电流值A2 6.(A2+A1)/2 | 646.42 (上传) | 541.86 (下载) | 594.14 | 已填写 |
| radio.scanning | 1.插卡,选择4G网络 2.进入到屏蔽信号环境,让手机处于搜网状态 3.灭屏待机 4.出现持续大电流是开始记录,记录电流值A1 5.A1-CPU.idle | 暂无测试环境 | 等待测试数据或评估是否同小米14 pro | ||
| radio.on | 1.插入4G单卡 2.成功注册上4G网络,且信号良好 3.灭屏待机 4.待电流稳定后,测试5分钟,记录电流值A1 5.A1-CPU.idle | 11.39 | 8.88 | 2.51 | 待对比小米14 pro 源码需要2个不同信号的数值 1. 无信号或弱网下电流值 2. 信号良好 |
| battery.capacity | 电池规格书 | / | / | 5020 | 已填写 |
| CPU.idle | 1.打开飞行模式 2.确保没有连接充电线及USB 3.灭屏待机 4.待电流稳定后,测试5分钟,记录电流值A1 | 8.88 | / | 8.88 | 已填写 |
| cpu.awake | 1.打开飞行模式,其他的基础功能关 2.输入命令 adb shell"echo test > /sys/power/wake_lock 3.灭屏待机,待电流稳定后,测试5分钟,记录电流值A1 4.A1 | / | / | 12.7 | N/A 毕加索源码不使用了 |
功耗模型计算
Wifi示例计算
谷歌提供的功耗建模方案对 Wi-Fi 的功耗进行了分状态计算,不同状态下的功耗差异非常显著。具体来说,Wi-Fi 的功耗模型分为以下几个状态:
wifi.on:对应 Wi-Fi 打开时的基准电流。
wifi.active:对应 Wi-Fi 传输数据时的基准电流。
wifi.scan:对应 Wi-Fi 单次扫描的基准功耗。
Wi-Fi 数据传输的功耗:包括 controller.rx(接收数据)、controller.tx(发送数据)和 controller.idle(空闲状态)。
通过统计这些状态的持续时间或发生次数,乘以对应的电流值,就可以计算出 Wi-Fi 器件的总功耗。也可以基于收发的数据大小*单位耗电量得到总功耗
例如:adb shell dumpsys batterystats

以 Wi-Fi 为例,OEM 厂商可以进一步细化功耗模型,例如:
按频段建模:分别对 2.4GHz 和 5GHz Wi-Fi 进行独立建模。
信号强度影响:引入天线信号强度变化对基准电流的影响。
频点统计:统计 Wi-Fi 芯片在不同工作频点的时长,并按频点细化功耗模型。
通过这些优化,OEM 厂商可以设计出更符合自身设备特性的精准功耗模型,从而更准确地计算 Wi-Fi 的功耗。这种精细化的功耗建模需要根据具体产品的硬件方案进行定制化设计,以实现更高的精度和可靠性。
相关文章:
器件功耗模型原理
器件功耗模型原理 谷歌提供了一套通用的器件耗电模型和配置方案,先对器件进行耗电因子拆解,建立器件功耗模型,得到一个器件耗电的计算公式。通过运行时统计器件的使用数据,代入功耗模型,就可以计算出器件的功耗。例如…...
拥抱成长型思维:解锁持续进步的人生密码
我强烈推荐4本可以改变命运的经典著作: 《寿康宝鉴》在线阅读白话文《欲海回狂》在线阅读白话文《阴律无情》在线阅读白话文《了凡四训》在线阅读白话文 一、什么是成长型思维? 成长型思维(Growth Mindset)由斯坦福大学心理学家卡…...
Ubuntu上查看GPU使用情况并释放内存
先用nvidia-smi查看GPU当前使用情况 再用fuser 命令查找对应显卡上占用 GPU 的进程 最后查到了用kill -9强制杀掉进程(PID)即可...
解决思科交换机无法访问局域网外设备
问题背景 有时,我们需要远程连接来管理一台思科交换机,例如使用SSH协议。然而交换机运作在链路层,这就需要交换机有一个网络层地址,来接纳基于IP协议的远程访问请求。于是,我们依靠设置一个带有IP地址的交换机虚拟接口…...
Unity Shader编程】之透明物体渲染
以下是针对您提出的关于 Unity Shader 渲染 Pass 的查看方法、多个 Pass 的影响、Pass 的含义,以及 Unity 渲染物体的流程和处理多个透明/半透明/不透明物体的详细解答。 1. Unity Shader 渲染 Pass 的查看方法 查看 Pass 的方法 通过 Shader 代码: 打开…...
fopen和open 等区别是什么?文件描述符与文件描述指针区别
FILE *fp fopen(path, "w"); int fd open(path,) 1.区别 函数定义所属库返回类型fopen高级文件操作函数,提供缓冲机制标准 C 库 (stdio.h)FILE*(文件指针)open低级文件操作函数,直接调用系统接口Unix/Linux 系统调用…...
什么是张量计算
以下是对张量计算的详细介绍,结合数学、物理学及计算机科学等多领域视角: 一、张量的基本定义与性质 1. 张量的数学定义 张量是向量空间及其对偶空间的笛卡尔积上的多重线性映射,可视为多维数组或几何对象。其核心特征在于: 坐…...
【1】Java 零基础入门学习(小白专用)
【1】Java 零基础入门学习 📚博客主页:代码探秘者 ✨专栏:《JavaSe从入门到精通》 其他更新ing… ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏作者水…...
[c语言日寄]枚举类型
【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋:这是一个专注于C语言刷题的专栏,精选题目,搭配详细题解、拓展算法。从基础语法到复杂算法,题目涉及的知识点全面覆盖,助力你系统提升。无论你是初学者,还是…...
替代-UX设计师
初创公司如何在没有设计师的情况下 打造实用的用户体验 一个常见的捷径是使用预构建的组件库,如谷歌的 Material UI它们为你提供了构建块,但它们并没有为你考虑整个用户流程你仍然需要弄清楚所有这些是如何组合在一起的但是,很多时候&#x…...
【氧化镓】掺杂在β-Ga2O3材料中引入的深能级缺陷
1. 引言 1.1 β-Ga2O3材料的特性与应用前景 β-Ga2O3作为一种新型的宽禁带半导体材料,具有约4.6-4.8 eV的宽带隙、高击穿场强(约8 MV/cm)和优异的热稳定性,适用于高功率和射频电子器件。其独特的物理特性使其在高电压、高频率以及高功率应用场景中具有巨大的潜力。例如,…...
:ref 和 this.$refs 的区别及 $ 的作用
:ref 在 Vue 模板中,:ref 这种写法是使用了 Vue 的动态绑定语法(: 是 v-bind: 的缩写)。ref 是一个特殊的属性,用于给元素或组件注册引用信息。当你使用 :ref 时,通常是在动态地为元素或组件设置引用名称,…...
分库分表后,跨库查询和分布式事务解决方案
分库分表主要是为了解决单库单表的性能瓶颈,但拆分后数据分散在不同库和表中,这就导致了跨库查询和分布式事务的问题。 以下是实际项目中应对这些问题的核心策略与技术实现: 一、跨库查询解决方案 1. 全局表(广播表) 适用场景:基础数据表(如地区表、配置表)数据量小且…...
仅靠prompt,Agent难以自救
Alexander的观点很明确:未来 AI 智能体的发展方向还得是模型本身,而不是工作流(Work Flow)。还拿目前很火的 Manus 作为案例:他认为像 Manus 这样基于「预先编排好的提示词与工具路径」构成的工作流智能体,…...
android初学
Intent直译意图 显式意图:构造函数(实参为两个) (当前类对象 this,要跳转的.javaclass文件), 隐式意图:构造方法实参(填写一个)(需要在清单文件配置)系统自动匹配 点击事件: 注册设置点击监听器的常用三…...
IDEA修改默认作者名称
User: IDEA提示注释缺少author信息,但自动设置后,名称不是我想要的默认名称,应该如何修改IDEA里默认的作者名称? Kimi: 以下是几种修改IntelliJ IDEA中默认作者名称的方法: ### 方法一:修改File and Code …...
Playwright + MCP:用AI对话重新定义浏览器自动化,效率提升300%!
一、引言:自动化测试的“瓶颈”与MCP的革新 传统自动化测试依赖开发者手动编写脚本,不仅耗时且容易因页面动态变化失效。例如,一个简单的登录流程可能需要开发者手动定位元素、处理等待逻辑,甚至反复调试超时问题。而MCP…...
lodash 学习笔记/使用心得
lodash 学习笔记/使用心得 简单记一下 lodash 的一点学习笔记使用心得,最近也是打算清理一下所有的 dead code,然后发现我们用了好多的 lodash 方法。对比了之前的写法,重新看了一下官方文档,再自己重新动手写了点 util 之后发现…...
计算机操作系统(五) 前趋图和程序执行与进程的描述(附带图谱表格更好对比理解))
计算机操作系统(五) 前趋图和程序执行与进程的描述 前言一、前趋图和程序执行1.1前趋图1.2程序的顺序执行1.3程序的并发执行 二、进程的描述2.1进程的定义与特征2.2进程的基本状态与转换2.3挂起的操作系统和进程的转换2.4进程管理中的数据结构 总结&…...
“统计视角看世界”专栏阅读引导
根据文章主题和逻辑关系,我为您设计以下阅读引导方案: #mermaid-svg-xOnE2zTW20jz5myv {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-xOnE2zTW20jz5myv .error-icon{fill:#552222;}#mermaid…...
C/C++静态库的理解和制作
1.什么是库 库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。 本质上来说库是⼀种可执行代码的二进制形式,可以被操作系统…...
【redis】主从复制:单点问题、配置详解、特点详解
文章目录 单点问题什么是主从复制主从模式能解决的问题并发量有限可用性问题 配置建立复制通过配置文件来指定端口配置主从查看集群结构 断开复制 特点安全性只读传输延迟 单点问题 分布式系统中,涉及到一个非常关键的问题:单点问题 某个服务器程序&…...
OpenCV HighGUI 模块使用指南(Python 版)
用户让我编写一个 HighGUI 模块的使用指南,包括函数的使用和应用场景的实现。首先,我需要回顾 HighGUI 模块的主要功能:图像显示、视频捕获、鼠标和键盘事件。然后,按照用户提供的结构,整理每个部分的函数详解、代码示…...
PyTorch 面试题及参考答案(精选100道)
PyTorch 的动态计算图与 TensorFlow 的静态计算图有何区别?动态图的优势是什么? PyTorch 的动态计算图和 TensorFlow 的静态计算图在构建方式、灵活性和调试难度等方面存在显著区别。 在构建方式上,TensorFlow 的静态计算图需要先定义好整个…...
android......
事件源,就是视图对象,先注册一个监听器,等待用户触发了屏幕,一旦触发会立即产生一个事件源,事件源会生成一个用户点击的触发事件,此刻监听器会立马监听到 ,然后监听器调用回调方法 UI理解 全称用…...
常见中间件漏洞(tomcat)
CVE-2017-12615 当在Tomcat的conf(配置目录下)/web.xml配置文件中添加readonly设置为false时,将导致该漏洞产生,(需要允许put请求) , 攻击者可以利用PUT方法通过精心构造的数据包向存在漏洞的服务器里面上传…...
计算机网络高频(二)TCP/IP基础
计算机网络高频(二)TCP/IP基础 1.什么是TCP/IP⭐⭐ TCP/IP是一种网络通信协议,它是互联网中最常用的协议之一。TCP/IP有两个基本的协议:TCP(传输控制协议)和IP(互联网协议)。 TCP(Transmission Control Protocol,传输控制协议)是一种可靠的、面向连接的协议。它负…...
国际护士节知识竞赛主持稿串词
在这充满火热激情的季节,我们又迎来了5.12国际护士节。让我们首先向辛勤奋战在护理工作一线的全县广大护士姐妹们道一声: (男)让我们再一次以热烈的掌声欢迎他们:预祝各参赛代表队在护理知识竞赛中赛出风格,赛出水平,取得满意的成绩。 (女)…...
Elasticsearch:可配置的推理 API 端点分块设置
作者:来自 Elastic Daniel Rubinstein Elasticsearch 开放推理 API 现已支持可配置的分块,以便在文档摄取时处理语义文本字段。 Elasticsearch 推理 API 允许用户利用各种提供商的机器学习模型执行推理操作。其中一个常见用例是在索引中支持用于语义搜索…...
数据结构之链表(双链表)
目录 一、双向带头循环链表 概念 二、哨兵位的头节点 优点: 头节点的初始化 三、带头双向链表的实现 1.双链表的销毁 2.双链表的打印 3.双链表的尾插和头插 尾插: 头插: 4.双链表的尾删和头删 尾删: 头删: …...
