ODK sensors: an application-level sensor framework for Android devices

To simplify interfacing a variety of external sensors with consumer Android devices, we developed a user-level framework that streamlines both application and driver development by providing abstractions that separate responsibilities between the user application, sensor framework, and device driver. These abstractions simplify the creation of sensing applications and provide for a high level of customization and flexibility, thereby enabling a variety of wired and wireless sensors to be connected to mobile devices. To avoid issues with modifying locked consumer devices, the framework's driver architecture is implemented at the user-level. To increase the variety of mobile sensing applications, we have developed a reconfigurable interfacing board that allows the framework to communicate with external sensors that have low-level digital or analog interfaces. We discuss field deployments that leverage the framework to address global health issues.