[Lenovo P2 ROMs, Kernels, Recoveries, & Other Devel] johnwigley:
Yes, despite the protestations that they're totally unnecessary on Android 9.0 battery saver apps CAN and DO make a difference...

There is a big difference in practical vs theoretical power saving - I consider practical power management to be low standby power drain during the day WHILST phone is in pocket moving around as usual, and needed apps respond instantly to inbound notifications not being delayed for 10+ minutes until phone is in doze maintenance state. That is very different to leaving phone overnight and having doze kick in after an hour of not moving around, and having app notifications delayed by random times, coming back to it in the morning and congratulating yourself on less than 1%/hr power drain.

Firstly, Greenify is the only app that I've found that can successfully disable the Doze motion sensing - Forcedoze, Naptime etc all claim to but in my testing on this rom do not actually manage to do so.

Easily repeated test: force phone into Deep Doze mode (adb shell dumpsys deviceidle step deep), physically shake it to try and trigger it out of doze mode, and then check whether it's still in Deep Doze mode (adb shell dumpsys deviceidle get deep). Greenify is only app that passes that test with this rom, I do not personally use any of Greenify's hibernation features, only to disable Doze motion sensing.

For most people testing the power saving overnight is NOT representative of actually carrying around the phone during the day, which will NOT be in Deep Doze unless it's sat idle for a long time (such as overnight).

Secondly, Forcedoze or Naptime can be used to configure instant Deep Doze on power off (I have 10s delay), despite claims to contrary the Aggressive Doze in settings does not seem to very quickly enter Deep Doze mode, and will instantly come out of it if the phone is moved.

Thirdly, exclude the apps you actually want to respond instantly, Email, IM etc from Battery Optimisation, so they're not delayed by being in Doze mode.

Fourth, enable background use restriction for all other apps that end up waking the phone up (Better battery stats can show you this as can several other apps).

Fifth, use PNF (Push Notifications Fixer) set to issue GCM heartbeat every 5 mins on Wifi and Mobile data to ensure instant reception of push notifications.

For excluding battery optimisation and setting background restriction you can either do it in the individual apps info settings. Settings->Applications->App name, or else using an App Ops tool such as the built in privacy manager or the third party App Ops tools.

End results with my testing (GPS based location fully enabled, BT on and a single BLE connection active, Wifi/BT roaming scans disabled, nothing else disabled I can think of, including no disabling of GMS background location providers etc):

On mobile data, Wifi inactive: standby time just under 6 days.

On Wifi, mobile data inactive: standby time just reached of 16.5 days.

Wifi AND mobile data simultaneously connected: currently testing, but looking around 5 days.

Results will obviously vary with configuration, signal strength etc, but I have 4 email accounts, Whatsapp, Skype, Fb, FB M, Telegram, MS Teams all active and excluded from battery optimisation so they respond instantly. Approximately 100 inbound GCM notifications per day across the IM and email accounts. Theoretically, high priority GCM push notifications SHOULD cause Doze to exit for the receiving app BUT my testing shows that does not seem to work reliably for Whatsapp and Skype both of which can experience delayed notifications of several minutes without being excluded from Doze. Gmail does not use high priority GCM pushes for some inbound emails which is a pain if you use it for critical emails (I don't) as the phone will not instantly respond.

I also disable the Android 9 "Intelligent" battery management (Battery manager->Manage apps automatically) as that shunts around the apps classifications into the various app standby "buckets" and can also lead to Android helpfully deactivating apps you want to remain running, you can manually edit the categorisations under App Standby menu in Developer Options. This is another mechanism that achieves roughly the same effect as setting the background app restriction, autostarts etc, but Android will decide how to categorise apps based on use, and change them at will if you leave that enabled.

Your mileage may vary...