Sandboxed Application

A Sandboxed Application is a Java Application that can run over a Multi-Sandbox Executable. Sandboxed Applications can be linked statically to the Multi-Sandbox Executable or installed dynamically on the device.

Typical use cases for a Sandboxed Application are:

  • over the air provisioning: the Application is dynamically installed or updated on a fleet of heterogenous devices.
  • modularization: a monolithic application is split into multiple Sandboxed Applications; each of them can be started or stopped separately.

The Application development flow requires the following elements:

  • a Virtual Device, a software package including the resources and tools required for building and testing an application for a specific device. A Virtual Device will simulate all capabilities of the corresponding hardware board:
    • Computation and Memory
    • Communication channels (e.g. Network, USB …)
    • Display
    • User interaction
  • an hardware device that has been previously programmed with a Multi-Sandbox Executable. Virtual Devices and Multi-Sandbox Executable share the same version (there is a 1:1 mapping).

Please refer to the Kernel Developer Guide to learn more on writing Kernel Applications and building Multi-Sandbox Executable and Virtual Devices.

The next chapters explain how to create, test and publish Sandboxed Applications.