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

Android 分析底电流高即功耗大的几个方面

打开飞行模式,避免蓝牙、wifi、NFC、网络、FM等的一般影响。

各个外设模块休眠漏电或未休眠,----比如屏或TP,灯节点,nfc,指纹,人脸

GPIO/subsys/pll/clock口漏电,  -----关闭不用的模块和端口

wakelock导致无法休眠,   ----唤醒和释放

modem无法休眠     ---需要射频分析

CPU高负载、---降低帧率和分辨率,开启硬件加速

高亮度显示器、----降低亮度和刷新率

频繁GPS定位、----增加间隔和降低频率,定位模块调用存在问题

后台运行程序、  -----关闭或杀掉后台运行的进程

高频率网络通信     ---减少数据传输和网络唤醒,减少频繁访问

音量音效        ---降低音量,降级音效算法,精细化音频参数

Sersor类型使用    -----SENSOR_DELAY_FASTEST替换成SENSOR_DELAY_NORMAL

Sensor模块的排查    ----光感,距感,磁感,重感,霍尔,陀螺仪

关闭不需要加载的宏控     -----针对 defconfig.mk 和 lk.mk 宏控实现功耗优化

充电与电源管理模块优化

  • 关闭冗余充电协议
    在 lk.mk 中禁用非必要快充协议(如 PE+、QC4.0),减少充电电路动态功耗:

    MTK_PUMP_EXPRESS_PLUS_SUPPORT := no MTK_DUAL_CHARGER_SUPPORT := no

    同步在 defconfig 中注释相关宏:

    # CONFIG_MTK_PUMP_EXPRESS_PLUS_SUPPORT is not set

  • # CONFIG_MT6370_PMU_CHARGER is not set

    此操作可降低充电管理芯片的静态功耗。

  • 简化 PMIC 功能
    禁用未使用的电源管理单元(如 LED 驱动、LDO 稳压器):

    MTK_MT6370_PMU_BLED_SUPPORT := no MTK_MT6370_PMU_RGBLED_SUPPORT := no

    对应 defconfig 需关闭 CONFIG_MT6370_PMU_BLED 等宏。


2. 外设与总线功耗控制

  • 动态关闭闲置外设
    在 defconfig 中禁用非关键外设驱动(如未使用的 SPI/I2C 控制器):

  • # CONFIG_I2C_DEBUG_CORE is not set

  • # CONFIG_SPI_DEBUG is not set

  • 配合 lk.mk 设置外设初始化策略为按需加载:

    MTK_LCM_PHYSICAL_ROTATION := 0 # 关闭屏幕旋转传感器

  • 优化总线电源状态
    启用 PCIe/USB 的 ASPM 低功耗模式(需硬件支持):

    CONFIG_PCIEASPM_POWERSAVE=y

    并在 lk.mk 中强制生效:

    MTK_USB_AUTO_SUSPEND := 1


3. 内核调试与日志精简

  • 移除调试工具
    删除 defconfig 中的调试宏,降低内核日志开销:

    # CONFIG_DEBUG_KERNEL is not set

  • # CONFIG_FTRACE is not set

    同步清理 lk.mk 中的调试模块:

    MTK_DEBUG_LATCH_SUPPORT := no

  • 关闭性能监控
    禁用非必要的性能计数器(如 CPU 占用统计):

    # CONFIG_PERF_EVENTS is not set

    可减少约 5-10% 的调度器开销。


4. 核心调度策略调整

  • 启用低功耗调度器
    在 defconfig 中配置 CPU 调频策略:

    CONFIG_CPU_FREQ_GOV_POWERSAVE=y

  • CONFIG_CPU_IDLE_GOV_MENU=y

    并通过 lk.mk 设置默认 governor:

    MTK_CPU_FREQ_GOVERNOR := powersave

  • 限制 CPU 最大频率
    在 lk.mk 中定义频率上限(单位 kHz):

    MTK_CPU_MAX_FREQ := 1800000

    避免高性能模式下的功耗峰值。

http://www.lryc.cn/news/609688.html

相关文章:

  • 开疆智能ModbusTCP转Profient网关连接ER机器人配置案例
  • LeetCode 140:单词拆分 II
  • 机械设备制造企业:大型设备采购流程与注意事项
  • 百度翻译详解:包括PaddleNLP、百度AI开放平台、接口逆向(包括完整代码)
  • 晨控CK-GW08S与汇川AC系列PLC配置Ethernet/IP通讯连接手册
  • 【学习笔记】Manipulate-Anything(基于视觉-语言模型的机器人自动化操控系统)
  • Spark SQL:用SQL玩转大数据
  • ROS2机器人编程新书推荐-2025-精通ROS 2机器人编程:使用ROS 2进行复杂机器人的设计、构建、仿真与原型开发(第四版)
  • 力扣热题100——滑动窗口
  • Axure日期日历高保真动态交互原型
  • MySQL 约束知识体系:八大约束类型详细讲解
  • Java项目:基于SSM框架实现的电子病历管理系统【ssm+B/S架构+源码+数据库+毕业论文+远程部署】
  • Android 15.0 启动app时设置密码锁
  • 安卓264和265编码器回调编码数据写入文件的方法
  • Android进程基础:Zygote
  • 2025-08-04-零成本搭建 AI 应用!Hugging Face 免费 CPU 资源实战指南
  • Android Telephony 框架与横向支撑层
  • 如何选择一个容易被搜索引擎发现的域名?
  • 计算机网络:详解网络地址的计算步骤
  • 2.4- WPF中非 UI 线程上安全地更新 UI 控件方法
  • JVM学习日记(十六)Day16——性能监控与调优(三)
  • SpringBoot格式化数据库表格字段时间戳
  • vcpkg在vs/vscode下用法
  • 子词分词器(Byte Pair Encoding + WordPiece)
  • 深入解析SmolVLA:VLM与动作专家间的注意力机制交互
  • 深入剖析通用目标跟踪:一项综述
  • [自动化Adapt] 父子事件| 冗余过滤 | SQLite | SQLAlchemy | 会话工厂 | Alembic
  • RLCraft开服踩坑记录
  • 补:《每日AI-人工智能-编程日报》--2025年7月30日
  • AWS 可靠性工程深度实践: 从 Well-Architected 到“零失误”VPC 落地