How does sleep really work in the Android kernel?

I’ve been wondering about this for a while, but couldn’t find anything about it. What exactly happens after the screen turns off? Does the kernel actually suspend and halt the CPU? If so, how are notifications received while sleeping? Is there a coprocessor involved?

I’m curious. It would be great if someone could point me towards some articles or videos about this.

@android@lemmy.ml @android@lemmy.world @android@lemdro.id @android@kbin.social #android #linux #kernel #sleep #suspend

  • Lojcs
    link
    fedilink
    arrow-up
    7
    ·
    edit-2
    1 year ago

    I don’t think sleeping the cpu (in the sense of traditional s3 sleep) is involved. After 5 minutes of screen off time system enters doze mode, which sleeps all apps that aren’t exempt (via the settings toggle, accessibility, persistent notification etc). System stays awake and manages waking up apps every once in a while so they can sync. Apps can also be woken up at any time by alarms or by other apps. The way instant notifications work is via Google play services staying awake, receiving firebase notifications and waking up apps based on that. In new android versions (13+ I think?) there’s also a system that lets apps wake up from sleep based on how much you interact with them