Battery life is usually less than expected due to unoptimized software and processors clocking too high. On my devices, I set the CPU governor to 'powersave', which reduces power usage but also performance.
There are multiple scaling governor settings which might not be available on all devices (depends on kernel configuration)
- performance : high frequency; slightly increased performance and battery consumption
- powersave : low frequency; reduced performance and superior batter life
- schedutil : changes according to the scheduler (default on my device)
This command list the available governors to set for each core (should be more than those I listed above)
sudo cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_governors
Report which governors are currently selected for each core:
sudo cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
Set the scaling governor to powersave to every core:
echo "powersave" | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
The commands above do not need mounting root as read-write, any change is reverted on reboot.
I tried to make an app for configuring these (a while ago) but I had trouble with sudo.