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