首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android电源管理基础知识整理

    内核当中关于WakeLock的主要源码位于: kernel_common/include/linux/wakelock.h kernel_common/kernel/power/wakelock.c ?...机制,引入wakeup source机制来进行睡眠管理,为了保证上层接口不变,Android的Linux内核便将wakeup source包装成wakelockWakeLock的数据结构如下: ?...wakelock数据结构 当我们应用层释放锁之后,它并不会马上消失。...wakelock分为激活和非激活状态,非激活状态300S之内,无人在申请wakelock,那么它将从红黑二叉树,LRU链表当中删除,如此便可复用锁,节省系统开销。...需要注意的是Early Suspend机制与WakeLock机制相互独立,就算有应用持有wakelock锁,系统依旧可以通过Early Suspend机制关闭与显示相关的外设。

    5.2K21

    Android性能优化(九)之被忽视的电量

    单独查看360手机助手,此处显示WakeLock的使用 可以看出:360手机助手使用WakeLock的场景有:推送、定时任务、利用系统账号同步、服务等。...尤其是与AlarmManager或者WakeLock连用的场景下,耗电量会更多。...一些App为了能在后台持续做事情,就会持有一个WakeLock,那么手机就不会进入休眠状态,App要做的事情能做了,但是也更加耗电。...App在前台不要申请WakeLock,此时无需申请,申请的话会计算到应用电量消耗; App在后台由于业务需要必须要申请WakeLock时使用带有超时参数的方法,防止由于忘记或者异常情况下没有释放; App...申请使用WakeLock,任务结束之后及时释放,让系统再次进入休眠状态。

    2.4K30

    华为:既满足用户体验,又节省功耗的App应用设计开发方法

    Wakelock长时间持锁 上图是Android的休眠机制,刚开始的时候系统被频繁的唤醒,在息屏后一段时间会进入浅睡眠,这时网路访问就没有了、Syncs以及Jobs Deferred都不推荐使用,但是定期还是会有一个维护窗口...为了不让系统的休眠导致应用进程结束,一般需要设置Wakelock。...Wakelock有两种使用形式,一种是采用PowerMananger申请Wakelock锁,这段时间内系统不会进入休眠状态;另一种是直接使用底层的wake_lock或wake_unlock接口来避免系统进入休眠状态...Wakelock持锁如果忘记释放,会导致系统一直被频繁唤醒无法进入浅睡眠而一直处于异常耗电状态。程序获持锁之后异常退出会导致wake_lock一直被开启,这时也系统也是处于异常耗电状态。

    1.6K70

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券