Smartphones, in tandem with the overall Android ecosystem, have evolved leaps and bounds in the past five years. Today’s flagship smartphones offer great performance power, but there is one particular inconsistency that has plagued most smartphones irrespective of their ecosystem – background power and resource management. In a bid to maximise the battery life on smartphones, device makers have often plugged in custom ‘optimisations’ via their own interfaces on devices, leading to many users complaining about a lack of homogeneity in terms of how apps behave on devices – flagship or otherwise. It is this that some members of Google’s Android engineering team highlighted in an AMA session on Reddit, held on July 3.
The app freezing issue
During the AMA, Reddit user ready_player_six asked, “Are there any plans to reduce the background limitations set by various (mainly Chinese) device manufacturers in Android 11?” This is a particularly important issue, and is something that most phone makers have struggled with over time.In late 2019, Apple was reported to have a memory management issue in iOS 13 where background apps were being stifled to streamline the overall performance of iPhones. Before that, Apple was accused of deliberately throttling the performance of even its newest iPhones, in a bid to preserve battery life. After some furore, Apple integrated settings for both in iOS, where users can now choose whether to kill background apps or keep them, and also whether to prioritise performance or battery life.
On Android, however, the issue is bigger, and more difficult to resolve. In the Android devices ecosystem, Google sources its version of the operating system to a massive number of OEMs. While packaging the total set of offerings, Google includes certain tweaks and optimisations to suggest how background apps should operate – so as to not die and restart all the time, but also to conserve on battery and RAM conservation. What complicates things are the wide variety of custom software and optimisations that each OEM puts on top of Android – because of proprietary decisions, phones from each manufacturer differs in background app behaviour from one another. It is also this that makes the overall app usage experience highly inconsistent. On the Play Store, certain ‘top’ apps are whitelisted to remain running in the background, while apps by smaller and relatively unknown developers will likely be barred from accessing resources while in the background.
What indie devs are saying
It is this that Google’s engineers were asked about at the AMA session. As ready_player_six said:
Developing an app that needs to do any background work is hard, as it is impossible to test the different restrictions without owning devices for these manufacturers. Users blame the developers for a non-functioning app, while it's the limitations set by the manufacturer that kills the app. On top of that, the top apps on the play store are whitelisted by these manufacturers and aren't influenced by the background limitations, which makes it unfair and even more confusing for users as to why some apps work while others don’t.
In response, Google says that they are doing some things to make the entire situation better. “Our team has been working on (background app killing) for a while – it doesn’t help that each manufacturer does it differently. We feel the developer community’s pain and are committed to solving it. We’ve been in discussions with many device manufacturers to understand the reasoning behind their implementations, not just to preserve battery life, but also to protect users from misbehaving apps,” the folks from Google stated, before underlining what they’re doing to support smaller, independent developers.
The first step, Google says, is updating the Compatibility Definition Document for Android 11. In simpler terms, beginning with Android 11, users will get pop-up notifications telling them about how an app is being used (or blocked) in the background. This, Google says, will help the users to take a call on whether they want to allow certain apps to keep using memory and data in the background, or stop them from it.
The second point that Google highlighted is that they “require that device manufacturers don’t create allow lists for top apps.” This, however, yet again appears to be work in progress, since most indie developers have stated that OEMs are employing such tactics, which in turn significantly prohibit any new developer from really showcasing their app. While the checks were put in place to prevent malicious apps from taking advantage, it is also detrimental towards promoting a free, open market for apps. On this note, Google also stated that it is “working with device manufacturers” to fix violations with regards to app behaviour.
Finally, to help developers better understand why their apps are being killed, and hence offer a resolution to user reviews of apps complaining about crashes, Google said that it is adding a new API that will allow developers to gauge exactly this. Google also stated it is attempting to make Android more “resilient”. There aren’t any particularly clear explanation on this, apart from the Android dev team stating that such a move would “allow device manufacturers to move away from any aggressive killing they are doing.”
Is this enough?
Over time, there have been numerous anti-trust and anti-competitive allegations against Google in terms of their general practices – with Search, Play Store and other popular platforms. The background app refresh issue, on this note, seems like a particularly tricky one to resolve, especially with Android being such a fragmented ecosystem. On this note, Google’s suggested steps are only a first step forward in acknowledging that there is a bias in the system when it comes to dealing with apps and smartphone memory managementHowever, it does not particularly deal with it – for instance, giving people the ability to decide on background app resource consumption isn’t a straightforward resolution, since not all users would be savvy enough to make use of these features, and it is actually unreasonable to expect everyone to do so. There will have to be better, more holistic ways for Google to deal with a particularly sensitive issue as this.