1. A mobile computing device comprising: a software application; a plurality of sensors configured to communicate with a sensor controller using corresponding sensor data formats, the plurality of sensors including a first sensor and a second sensor, the first sensor having a higher level of accuracy than the second sensor; the sensor controller configured to obtain; when the first sensor is used, location data having a first sensor data format from the first sensor via a first communication link, the sensor controller configured to obtain, when the second sensor is used, location data having a second sensor format from the second sensor via a second communication link, the location data having the first sensor data format representing a location with a level of accuracy higher than the location data having the second sensor data format, at least a portion of the sensor controller being implemented as at least one application programming interface (API) associated with the software application, wherein the sensor controller is configured to determine, during an execution of the software application, a sensor function required by the software application, wherein the sensor controller is configured to receive context information and determine selection criteria information, the selection criteria information including decision-making criteria for selecting between the plurality of sensors, wherein the sensor controller is configured to select for use at least one of the first sensor and the second sensor among the plurality of sensors based on the context information and the selection criteria information, the selection criteria information including historical usage patterns of a user of the software application, the sensor controller configured to make a prediction regarding future sensor usage, based on the historical usage patterns, and to select at least one of the first sensor and the second sensor, based on the prediction, the historical usage patterns including whether the user preferred a particular sensor during a previous use of the software application, wherein, when the first sensor is selected, the sensor controller is configured to convert the location data having the first sensor data format to a common data format, wherein, when the second sensor is selected, the sensor controller is configured to convert the location data having the second sensor data format to the common data format, wherein the sensor controller is configured to communicate the location data having the common data format to at least one processor for executing the software application with the location data via a third communication link, the common data format being a communication protocol that is used for communication between the sensor controller and the at least one processor that is different than the first data format or the second data format.