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 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
The 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 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
Device 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 events
Application reacts by sending requests to modify application behavior or appearance in the vehicle.