Android (and Apple) have a relatively rigid development toolkit. For Android you develop using the Java programming language against the Android APIs. The NDK is available, and you can always hack up methods to call the Android APIs from your favourite programming language (e.g. Python) but it's cumbersome.
I develop software for SailfishOS. It's like the Linux desktop. I SSH into my phone. zypper/pkcon install some dev tools (e.g. gcc, make, git). I initialise a Python virtualenv, pull down some libraries (e.g. Flask). I want to query SMS messages? I open an sqlite database on the filesystem. I can define services using systemd files. It really is "just Linux" underneath.