Multi-Sandbox

Principle

The Multi-Sandbox capability of the MicroEJ Core Engine allows a main application (called Standalone Application) to install and execute at runtime additional applications (called Sandboxed Applications).

The MicroEJ Core Engine implements the [KF] specification. A Kernel is a Standalone Application generated on a Multi-Sandbox-enabled platform. A Feature is a Sandboxed Application generated against a specific Kernel.

A Sandboxed Application may be dynamically downloaded at runtime or integrated at build-time within the executable application.

Functional Description

The Multi-Sandbox process extends the overall process described in the overview of the platform process.

Multi-Sandbox Process

Multi-Sandbox Process

Once a Kernel has been generated, additional MicroEJ Application code (Feature) can be built against the Kernel . The binary application file produced (application.fo) is compatible only for the Kernel on which it was generated. Generating a new Kernel requires that you generate the Features again on this Kernel.

For more details, please refer to the Kernel Developer Guide, especially Multi-Sandbox Kernel link and Sandboxed Application link sections.

Memory Considerations

Multi-Sandbox memory overhead of MicroEJ Core Engine runtime elements are described in the table below.

Multi-Sandbox Memory Overhead
Runtime element Memory Description
Object RW 4 bytes
Thread RW 24 bytes
Stack Frame RW 8 bytes
Class Type RO 4 bytes
Interface Type RO 8 bytes

Dependencies

Installation

Multi-Sandbox is an additional module, disabled by default.

To enable Multi-Sandbox of the MicroEJ Core Engine, in the platform configuration file, check Multi Applications.

Use

The KF API Module must be added to the module.ivy of the MicroEJ Application project to use [KF] library.

<dependency org="ej.api" name="kf" rev="1.4.4"/>

This library provides a set of options. Refer to the chapter Application Options which lists all available options.