禁止Android系统进入深休眠的方法

阅读: 评论:0

禁止Android系统进入深休眠的方法

禁止Android系统进入深休眠的方法

在PowerManagerService中,mWakeLockSuspendBlocker是控制CPU休眠的锁;
,mDisplaySuspendBlocker是控制显示开关的锁。

通过查看文件,亮屏时看到的也是这两个锁:

# cat /sys/power/wake_lock                                          
PowerManagerService.Display PowerManagerService.WakeLocks

当按下电源键,会调用goToSleep—>goToSleepInternal —>goToSleepNoUpdateLocked—>updatePowerStateLocked;

当Activity用户无操作活动超时,会调用handleUserActivityTimeout—>updatePowerStateLocked—>;

最终走的都是updatePowerStateLocked

如果想实现按power键不关闭屏幕,则不让mDisplaySuspendBlocker进行release操作即可。

frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java
         @Override // Binder call  
         public void goToSleep(long eventTime, int reason, int flags) {  
+            if(true){  
+                return;  
+            }  
             if (eventTime > SystemClock.uptimeMillis()) {  
                 throw new IllegalArgumentException("event time must not be in the future");  
             }  

如果想实现关闭屏幕后系统不进入休眠,,则让mDisplaySuspendBlocker进行release操作,mWakeLockSuspendBlocker不进行release操作。

frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java
    /**
     * Updates the suspend blocker that keeps the CPU alive.
     *
     * This function must have no other side-effects.
     */
    private void updateSuspendBlockerLocked() {
 
+        if (Boolean("sys.pms.holding_wake_lock", false)){
+            Slog.d(TAG, "Holding wake lock suspend blocker");
+            return;
+        }
+
         // Then release suspend blockers if needed.
         if (!needWakeLockSuspendBlocker && mHoldingWakeLockSuspendBlocker) {
             lease();
 

本文发布于:2024-02-02 20:55:33,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170687854246391.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:方法   系统   Android
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23