`
quanminchaoren
  • 浏览: 924327 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android WakeLock解析

阅读更多

在Android中,申请WakeLock可以让你的进程持续执行即使手机进入睡眠模式,比较实用的是比如后台有网络功能,可以保证操作持续进行.

方法: 在操作之前加入

            PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
            wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, Constants.TAG);
            wakeLock.acquire();

别忘了在操作完毕之后释放掉

      if (wakeLock != null) {
                wakeLock.release();
                wakeLock = null;
            }

系统不睡眠时通过命令行查看Wake Lock的命令为:

adb shell dumpsys power;

打印出来的即是当前锁状态信息。

 

也可以adb shell进去,cd /sys/power/,

cat wake_lock;如cat wake_lock后打印出结果为powerservice,即存在一个powerservice wakelock,

手动清除当前wakelock用echo wakelockname > wake_unlock,即将存在的wakelock写进wake_unlock,如echo powerservice > wake_unlock。

 

分享到:
评论

相关推荐

    android休眠与唤醒机制.zip

    总结,这个资料包深入解析了Android系统的电源管理策略,特别是Wakelock在保持设备活跃和唤醒过程中的作用,以及如何实现远程唤醒和休眠功能。对于Android应用开发者和系统优化人员来说,理解和掌握这些知识至关重要...

    android_和linux的休眠唤醒机制

    ### android与Linux的休眠唤醒机制深度解析 在深入探讨Android和Linux的休眠唤醒机制之前,我们首先需要理解这两个操作系统的基本概念以及它们之间的关系。Android是基于Linux内核的操作系统,它在Linux的基础上...

    Linux Kernel and Android 休眠与唤醒

    本文将详细解析Linux内核中的休眠过程,以及Android系统如何利用这些机制。 休眠(suspend)在Linux内核中涉及三个主要阶段: 1. **冻结进程**:内核会暂停所有用户态和内核态的任务,保存它们的状态。解冻时,进程...

    Android应用源码之一键锁屏功能源码.zip

    PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "LockScreenTag"); wakeLock.acquire(); KeyguardManager ...

    Android一键锁屏源码

    本文将深入解析“Android一键锁屏源码”的核心概念、实现机制以及相关的编程技术。 首先,我们要理解Android系统的锁屏机制。在Android中,锁屏主要涉及电源管理和服务的概念。电源管理是系统控制屏幕亮度和设备...

    Android手电筒源码

    WakeLock wakeLock = powerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "TAG"); wakeLock.acquire(); ``` 别忘了在手电筒关闭时释放`WakeLock`: ```java ...

    LinuxKernelandAndroid休眠与唤醒[参考].pdf

    在Linux内核v2.6.28及Android v2.0版本中,休眠主要涉及`main.c`、`earlysuspend.c`和`wakelock.c`这三个关键文件。 在Android系统中,休眠过程由`state_store()`函数触发,并通过`request_suspend_state()`进入...

    android 一点技巧(更新中)

    首先,需要在`AndroidManifest.xml`中添加权限`<uses-permission android:name="android.permission.WAKE_LOCK" />`,然后获取`PowerManager`实例,创建`PARTIAL_WAKE_LOCK`类型的`WakeLock`,并在适当时候获取和...

    深入理解android 卷II 目录

    - **WakeLock客户端分析**:解析了客户端如何请求和释放WakeLock。 - **PMS acquireWakeLock分析**:详细分析了PowerManagerService如何处理客户端的WakeLock请求。 - **Power类及LightService类介绍**:介绍了...

    android-17 sources

    源码分析可以帮助我们理解如何有效地调度CPU、GPU,以及如何通过Wakelock和JobScheduler等工具进行性能优化。 10. **开发者工具与调试**: ADB(Android Debug Bridge)和DDMS(Dalvik Debug Monitor Service)等...

    android 4.0 桌面时钟源码DeskClock

    在Alarm和AlarmAlertWakeLock类中,我们可以看到如何使用SharedPreferences存储用户设置,以及如何使用WakeLock保持CPU运行,确保闹钟即使在屏幕关闭的情况下也能正常工作。这部分内容有助于理解Android的数据存储和...

    os.zip_android_androidos源码_os

    例如,Android引入了 ashmem(Android Shared Memory)机制,用于高效地共享内存,还有Wakelock机制来控制设备的休眠状态。 三、系统库层的解析 系统库层是Android系统的关键部分,它包含了Bionic libc、...

    Android电池消耗统计[定义].pdf

    每个条目不仅包括应用本身的CPU使用、唤醒锁(wakelock)时间、数据传输量、Wi-Fi状态和传感器使用时间等,还会特别指出如Android系统服务、内核进程以及各种子系统(如通话、蓝牙、Wi-Fi、屏幕使用、无线电和待机)的...

    Android 屏幕锁源码

    当设备被唤醒时,`PowerManager.WakeLock`用于保持屏幕亮起,直到解锁完成。源码中的`KeyguardUpdateMonitor`监控设备状态,适时更新锁屏信息。 6. **自定义锁屏**: Android支持第三方开发者创建自定义锁屏应用。...

    Android在线音乐播放器很实用Android开发

    还可以利用WakeLock保持CPU唤醒状态,确保音乐在屏幕关闭时仍能播放。 总结来说,开发一个实用的Android在线音乐播放器需要深入理解Android组件系统、媒体播放、网络请求、UI设计、服务管理、API集成以及性能优化等...

    android 问题总结

    以上总结了Android开发中常见的一些问题及其解决方案,包括`ScrollView`的使用技巧、线程通信机制、服务与Activity的交互、`ContentProvider`的应用场景、广播接收器的注册方式、XML解析技术的选择、Dialog的使用...

    Android Power Management

    <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.DEVICE_POWER" /> ``` - 所有唤醒锁必须正确配对使用,未及时释放会导致系统故障。 **在...

    Android内核驱动——电源管理

    应用程序可以通过获取wakelock来保持设备活跃,例如在后台下载或执行定时任务时。 四、电源策略 Android电源管理策略是基于设备类型和使用场景的。例如,对于智能手机,可能更注重电池寿命;而对于平板电脑,可能会...

    安卓Android源码——滑动屏幕调整屏幕亮度.rar

    通过PowerManager的WakeLock接口,可以控制设备在特定条件下保持唤醒状态,防止屏幕在亮度调整过程中自动熄灭。同时,PowerManager还提供获取设备当前亮度的方法,以便应用根据用户偏好进行动态调整。 4. Settings...

Global site tag (gtag.js) - Google Analytics