Sounds on Android is a bit of mess.
OpenSL is only available on API level 9 (Android version 2.3) so it's
not a great option yet.
You can use SoundPool or MediaPlayer objects and then use JNI to call
them - that works pretty well though you will have to roll your own
distance attenuation and logic for positional sound.
SoundPool has some serious issues on the Samsung Galaxy S2 if you try
and play more than a couple of sounds at once.
MediaPlayer objects seem to work pretty well for short sound effects.
In the latest version of my game I'm only using SoundPool for one
sound effect and that is only because it's an engine noise and I want
to be able to change the pitch as the tank moves more quickly. You
can't do this with the MediaPlayer.
Calling from your C++ code back into java is actually pretty painless.
You can try it out here. I'm happy to share the sound engine code with
you - it's pretty basic though...
https://market.android.com/details?id=com.cmgresearch.tankgamefree&feature=search_result
Cheers
Chris.