SmartDeviceLink

SmartDeviceLink consists of two distinct software elements: a core automotive piece which wraps in-vehicle services and integrates to the in-vehicle HMI, and a mobile proxy, which executes APIs to access and use services on the automotive head unit.

It is a project intended to standardize and wrap the many in-vehicle interfaces which may exist in the automotive context. The end goal is to provide an expandable software framework to both mobile application developers and automotive head unit creators for the creation of brought-in applications that appear integrated onto a head unit.

In-vehicle core
The in-vehicle core has some of the following features:
 * Manages the physical discovery and logical transport connection to a mobile device application
 * Can support white-labeled, multi-function but single application use cases, as well as single app, single function use cases
 * Provides a consistent interface for applications to understand the capabilities of an in-vehicle head unit
 * Manages and maintains the state of connected mobile applications and notifies applications of appropriate state changes
 * Wraps in-vehicle services such as buttons, displays, voice, menu systems, audio controls and other common vehicle inputs and outputs to a common messaging format and API
 * Is expandable to allow for specific OEM or head unit manufacturer APIs or messaging
 * Creates a template- and meta-based UI that creates consistent developer experiences regardless of the actual HMI representation

Mobile proxy components
The mobile proxy components support some of the following:
 * Provides a common, abstracted interface to the in-car entertainment system to integrate to SmartDeviceLink-enabled mobile applications
 * Is available for Android and iPhone applications
 * Supports TCP, Bluetooth and Apple-specific protocol implementations for transport, and can be expanded to include other transports
 * Simplifies transport discovery, connection, and protocol use
 * Is expandable to allow for specific-OEM or head unit manufacturer APIs or messaging

Operation

 * Smart device and car connect via standard protocols such as Bluetooth and Wi-Fi.
 * Application makes requests to the vehicle and the vehicle responds (Remote Procedure Calls). Application appears to be running inside the vehicle, but all business logic is contained on mobile device.
 * User interacts with the vehicle, and it notifies application of any system or user events
 * Application reacts by sending requests to modify application behavior or appearance in the vehicle.