Google Android 6.0 to restrict OEM -related hidden battery usage stats
Up until now, OEMs were able to hide or even remove certain stats, but with Marshmallow that will not be possible anymore because the OS will account for power consumption better.
According to the Marshmallow Compatibility Definition Document, or the CDD, devices running on Android 6.0 will have more accurate accounting and reporting of power consumption for each and every app. Below you can read the whole matter:
Power Consumption Accounting
- Therefore, device implementations MUST be able to track hardware component power usage and attribute that power usage to specific applications. Specifically, implementations:
- MUST provide a per-component power profile that defines the current consumption value for each hardware component and the approximate battery drain caused by the components over time as documented in the Android Open Source Project site [Resources, 123].
- MUST report all power consumption values in milliampere hours (mAh)
- SHOULD be attributed to the hardware component itself if unable to attribute hardware component power usage to an application.
- MUST report CPU power consumption per each process’s UID. The Android Open Source Project meets the requirement through the uid_cputime kernel module implementation.
- MUST make this power usage available via the adb shell dumpsys batterystats shell command to the app developer [Resources, 124].
- MUST honor the android.intent.action.POWER_USAGE_SUMMARY intent and display a settings menu that shows this power usage [Resources, 125].
The full battery stats will be available and they will make things much easier to compare and find out which devices use the most power inefficiently. OEMs could be hiding the way they drain battery life through apps and services but, with Marshmallow, things are going to change. This is, assuming they all want Google certification, which will not happen unless they comply to these terms and others.