Source: Getting screen brightness right for every user from Android Developer
Posted by Ben Murdoch, Software Engineer and Michael Wright, Android Framework Engineer
The screen on a mobile device is critical to the user experience. The improved Adaptive Brightness feature in Android P automatically manages the display to match your preferences for brightness level so you get the best experience, whatever the current lighting environment.
Screen brightness in Android is managed via Quick Settings or via the settings app
(Settings → Display → Brightness Level).
In Android Pie, Adaptive Brightness is enabled by default (Settings → Display → Adaptive Brightness).
While enabled, Android automatically selects a screen brightness that’s suitable for the user’s current ambient light conditions. Prior to Android Pie, the brightness slider didn’t represent an absolute screen brightness level, but a global adjustment factor for boosting or reducing the device manufacturer’s preset screen brightness curve across all ambient light levels:
* Setting the slider to center resulted in the device using the preset.
* Setting the slider to the left of center applied a negative scale factor, making the screen dimmer than the preset.
* Setting the slider to the right of center applied a positive scale factor, making the screen brighter than the preset.
So, under low ambient light conditions, you might prefer a brighter screen than the preset level and move the brightness slider up accordingly. But, because that adjustment would boost the brightness at all ambient light levels, you might find yourself needing to move the brightness slider back down in brighter ambient light. And so on, back and forth.
To improve this experience, we’ve introduced two important changes to screen brightness in Android Pie:
The slider control now represents absolute screen brightness rather than the global adjustment factor. That means that you may see it move on its own while Adaptive Brightness is on. This is expected behavior!
Humans perceive brightness on a logarithmic rather than linear scale1. That means changes in screen brightness are much more noticeable when the screen is dark versus bright. To match this difference in perception, we updated the brightness slider UI in the notification shade and System Settings app to work on a more human-like scale. This means you may need to move the slider farther to the right than you did on previous versions of Android for the same absolute screen brightness, and that when setting a dark screen brightness you have more precise control over exactly which brightness to set.
Prior to Android P, when developing a new Android device the device manufacturer would determine a baseline mapping from ambient brightness to screen brightness based on the display manufacturer’s recommendation and a bit of experimentation. All users of that device would receive the same baseline mapping and, while using the device, move the brightness slider around to set their global adjustment factor. To determine the final screen brightness, the system would first look at the room brightness and the baseline mapping to find the default screen brightness for that situation, and then apply the global adjustment factor.
What we found is that in many cases this global adjustment factor didn’t adequately capture personal preferences – that is, users tended to change the slider often for new lighting environments.
For Android Pie we worked with researchers from DeepMind to build a machine learning model that will observe the interactions that a user makes with the screen brightness slider, and train on-device to personalise the mapping of ambient light level to screen brightness.
This means that Android will learn what screen brightness is comfortable for a user in a given lighting environment. The user teaches it by manually adjusting the slider, and, as the software trains over time, the user should need to make fewer manual adjustments. In testing the feature, we’ve observed that after a week almost half our test users are making fewer manual adjustments while the total number of slider interactions across all internal test users was reduced by over 10%. The model that we’ve developed is updatable and will be tuned based on real world usage now that Android Pie has been released. This means that the model will continue to get better over time.
We believe that screen brightness is one of those things that should just work, and these changes in Android Pie are a step towards realizing that. For the best performance no matter where you are models run directly on the device rather than the cloud, and train overnight while the device charges.
The improved Adaptive Brightness feature is now available on Pixel devices and we are working with our OEM partners now to incorporate Adaptive Brightness into Android Pie builds for their devices.