Skip to main content

Application Management Module

The application management module is one of the core components of ElenixOS, responsible for application installation, uninstallation, management, and running. This module provides a complete application lifecycle management mechanism, supporting functions such as application installation, uninstallation, and list management.

Directory Structure

├── src/core/app/
│ ├── eos_app.c # Application management core implementation
│ ├── eos_app.h # Application management interface definition
│ ├── eos_app_list.c # Application list management implementation
│ └── eos_app_list.h # Application list management interface definition

Core Features

Application Installation and Uninstallation

The application management module supports installing applications through the eos_app_install function and uninstalling applications through the eos_app_uninstall function. The installation process parses the application package (.eapk file), verifies application information, and deploys application files to the specified directory.

Application List Management

The application list management function allows operations such as getting the number of installed applications, getting application IDs by index, and checking if an application exists. The application list is persistently stored to ensure consistency after system restart.

Application Sorting

Through the eos_app_order_move function, the position of applications in the list can be adjusted to implement application sorting functionality. Sorting results are saved to the configuration file to ensure sorting status is maintained during the next startup.

Key Interfaces

Application Installation Interface

eos_result_t eos_app_install(const char *eapk_path);
  • Parameters: eapk_path - Application package path
  • Return value: Installation result, returns EOS_OK on success, error code on failure

Application Uninstallation Interface

eos_result_t eos_app_uninstall(const char *app_id);
  • Parameters: app_id - Application ID
  • Return value: Uninstallation result, returns EOS_OK on success, error code on failure

Application List Operation Interfaces

uint32_t eos_app_get_installed(void);
const char* eos_app_list_get_id(size_t index);
bool eos_app_list_contains(const char* app_id);
const char *eos_app_list_get_existing_id(const char *id);
  • eos_app_get_installed: Get the number of installed applications
  • eos_app_list_get_id: Get application ID by index
  • eos_app_list_contains: Check if application exists
  • eos_app_list_get_existing_id: Get existing application ID in the list

Application Sorting Interface

eos_result_t eos_app_order_move(const char *app_id, size_t new_index);
  • Parameters:
    • app_id - Target application ID
    • new_index - New index position
  • Return value: Operation result, returns EOS_OK on success, error code on failure

Application Package Structure

ElenixOS application packages (.eapk files) contain the following key files:

  • manifest.json: Application configuration file, containing application ID, name, version, type, etc.
  • main.js: Application main script file, containing application interface and logic
  • icon.bin: Application icon file

Application Lifecycle

  1. Installation: Install application package through eos_app_install
  2. Initialization: Initialize application system through eos_app_init when system starts
  3. Running: Run application through script engine
  4. Uninstallation: Uninstall application through eos_app_uninstall

Usage Examples

Install Application

eos_result_t result = eos_app_install("/path/to/app.eapk");
if (result == EOS_OK) {
// Installation successful
} else {
// Installation failed
}

Uninstall Application

eos_result_t result = eos_app_uninstall("com.example.app");
if (result == EOS_OK) {
// Uninstallation successful
} else {
// Uninstallation failed
}

Get Application List

uint32_t app_count = eos_app_get_installed();
for (size_t i = 0; i < app_count; i++) {
const char* app_id = eos_app_list_get_id(i);
// Process application ID
}

Implementation Details

The core implementation of the application management module includes:

  1. Application package parsing: Parse .eapk files, extract application information and files
  2. Application list management: Maintain application list, support CRUD operations
  3. Application directory management: Manage application installation directories and data directories
  4. Application sorting: Support application list sorting and persistence

This module works closely with the file system module and script engine module to provide complete application management functionality for ElenixOS.