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_OKon 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_OKon 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 applicationseos_app_list_get_id: Get application ID by indexeos_app_list_contains: Check if application existseos_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 IDnew_index- New index position
- Return value: Operation result, returns
EOS_OKon 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
- Installation: Install application package through
eos_app_install - Initialization: Initialize application system through
eos_app_initwhen system starts - Running: Run application through script engine
- 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:
- Application package parsing: Parse .eapk files, extract application information and files
- Application list management: Maintain application list, support CRUD operations
- Application directory management: Manage application installation directories and data directories
- 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.