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

Android10 系统休眠调试相关

Android10 系统休眠调试相关

  1. 实时打印休眠日志(实测好像没作用):echo 1 > /sys/module/printk/parameters/console_suspend

  2. 查看唤醒锁:cat sys/power/wake_lock

    msm8953_64:/ # cat sys/power/wake_lock
    PowerManager.SuspendLockout PowerManagerService.Display PowerManagerService.WakeLocks
    

    PowerManager.SuspendLockout:autosuspend相关。jni nativeSetAutoSuspend->disableAutoSuspend中处理

    PowerManagerService.Display:屏幕锁,亮屏后持有,息屏则释放。DisplayManagerInternal.DisplayPowerCallbacks中处理

    PowerManagerService.WakeLocks:PMS(mWakeLockSuspendBlocker)持有阻止休眠

  3. 查看释放的唤醒锁:cat sys/power/wake_unlock

    msm8953_64:/ # cat sys/power/wake_unlock
    ApmAudio ApmOutput CHG_PLCY_MAIN_WL IdleMaint KeyEvents PowerManagerService.Broadcasts cne_imsa_ind_handler_wl_ enablecrypto429 netmgr_wl qcril qcril_pre_client_init radio-interface rmt_storage_496693144912 rmt_storage_496710958416 rpmb_access_wakelock tftp_server_wakelock
    msm8953_64:/ #
    
  4. 查看是否自动休眠:cat sys/power/autosleep

    msm8953_64:/ # cat sys/power/autosleep
    off
    msm8953_64:/ #
    
  5. 查看冻结进程的超时时间(ms):cat /sys/power/pm_freeze_timeout

    msm8953_64:/ # cat /sys/power/pm_freeze_timeout
    20000
    msm8953_64:/ #
    
  6. 查看休眠/唤醒模式:cat /sys/power/pm_async

    msm8953_64:/ # cat /sys/power/pm_async
    1
    msm8953_64:/ #
    

    0:串行模式,速度慢 1:异步模式 ,速度较快

  7. 查看支持的休眠模式:cat /sys/power/state

    msm8953_64:/ # cat /sys/power/state
    freeze mem
    msm8953_64:/ #
    

    mem:挂起到内存(suspend-to-RAM),保留运行状态
    disk:挂起到磁盘(suspend-to-disk),完全断电
    standby:浅度休眠
    freeze:仅冻结进程(无设备低功耗)

  8. 查看系统启动以来唤醒次数:cat /sys/power/wakeup_count

  9. 查看唤醒源:cat /sys/kernel/debug/wakeup_sources

    msm8953_64:/ # cat /sys/kernel/debug/wakeup_sources
    name   active_count event_count  wakeup_count expire_count active_since total_time max_time last_change     prevent_suspend_time
    ipc00000267_8924_CAM_GYRO               0               0               0               0               0               0               0               2290390         0
    ipc00000266_8924_CAM_GYRO               0               0               0               0               0               0               0               2290390         0
    ipc00000265_8924_CAM_GYRO               0               0               0               0               0               0               0               2289397         0
    PowerManagerService.Broadcasts          2               2               0               0               0               357             292             2287353         0
    cne_imsa_ind_handler_wl_                1               1               0               0               0               1001            1001            77372           0
    ......
    msm8953_64:/ #
    
    字段字段说明
    name唤醒源名称(如设备驱动名)
    active_count累计激活次数
    event_count触发事件总数
    wakeup_count成功唤醒系统次数
    active_since最近激活时间戳(jiffies)
    total_time总活跃时长(毫秒)
    max_time单次最长活跃时间
    active当前是否处于活跃状态(1/0)
    last_change最后一次状态变更时间
http://www.dtcms.com/a/316641.html

相关文章:

  • 力扣热题100-------169.多数元素
  • 工作相关: 预刷真值与人工标注的真值之间的关系 以及 真值与原始数据的关系,
  • 站在JS的角度,看鸿蒙中的ArkTs
  • 从汇编角度揭秘C++构造函数(1)
  • 数据安全——解读大数据安全架构设计方案【附全文阅读】
  • 力扣-283.移动零
  • Claude Code实战体验:AI智能编程助手如何重塑开发工作流?
  • MyBatis-Plus主键回填详解:插入数据后自动获取主键值
  • WSN - Wirth syntax notation 沃斯语法符号
  • 模板的进阶
  • JAVA,ThreadLocal
  • 浮动路由和BFD配置
  • 瀑布模型与敏捷开发的选择分析
  • 如何在nuxt项目中使用scss
  • 数据库SQL高阶操作1——Mysql8转换DM8相关sql语法写法优化调整,包括递归,函数,以及方言等特殊操作的改造支持
  • vue2 vue3 区别
  • PostGIS面试题及详细答案120道之 (101-110 )
  • 解决微信小程序中camera组件被view事件穿透触发对焦以及camera的bindtap事件
  • 猜数字游戏 Java
  • 并发编程的三要素是什么
  • Docker Desktop
  • 实战项目3-工控软件-2.0- 自定义控件HMILabel的创建
  • 用 Spark 找出最大值:高性能计算的正确姿势
  • 线性筛和os数组(牛客多校25年#7-G)
  • (ZipList入门笔记二)为何ZipList可以实现内存压缩,可以详细介绍一下吗
  • web_socket_channel 后台重连机制失败
  • Kafka 的基本操作(1)
  • Web存储技术详解:sessionStorage、localStorage与Cookie
  • MySQL 深分页优化方案
  • Matplotlib(六)- 坐标轴定制