OpenXC is an API to your car - by installing a small hardware module to read and translate metrics from a car's internal network, the data becomes accessible from most Android applications using the OpenXC library. You can start making vehicle-aware applications that have better interfaces based on context, can minimize distraction while driving, are integrated with other connected services, and can offer you more insight into your car's operation.
This vehicle interface (VI or "CAN translator") is based on a microcontroller with two external connections - one to the CAN bus via the OBD-II port, and one to a host device via USB or Bluetooth. It passively listens for a subset of CAN messages, performs required unit conversion or factoring and outputs a generic version to the USB interface.
This particular design is based entirely on off-the-shelf components, including a development board that is open source hardware. The VI can be built for less than $150.
Make sure that the tablet and vehicle interface module are out of the way of the driver. They should be securely held down or preferably with another person in the passenger seat. The OBD-II and USB cables should also be routed away from the brake and accelerator pedals to avoid getting tangled. You should also avoid draping the cables over the steering wheel, as they can get caught in the turning mechanism and make steering difficult.
The recommended location for the vehicle interface is between seats or on the passenger seat, with the OBD-II cable routed along the floor on the driver's side, around the back of the seat and up between the seats.