monero-wallet-gui can be seen as a "wrapper" for wallet2.cpp, and it can be built for android with NDK.
Alternatively, monero-wallet-cli can also be built with android NDK, but you would need a terminal emulator to run it (except if you use adb ), so better to just use the provided arm binaries.
Finally, if it's only about generating keys, you can use a web page, like moneromooo's wallet generator but stored locally.
Edit: i may have misread the question
Android java apps can use JNI to have an instance of WalletManager and call WalletManager::createWallet.
I also though about generating the keys via a server (not very decentralize) and return the keys back to the user. But this will also create a layer of vulnerability that I dont like.
I'm still analyzing all the options I have for building a mobile wallet. What's Feasible and what's not.
– Andrea Abdelnour Mar 30 '17 at 20:12