I've developed a C library to allow an Arduino Mega to talk directly to an Android phone over USB using SparkFun's USB host shield. This library will allow you to drive motors, servos, sensors, etc. from your phone.
The USB protocol is Android Debug Bridge (ADB), which supports multiple bi-directional pipes. Since ADB is a part of any Android device there is no need to root your phone or install custom drivers for this to work, just enable debugging from the settings menu.
If anyone with a USB host shield, an Arduino Mega, and an Android device would be able to test this, I'd be very grateful. Specifically I have been having some stability problems which seem to be electrical, as the phone is trying to charge from the host shield and it may not be outputting enough current

The code is Arduino Mega only right now (that's all I own) but should be trivial to port to the 'smaller' Arduinos, please contact me if you're willing to try to port it for me.
http://code.google.com/p/microbridge/