>Most system APIs are backported through Google's libraries, and for many others the standard compat library has shims that avoid most version checks.
Just 6 months ago I took a small side project to port a web app to mobile and add some native functionality. I need to connect the user to a WiFi hotspot (industrial device controller) from code - the new APIs were absolutly not backwards compatible, the old APIs were just killed in Q, even worse the capabilites present in the old APIs (controlling WiFi networks) half wroked on older devices, depending on vendor (eg. not working on Samsung, working on a Pixel, etc.)
iOS didn't expose the level of controll straight up and I was able to explain to client that that's just not possible. We saw Android was all over the place in this regard, but because a competitor had a halfassed version that only worked on some devices the client insisted it was possible to implement this on Android. It took us a week to figure out that the whole thing is an unmanageable mess and demo to the client that the competitor is broken in so many scenarios and that we should just use the system UI like we do on the iOS.
>On iOS, these apps would probably not even be available.
See but I prefer this to Android "it's possible because we were wrong, now we leave it out there but you can't do it going forward". Why not just blacklist it in app store and prevent new apps from using it on review ? Also it's obvious they don't have any sort of certification testing for these APIs because they just straight out don't work on various vendors - they could easily mandate that to qualify for Google services on your device you need to implement system APIs and pass the test suite to solve these inconsistencies.