this post was submitted on 06 Sep 2023
20 points (100.0% liked)

Android

9355 readers
1 users here now

A place to discuss anything related to Android or Android adjacent.


INFO:


Check Out Our Partner Communities:

[email protected]

founded 4 years ago
MODERATORS
 

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.

@[email protected] @[email protected] @[email protected] @[email protected] #android #linux #kernel #sleep #suspend

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 6 points 1 year ago* (last edited 1 year ago) (2 children)

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

[–] [email protected] 2 points 1 year ago (3 children)

@Lojcs You think so? It must do something on the hardware level. If you install something like @postmarketos and let the deivce just sit doing nothing with its screen off, the battery doesn't last nearly as long as with Android. There must be some trickery going on...

[–] [email protected] 9 points 1 year ago

Your mobile device cannot sleep like your desktop can.

It can however, sleep it's own way. Typically this involves CPU throttling. Android does enter a "Deep Sleep" state, minimizing all power consumption, and even switching it's CPU to a completely idle state where it only periodically "wakes" to handle synchronization and other needed tasks.

https://developer.android.com/training/monitoring-device-state/doze-standby

[–] [email protected] 2 points 1 year ago

Hi there! Your text contains links to other Lemmy communities, here are correct links for Lemmy users: [email protected]

[–] [email protected] 2 points 1 year ago

Earlier I've read that it only keeps a single CPU core as active, at least for most of the time sleeping. But take this with a grain of salt, it was long ago so I may misremembered it, and also it might have changed a lot since then, but afaik this was a technique they once used (and may still do)