3 ms·
What part of that page indicates that you can't use the platform like that? They just say "more control over how apps run in the background". Presumably you ca
by avar 9y ago
What part of that page indicates that you can't use the platform like that? They just say "more control over how apps run in the background".
Presumably you can still give your users a good reason for why you need to run uninterrupted in the background and they can approve it similarly to how they now approve other permissions.
- dcow 9y agoThe way this is implemented is that the system will kill any background services your app has after a grace period, just like iOS. In order to have a background service that "good reason" equates to a persistent notification in the tray and icon in the status bar--which nobody agrees is a good product experience.
- avar 9y agoWhy is that not a good experience? Now I need to dig through Settings to find all these background services. If they're important enough to be running constantly they're important enough to take up some space to prominently show me that they're running.
- kuschku 9y agoYes, and you're okay with having 20 to 30 notifications at all times just to run open source apps, or would you say "this is too annoying, I'll switch back to the closed ones that spy on me". If you want the open source products to win, they need to be able to provide the same usability as the proprietary solution. This is not possible here - you need Google's FCM or you get major disadvantages, and this is problematic. I've filed a complaint with the EU, this seems like the only option I've got left. I can't tell everyone running a bouncer to register with Google, I can't relay all messages of all IRC users through a server of mine, and I can't bake in a Google API key into IRC bouncers (as that violates Google's ToS)
- avar 9y agoThis doesn't inherently have anything to do with open source, but the problem that whatever license the apps on the phone are under they can't all be implementing their own push/pull message queue, having 30 open network connections constantly waking up the phone is going to drain the battery. If I install 100 apps that have their own messaging implementation should the phone just not be showing that to me, even though my battery is now drained in half the time as a result? I'm pointing out that as a user this is very pertinent info to be showing me, if I have 30 apps running in the background I'd like to see it.
- kuschku 9y agoThat’s a fallacy. I tested it, the battery impact is zero if properly implemented. I implemented a prototype before, where I had a standardized protocol, and apps give the GCM library (I modified microG’s) a URL to connect to, and an auth token. microG’s GCM library would keep all those sockets open, just as it does with the sockets for Google’s several cloud messaging services, and upon receiving a message, wake up the app. As result, only one app runs in background, every app can use its own notification service, you have no battery loss, and you can keep everything open. All this can work. Google just doesn’t want it to.
- dcow 9y agoThere are a few things here. From a technical level, how do you think GCM/FCM is implemented? A socket is hardly a scarce resource and keeping 2 open is only 1/65535 more "expensive" (from a kernel standpoint not power/energy) than multiplexing two streams on one connection. It's possible FCM uses some micro polling strategy so that the radio can sleep for short bursts, but I don't see why the same mechanism can't be exposed to other apps if that was the case. Second, from a product level there is a double standard now. Apps that build infrastructure using Google's platform services don't have to put a persistent notification in front of users and clutter the phone ui. Apps that choose not to depend on google (the "open source" as it pertains here but you're right it's not limited to open source apps) do. That's a pretty obvious power play. If you want to see all the stuff going on in the background why are things that buddy up with google exempt from that in your eyes? I could flood your phone with a high priority FCM message every 500ms effectively making my app run all the time and you wouldn't know. There will be apps that do it (as there are with APNS on iOS) and it is in fact far worse for battery life. Maybe we differ on this point but there are certainly things I want happening in the background that don't need a ui. That's the precedent on the desktop anyway. BTW The ordering of FCM messages is not guaranteed so they're not even as useful as a TCP connection.