If you're an Android user, you've probably seen more and more "glitches" lately, where you get delayed notifications, events, or even alarms.
My experience with a Samsung Galaxy S6
I have a second-hand Chinese-made "Samsung" Galaxy S6 (there's a whole other post to write about buying second hand phones; at least make sure the phone is built in the same country as the manufacturer says, and that it works with your SIM card - make sure to try calling someone, and browsing the web).
The default clock widget is called "Weather and Clock", which leads you to a weather app even if you tap on the clock. There is one way to disable this: use the weather-free clock widget. However, when you tap that, you get absolutely nothing.
Usually, Android offers easy access to the alarms, stopwatch, and timer by tapping on the clock widget. But to have this behaviour on an S6, you have to add a shortcut to the Clock app, using up an extra icon spot on the home screen like so:
I could not get used to tapping the Clock app. I wanted the default Android behaviour that would not waste my home screen real estate.
So, I installed a libre clock app from F-Droid. Lo and behold, I can get the tapping behaviour I want. But now comes another "glitch":
When I steep tea and try to use a timer, the process freezes 5 seconds after the screen turns off, rendering this free-as-in-freedom clock application almost useless.
I have turned off Power saving, as well as removed the app from being "battery optimized" (a.k.a. killed) in the Battery -> tiny Battery Usage button -> tiny 3-dots menu button -> Optimize battery usage -> tap "Apps not optimized" and choose "All apps" instead -> Find your app manually in a huge list and disable the button on its right.
Note: Because this is so hard to perform, it is a Dark Pattern. I believe it is meant to discourage you from using third-party background/automated apps. I can not explain this simply by incompetence of developers; I am quite convinced the Android or Samsung developers are prevented from fixing this.
But even after performing the steps in this dark pattern, the only benefit I got is an additional 5 to 15 seconds of timer time, before it being killed.
There are some people gathering data about this excessive app killing (even foreground ones!), turning smartphones into dumbphones, and Samsung is among the offenders: Don't kill my app!
Firebase & notifications
I tried using libre-software communication apps Nextcloud Talk and Delta Chat. But they don't work satisfactorily because notifications are iffy.
Trying to find out why this is the case, I was shocked to find out that Google manages every notification on your phone.
The only way to get a notification from a background service to your screen (waking up the device) is to use Google Firebase / Cloud Messaging (formerly just Google Cloud Messaging). This piece of work is needed even if your application would otherwise be offline - all for "conserving battery".
- Delta Chat gets around this by having an always-on notification, keeping the process in the foreground, but in my experience it doesn't work that great either. It could have to do with battery optimizers putting it to sleep (see "App killing" above).
- Nextcloud Talk installed from F-Droid has no notifications. They are thinking about offering notification support without Firebase. Only the Google Play version has notifications, and they are through Firebase.
Here are more details about Cloud Messaging, straight from the horse's mouth.
Blocking WiFi scanning for other apps while Google Location Services still scans everything
There exists an Android Pie bug report, which is starred by 297 people as of writing this. The report is asking for Google to be less aggressive with blocking Wi-Fi scanning for apps. Some apps used it for indoor localization, others for helping users optimize radio channel usage, and others to detect rogue access points.
Google took away their ability to function by severely limiting the number of scans, again for "battery usage" reasons. This is in spite of the fact that users clearly wanted those apps to use battery.
I call bullshit on this, and here are two reasons why.
1. The (missing) permission for frequent Wi-Fi scans
It can be done via the "NETWORK_SETTINGS" permission, but that is only available to apps signed with the same key as the OS itself (this is Google, for most people). It is not accessible to users even with developer tools turned on. Why so secure?
2. Google records Wi-Fi access points constantly
In this article it is shown how to disable Google's constant Wi-Fi scanning.
Notice the wording: "Let Google's location service and other apps scan for networks, even when Wi-Fi is off". This means Google can screw with your "battery usage", but competitors can't.
Why would Google throttle everyone else's Wi-Fi scanning, but not their own? One explanation I found is to prevent any competitors or community efforts from gathering data that would threaten Google's Geolocation API moolah.
Perhaps the Chrome integration anti-trust fine was not enough for Google, and they are begging for more.
Eh, at least you can turn it off for Google as well, and improve your "battery usage".
Open Source is not Free/Libre Software
As you know, Android is "Open Source".
"Open Source" means "you can look at the source". But this is not enough, because it's pointless if you can't change the actual software running on the device. The device itself is heavily locked-down.
This is why GNU is against the "Open Source" term. I agree, and I will try to use "libre software" or "free software".
Why all this?
Google's and other manufacturer's actions in the market should tell you that the mobile industry is not a hardware business anymore, but one about "Internet Services" - i.e. subscription payments and/or watching ads. Check out TechAltar's YouTube video on the subject, focusing on Xiaomi..
This involves cheaper hardware, but with strings attached - you do not have software freedom on it.
The providers claim reducing battery usage as an excuse, but reducing battery usage can justify killing anything on a phone. Same as banning cars to prevent car accidents.
Sadly, many consumers fell into these traps, with their money. But you don't have to follow them.
If you find yourself bugged by your phone working unreliably, especially on background processes, the most effective way to send a signal to the manufacturers is to avoid buying it, or to return it, provide the reasons, and ask for your money back. If there's anything the manufacturers care about, it's money.
If you have an older device, check out if it is by any chance supported by Lineage OS. That is a freer-software operating system, and is a step in the right direction; though it still includes some vendor-specific binary blobs. I've had a much better experience on old phones with Lineage than with the vendor's distro (except you will lose your warranty, and I overheated my Moto G to death within 8 months: Lineage had no thermal throttling/protection in my case; be warned!).
If you're looking to buy a new device, consider whether LineageOS supports it. This way, in the event the manufacturer pushes glitchy apps, and the seller won't take back the phone, at least you can flash Lineage on it (but be aware of the risks).
Or you can try different ROMs. Check out XDA-Developers, a mobile modding site. Of course, these come with higher risks.
Apple is not an alternative; they offer even less control of your own device. While the article gives an idea of what Apple did, it also claims something I disagree with:
Of course, when a chemically aged battery is replaced with a new one, iPhone performance returns to normal when operated in standard conditions.
That is not true, because of software bloat. Every update packs more and more features, and is designed for newer and newer devices. It seems the lawyered-up people didn't know that, hehe.
Also, if you don't update, bad things might happen.
Another alternative is to use a tablet + a dumbphone. This is what I do; the tablet is my cheap "Samsung" that does not work on a mobile network. Paradoxically, the cheap 3G dumbphone I own keeps my alarms and calendar events more reliably than the Galaxy I mentioned (sadly it doesn't have a timer feature; I use KTeaTime on my laptop now). I use the dumbphone as my main phone. As a bonus, the Calculator app starts up much faster. This is in spite of the price difference. Why pay for a smartphone, and get a dumb-crippled one? For maps I use OsmAnd, which is based on OpenStreetMap, and I warmly recommend it - even has offline navigation.
Lastly, I'd appreciate if you shared this post with your friends. Friends don't let friends pay for smartphones but get dumbphones!