[Huawei P9 ROMs, Kernels, Recoveries, & Other Devel] zgfg:
To fight against battery drain I'm using:

1) native Settings / Apps - Disable

2) native Settings / Battery / Close Apps after Screenlock

3) native Settings / Apps / Settings wheel / Special access / Ignore Battery Optimizations

4) ForceDoze (from Google Play, root required) / Settings / "Doze Notification blocklist"

Before all that:

- BT and NFC turned off (I almost never need them), scanning for BT when BT disabled also switched Off

- 3G preferred (3G is usually enough fast if signal is good, no need for 4G

- Location on WiFi and Mobile Networks (not GPS) - if/when I start navigation it will ask for enabling GPS

- Location History turned and Google Play / Google Protect off (even if not emptying battery I don't like the Big Brother)

- Auto Brightness for Display also Off (saving some power on not needing the sensor, and annoying when it automatically adjusts up/down)

See also: https://xdaforums.com/showpost.php?p=73534645&postcount=461

1)

By uninstalling (non-system apps) and by (1) (disabling apps not allowing uninstallation) I get rid of unwanted apps. If I don't want them and never use them, why should they eat resources.

Generally, MagicRainbow already comes (if properly installed) without a number of bloatware.

E.g., I use GBoard and I have uninstalled/disabled Swipe for Huawei and SwiftKey.

Also, I prefer BlueMaiiland hence I disabled GMail and Email.

Similarly, I disable Weather, since using Today Weather app (widget) instead.

Health is battery gasler (constantly monitoring sensors to detect physical activity), I don't need one to count my steps and I disabled it as well.

2)

Under (2) I have listed almost all apps except apps like Maps (Navigation must keep going on besides the locked screen), Mixplorer, Files, Drive, Mega (I might be up/downloading something big), WhatsApp and services like ForceDoze, Viper4Android, etc.

If using iYBT Magisk Module (playing YT in background) you can also list YouTube.

Think which for apps it make sense to be running in the background, the rest you can close (e.g., no use for Calculator to run in the background, etc). That way, less need to frantically clean apps from the background ( they will no more eat battery whenever display switches off).

3)

There are some apps that want to stay active in the background, even when display switches off. That way they basically prevent phone to go to the Doze mode, or wake it to often, resulting with eg unnecessary battery drain over night. To prevent, list these apps under (3).

As a general rule, here come mostly the same apps as listed under (2).

4)

Useful for special purposes. Eg, I receive several hundreds of Skype and Skype for Business messages a day and night - the way we communicate on the job. However, when I am at work, I use Skype (and mail) on PC. At home I don't want to be disturbed every minute - I will manually open Skype (and mail) to be briefed about what's going on few times in the evening, but with this rate of incoming Skype notifications, phone will almost never go to Doze.

To the other side, WhatsApp serves me for family and friends, and I want to be instantly notified about any incoming message.

Hence, I listed Blue Mail, Skype and Skype for Business (but not WhatsApp) under (4).

Btw, I have also listed Skype under (2) and (3) - I know there will be tens of new messages (I will nevertheless open mail and Skype when suitable for me). That way Skype remains blocked and I don't see a number of new Skype messages whenever I press Power button on the lock screen.

However, I want to see a number of unread emails, hence I don't list BlueMail under (2) and (3) - when I shortly wake up by pressing Power button on the locked screen, BlueMail will connect and notify me about the new mails - because of (4), BlueMail does not collect them during the Doze.

By disabling constant 4G, BT, NTS, GPS, etc. and by basic cleaning of bloatware and unwanted apps, you can reduce battery consumption from 2-4% per hour to cca 1.5% during the idle time (night).

By (1-3), you can further reduce to like 1% per hour.

Finally, (4) helped me to get down to acceptable < 0.7% per hour overnight - while phone, WiFi, etc, everything is still running and I can receive any urgent call or WA notification if necessary.

Of course, there is similar saving during the day, with the phone idle.

PS:

a) I was experimenting with Magisk module "Enable Doze on Google Play Services" but it was blocking me all PNS notifications (e.g., I was not receiving WhatsApp notifications on the locked screen)

b) I was also experimenting with another option in ForceDoze Settings, "Doze app blocklist", but observed an unwanted (and annoying) side-effect:

- Organize an app icon into a folder on the home screen or hide the app to the hidden screen

- If that app was on the "Doze app blocklist", every time when screen gets unlocked, app icon will be displaced (from its folder or hidden screen) to the home screen as a newly installed app