The way that Google and Apple approaches programming is a little obtuse and it never gets out of the way.
Without someone like Linus Torvalds rewriting a whole new approach to mobile phones we're all stuck with the majority offerings from lock-in corporations.
Then there's telcos and manufacturers who never get out of the way either. So, even if we run to changemakers like FDroid the desired compatibility is still limited by a cacophony of weird restrictions and unknown difficulties.
With mobile phones we need to start manufacturing with Open Source to get the compatible-mobiles industry up to standards first. It's not something that's happening because those guys are far too retired to come back to a new front for machine compatibles - it's 80s stuff.
Also, a non-java scheme would be a better way to go. Java development is all about using giant washing machines to spin out compilations from esoteric versions of fragile code. Having code that didn't break every year would be great too.
"Change always comes too late" (Star Trek - Picard iirc)
You need to account for digestion. Put your best efforts in, and provide the right situation for growth. Wait the appropriate amount of time, and then some.
Think, grandparents say profound shit that doesn't germinate with every grandchild until they're long gone and then some. Not everyone is a timely learner.