Cool! But I must defer to John and the Android guys at this point, as they would have a better idea of what works and does not in the Android environment.
My guess is that if they needed something lighter weight, this same general approach could be implemented within a device driver, though an implementation that just used existing user-space interfaces would be preferable, all else being equal. (Which it never is, but that is life!)