Arduino + Android

I want to connect an Android phone/tablet to an Arduino. I only want to send/receive bytes; the Android app would receive and send the bytes. What is out there that I can use (libraries, etc.)? No rooting the phone/tablet, since I want to accommodate most/many generic tablets. Also, avoiding using a USB Host shield would be preferable.

Have you tried/looked at Bluetooth? Probably the way you'll find the most resources about on the Net.

I was going to connect an arduino to my unrooted tablet for a project and I did some research on how to do it.
I didn't try it, you may use serial rxtx java in your application to interface information came from arduino and sent to arduino.
But, in order to do that your tablet should recognize the arduino and when I try to list device with lsusb command in terminal
emulator it can't find the board. It's possible to there is no implementation of lsusb on terminal emulator.
Either way it's hard to connect an arduino to android device, even if it's possible other ways much easier.

People generally do it with connecting a shield to the arduino.
You can use a bluesmirf and use amarino (bluetoth Connection)
You can use a wifi or ethernet shield and pass information through network.
Or you can use just host shield and adk to do the job.

You may use Android I/O but in that case, it does not work with every device(It worked with
a couple of phones, but didn't work with my tablet).