An Android-based tablet or phone is one of many devices that can be used for data logging or as a user-interface to an Arduino-controlled project, however some devices will required "rooting" (the process of unlocking the operating system to allow adding or changing features). For some this could be a difficult process and something to be avoided. Another method is to use the Android ADK (and there isn't anything wrong with that).
However to simplifly things as much as possible, the folks from Nexus Computing have documented a method of Android-Arduino communication using nothing but the Android USB host API. The Android device needs to support USB host mode as well as the USB host API, and have a version of Android 3.1 or higher.
Required code and an example Arduino sketch has been provided, so to try it for yourself visit the tutorial site. And for more, we're on twitter and Google+, so follow us for news and product updates as well.
However if you are looking for an Android ADK-compatible board. check out our Freetronics USBDroid board:
Apart from being a fully Arduino Uno-compatible, it has onboard microSD socket and the full USB socket and host-mode controller. As well as the Bluetooth application described above, this is the ideal platform for developing peripherals or projects based around Android devices with ADK (Android Developer Kit) functionality, but without requiring a USB host controller shield stacked onto an Arduino. For more information and to order, visit the product page here.