SmartDeviceLink is a project which intends 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.
SmartDeviceLink consists of two distinct parts of software; 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.
The in-vehicle core has some of the following features:
Manages the physical discovery and logical transport connection to a mobile device applicationCan support white-labeled, multi-function but single application use cases, as well as single app, single function use casesProvides a consistent interface for applications to understand the capabilities of an in-vehicle head unitManages and maintains the state of connected mobile applications and notifies applications of appropriate state changesWraps 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 APIIs expandable to allow for specific OEM or head unit manufacturer APIs or messagingCreates a template- and meta-based UI that creates consistent developer experiences regardless of the actual HMI representationThe mobile proxy components include some of the following features:
Provides a common, abstracted interface to the in-vehicle infotainment system to integrate to SmartDeviceLink-enabled mobile applicationsIs available for Android and iPhone applicationsSupports TCP, Bluetooth and Apple-specific protocol implementations for transport, and can be expanded to include other transportsSimplifies transport discovery, connection, and protocol useIs expandable to allow for specific-OEM or head unit manufacturer APIs or messagingDevice and car connect.Application will make 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 their vehicle and vehicle notifies application of any system or user eventsApplication reacts by sending requests to modify application behavior or appearance in the vehicle.