Yay, progress!

“To strengthen the Android platform, our collaboration with Google has resulted in a unified policy that we expect will create a more consistent and reliable user experience for Galaxy users. Since One UI 6.0, foreground services of apps targeting Android 14 will be guaranteed to work as intended so long as they are developed according to Android's new foreground service API policy.” - Samsung

https://android-developers.googleblog.com/2023/05/improving-consistency-of-background-work-on-android.html

Improving Consistency of Background Work on Android

In Android 14, we are adding new functionality to the existing foreground services and JobScheduler APIs. Learn more.

Android Developers Blog
@hackbod I'm still wondering how manufacturers are able to break Android like this.
It makes a lot of applications not reliable, and so Android as become perceived as flaky :/

@geoffrey It's because Android is open source. They don't get a binary from Google, they get the source code. And can thus change it.

The CDD does make these kinds of changes fairly clearly a violation, but I don't think people realize how little control Google actually has over Android. (And that is by design, so one company can't control it like Microsoft does Windows.)

@hackbod I used to work for a manufacturer, so on top of AOSP (great job btw!).
I remember CTT were pretty strict. That's why I'm surprised such basic OS behavior can be hijacked
@geoffrey Do you mean CDD rather than CTT? For changes to background execution, I wouldn't call this hijacking -- it is OEMs trying to reduce battery use by changing the platform's behavior. These changes happen to impact app compat by breaking some core behaviors needed by various classes of apps, so they have a list of apps the change doesn't apply to. This means users don't notice it that much, and big apps aren't impacted, but a long tail of apps are in a world of hurt across the OEMs.

@hackbod
Not really, I was thinking about CTT mostly.
Of course CDD must enforce the correct behavior but I expected the CTT to prevent having this in production.
Developers documentation details Android's behavior for foreground services, that's why I'm surprised manufacturers have latitude to have such a big impact on Android.

And whitelisting big apps is almost a bigger concern, because you kill all the challengers. And Android has always been the home of innovation.

@geoffrey Ah okay it is CTT. :) My impression is CTT wouldn't really care, except impacts on carrier apps and such on the device, so OEMs just make sure those apps are in the exception list for breaking changes?

At least I have never gotten the impression of CTT putting any pressure on OEMs about this.

And yeah having a situation where the bigger apps get allowed to have the "correct" behavior and others need to convince all the OEMs to include them is really bad for the app ecosystem.

@hackbod yes true, that would be bypassed anyway.

We had pressure with CTT because we were a small team (Archos) and with TI boards 

@geoffrey Oh yeah it's a different world when you are small. 😛