For Java / Android, I've been using H2's MVStore, which is log structured and uses counted B+-trees. It's nice not having to go through JNI for good performance in Java.
Funny - H2's slowness (either with a standard storage system or with MVStore and a standard key format) is the main reason we're moving back to a hand-rolled data storage system that's specific for our data on Android.
Yeah, I saw that. The main problem for us is that we need on-disk encryption due to regulatory issues and the encrypted SQLCipher build was causing us no end of grief. And we don't really need a SQL database, it's just what the developers of our iOS app were doing and--it being our first Android mobile app--we thought it was a good idea to do the same. V2 is ripping that out both for perf and for code-sanity reasons.