[Android Q&A, Help & Troubleshooting] danba:
"eXtream Software Development has released their app USB Audio Recorder PRO to the Play Store. It allows recording and playback using many standards compliant USB audio devices, a first for Android. By writing custom USB audio code, pro audio is now finally possible on millions of Android devices."

"The Android app USB Audio Recorder PRO allows you to record and playback audio using class-compliant USB audio devices on your Android phone or tablet! eXtream Software Development has written a custom USB audio driver from scratch...

Supported are mono and stereo streams, 16-bit and 24-bit and any sample rate (up to 192kHz) that the device provides..."

http://www.head-fi.org/t/595071/android-phones-and-usb-dacs/1020#post_8954935

http://www.extreamsd.com/USBAudioRecorderPRO/

https://play.google.com/store/search?q=usb+audio+recorder+pro

A USB audio source code:

http://www.alsa-project.org/main/index.php/Main_Page

https://github.com/sgs3/GT-I9300_Kernel/blob/master/sound/usb/card.c#L2

https://github.com/sgs3/GT-I9300_Kernel/tree/master/sound/usb

USB audio & Android

USB standard (audio, mass storage, etc.) driver supported on stock Galaxy S3 / Note2

"As long as the kernel on the Android device supported the USB standard driver of the hardware (mass storage, input, etc.), Android would be able to use it and therefore open up a new range of extra devices compatible with the system."

USB standard (audio, mass storage, etc.) driver not supported:

* Developing your USB standard (audio, etc.) driver at the kernel space

"However, there are many devices that have not been "compatible" from the beginning. For instance, let's say your common RFID reader. It most likely uses a USB-serial port and probably comes with a Linux or Windows driver as well as some software. Most Android tablets will come without the USB-serial driver for your RFID reader however.

Therefore, if you want to load your driver you will need to root your tablet, determine the version of your current kernel, find the kernel sources online, hope that everything compiles to have your driver ready and then load it onto your tablet. In the end, when you finally have your kernel driver running, you will be required to write C code as well as some JNI glue to communicate with your Activity or Service in Android.

All in all, this approach is not very straightforward.

* Writing your own USB "soft driver" at the user space

There is a very elegant solution to aforementioned problem.

It requires far less skills in hacking and porting than the mentioned approach. However, you will require some advanced knowledge in Android programming as well as some USB know-how.

You can write your own "soft driver" in Android. Since the USB Host API has been released, it is now possible to communicate with any USB device using the most commonly seen USB transfers (control, interrupt, bulk).

In the end, your result will be portable across all Android devices that have USB host enabled and have Android version 3.1+. Moreover, this solution does NOT require root access to the tablet or phone. It is currently the only viable solution that does not require the user to have any know-how of rooting/hacking the device and risk losing warranty in the process."

http://android.serverbox.ch/?p=549