Pull branch Android.

Integrate android branch into upstream repository. (do not merge into master, obviously)