The company that makes your Android phone is doing Android memory management wrong. Because the best practices and in some cases actual requirements for access to Google Play aren't observed, app developers are seeing a new set of headaches if the apps they build need to work while you're looking at another screen or have the display turned off. Thankfully, the Urbandroid team has brought things to our attention with Dontkillmyapp.com. Here you'll find detailed descriptions of the problem as well as a scorecard for popular Android vendors rating each one's level of abuse with 1-5 piles of crap. Fitting
The statement at the website's GitHub page explains:
Ultimately, every indie Android developer is at least partly affected by this issue.
We at Urbandroid Team are affected heavily with our Sleep as Android app and we gathered so much information about hacks and workarounds that we felt the need to share the information. We started by contacting individual indie developers with offers to exchange information, which led to the idea of a more effective approach in the form of an open-source website.
The "issue" is that the companies making phones have changed how vital Android components like Doze work; have built apps that are designed to aggressively sweep and kill apps that are using system resources; and even building whitelists that say which apps are allowed to run while not on the screen. That's making apps that need to work in the background — like Urbandroid's Sleep as Android app unable to do what they were intended to do.
This all falls on the app developer's ears, as unhappy customers don't understand how memory management in Android works (nor should they need to) and why it's not just isolated to their affected app. Unhappy customers make for unhappy developers, which is five piles of crap bad for all of us.
Not all of Android is open
You might be thinking, "So what? Android is open source and companies that use it can do whatever they want with the code," and to some extent you'd be right. But all of that changes as soon as a phone maker wants access to Google Play.
Google Play Store access isn't freely given — there is an agreement that both sides need to follow.
Getting access to Google Play requires some rules to be followed, many of which seem arbitrary at first glance. That's a larger discussion for another article or two, but the gist of it is that Google wants to have a bare minimum of things in place on every phone so that every app in the Play Store will work as long as the phone is on a supported version. In other words, if an app's listing says it requires Android 4 or higher to run, every phone running Android 4 or higher should be able to install and use the app. No exceptions.
There are some detailed ways that a developer who wants or needs an app to be alive and working in the background — whenever you aren't actively looking at the screen — to do so in a way that's consistent across all phones. Google can then also improve other parts of Android and know what not to mess with if it wants all the apps to still work so it can try to stay backward-compliant.
That doesn't always work. Every person who's had a Nexus or Pixel phone will tell you that new versions of Android often lead to apps no longer working, and some never get updated. Sometimes a decision has to be made and cutting off an old feature to replace it with something new happens. And Google has stepped in its own mess a time or two and botched things up, like the initial release of Doze in Android 6.0.
It's important to be consistent if you want to use Google's other products. Even with an open source piece of software.
How did we get here?
Smartphone makers aren't doing this just for fun. Every company making phones wants you to like a product you buy from them enough to look at its brand the next time you buy a phone. If apps were being killed off for no reason it would not help that happen.
When we buy a phone there is usually one thing that's close to the top of the list of things we want from it: long battery life. One way to get longer battery life is to limit what a phone can do; that's why you only need to charge a "dumb" phone a couple of times per week. It's not really doing much, especially when it's not in your hands. Smartphones, though, need to do a lot of things.
Killing background tasks may be good for your battery, but it makes your smartphone dumb.
Google has a system that puts apps in a "sleep" state when they aren't actively doing anything but might need to in the future. It's done a lot of work — some good, some bad — to balance things so that you have a phone that can do things like track your steps, monitor your sleep, or act as a music player while the screen is off without draining your battery. It expects these methods to be used and rules to be followed so that we get that consistency from every app in the Play Store.
From Dontkillmyapp's list, Nokia is the example I'll use here, but the list of offenders includes OnePlus, Sony, and Samsung, too. Even Google itself is called out for making it difficult to exempt an app from getting "Dozed". Nokia includes an app on every phone the company makes that runs Android Oreo or higher that kills every background process 20 minutes after the screen is turned off. That means fitness apps are never going to work, but it also means that your alarm isn't going to go off if you have Android P.
How did we get to the point where our smartphones aren't allowed to be smart? Because we demanded longer battery life and companies making phones are also making bad decisions to give it to us. There aren't a lot of things that can be done to Android by a phone maker that will have a big impact on battery life. One of the things that can be done is to kill off apps that might not need to be alive. When one of the killed apps did need to stay alive it just doesn't work as intended.
Google needs to tighten the clamps
I hate saying this. Android is an open source project that has seen some incredible development by companies not named Google over the years. Companies using Android should do what they want and push every boundary to make it better. But then we get back to that consistency for apps from the Play Store thing again.
Users — including users who are the type who know and understand an issue like this — deserve better. Google needs to make that happen when it comes to apps from its store, and alter and enforce whatever it takes to make it so. Do it without any user involvement whatsoever, and do it consistently no matter how big the company "offending" is or how many phones it sells.
We deserve it.