I'm still working my way into Android development myself, so this isn't authoritative or anything, but I'd recommend the 'mixed' approach, that is, write as much as you can or want to in C/C++, but use one of the available 'host' languages for the basic framework.
On iOS, Objective-C(++) is arguably easier to integrate with C++, but I'd probably go with Swift. It's up to you of course, but Swift has more momentum now, I think, and is arguably easier to work with in some ways.
On Android, you can use Java of course, but I'd recommend looking into Kotlin as well, as it (arguably at least) has some advantages over Java.
My understanding is that on Android you can in fact write apps entirely in C/C++, with no Java/Kotlin/whatever. I've looked into this approach, and my initial impression is that the added difficulty of doing it this way probably isn't worth the gains. YMMV though. (For what it's worth, the well-known open-source game frameworks I've looked at that support Android use the 'mixed' approach.)
Lastly, I'll state what's probably obvious, which is that even under the best of circumstances, implementing everything from scratch can be nontrivial, and using any of the various existing frameworks that are available would probably save considerable time and effort. If you do want to go the bespoke route though, based on my experience so far at least, I'd say the 'mixed' approach may offer the easiest path forward.