I’m asking for Android specifically, but I’m curious what else is out there.
For example, some apps work without internet but may use it if it’s available. I might want to block that without having to turn off wifi, force stopping it, and wiping the cache/data.
Similarly, maybe I only want to use the app over a VPN and want to prevent accidentally opening it without first turning the VPN on.
Netguard is a FOSS Android app which kinda works like a firewall. You can allow/block network access on a per-application basis. You can limit access e.g. on WiFi or on mobile etc. It also supports blocklists, supplementing your ad blocker.
To the Android OS, Netguard acts as if it were a VPN.
Limitations:
The app is very stable, I have been using it for about 5 years without problems. For most use cases it is fire-and-forget, i.e. I rarely open the app any more.
I use it too and I like it, but OP needs to keep in mind that the apps that rely on Google Play Services will still have “Internet access” directly with it and Netguard can’t do anything about it. WhatsApp for example: you can block Internet access to the apps, but it will still be able to send/receive messages.