SOAR Output Files

When building a Standalone Application, multiple files are generated next to the ELF executable file.

Launch Output Folder

Using a MicroEJ Application Launch, the files are generated in a folder which is named like the main type and which is located in the output folder specified in the run configuration.

Build Output Files

Published Module Files

After building the Standalone Application, the published module contains the following main files:

  • [name]-[version].out: Firmware (ELF Executable)

  • [name]-[version].zip: Virtual Device

  • [name]-[version]-workingEnv.zip: Build intermediate files, including the content of the launch output Folder

Published Standalone Application Module Files

Published Standalone Application Module Files

The SOAR Map File

The .map file lists every embedded symbol of the application (section, Java class or method, etc.) and its size in ROM or RAM. Since Architecture 8.x, this file is called <main class>.map. It was formerly named SOAR.map for Architecture 7.x. This file can be opened using the Memory Map Analyzer.

The embedded symbols are grouped into multiple categories. For example, the Object class and its methods are grouped in the LibFoundationEDC category. For each symbol or each category, you can see its size in ROM (Image Size) and RAM (Runtime Size).

The SOAR groups all the Java strings in the same section, which appears in the ApplicationStrings category. The same applies to the static fields (Statics category), the types (Types category), and the class names (ClassNames category).

The SOAR Information File

The SOAR information file contains details on the embedded elements of an application.

Since Architecture 8.x, information are dispatched in separate files which are related to SOAR build phases:

  • soar/<main class>.loadermap: generated by the SOAR Resolver. It provides details on files and resources that have been loaded from the Application Classpath.

  • soar/<main class>.selectormap: generated by the SOAR Resolver. It provides details about the elements that have been included in the application.

  • soar/<main class>.optimizermap: generated by the SOAR Optimizer. It provides details about the elements that have been linked in the application.

Each of these files can be opened with an XML editor. The following table describes the information that can be retrieved with their file location.

Information

XML Location (tag > subtag [attribute=value])

File Location

Classpath

classpath

soar/<main class>.loadermap

Resources

resources

soar/<main class>.loadermap

External resources

external_resources

soar/<main class>.loadermap

System properties

properties

soar/<main class>.loadermap

Constants

constants

soar/<main class>.loadermap

Immutables

N/A

N/A

Interned strings

strings

soar/<main class>.selectormap

Class initialization order

clinit

soar/<main class>.selectormap

Types

types

soar/<main class>.selectormap

Number of types

types>[nb]

soar/<main class>.selectormap

Number of concrete classes

types[nbConcreteClasses]

soar/<main class>.selectormap

Number of abstract classes

types[nbAbstractClasses]

soar/<main class>.selectormap

Number of interfaces

types[nbInterfaces]

soar/<main class>.selectormap

Number of arrays

types[nbArrays]

soar/<main class>.selectormap

Class instance size (in bytes)

types>type[instanceSize]

soar/<main class>.optimizermap

Type embeds its name

types>type[hasRuntimeName = true]

soar/<main class>.selectormap

Type is exposed as Kernel API

types>type[api=true]

soar/<main class>.selectormap

Number of reference fields in a class

types>type[nbReferenceFields]

soar/<main class>.optimizermap

Methods

methods

soar/<main class>.selectormap

Method code size (in bytes)

methods>method[codesize]

soar/<main class>.optimizermap

Method is inlined

methods>method[inlined=true]

soar/<main class>.optimizermap

Method is exposed as Kernel API

methods>method[api=true]

soar/<main class>.selectormap

Statics fields

statics

soar/<main class>.selectormap