System Core
brookesia_system_core provides the common core capabilities required by ESP-Brookesia product systems. It coordinates native apps, runtime apps, app-owned GUI documents, storage, timers, service access, and permission boundaries.
Overview
System Core is the orchestration layer of the Brookesia system framework. It wires together the GUI Runtime, Runtime Manager, Service Manager, and TaskScheduler, and exposes a stable app integration model.
It handles two app kinds uniformly: native apps integrate by subclassing IApp in C++, while runtime apps integrate through an unpacked package and scripted convention functions. Both kinds operate only on their own GUI document and never touch DocumentId, layers, or mount targets directly.
Core Capabilities
Native app install, start, stop, and lifecycle callbacks.
Runtime app package scanning, loading, and
brookesia_app.*convention calls.App-owned GUI document load, mount, event subscription, and cleanup.
The
SystemCore,SystemGui, andSystemTimerbase services.Automatic registration and unregistration of native app GUI image/font resources.
Basic permission tiers based on
AppKind.
Mainline Model
A regular app never touches gui::DocumentId, layers, or mount targets; it operates only on its own GUI document, and regular screens always mount to AppDefault. A derived System and built-in native system apps can use the more complete system capabilities through system-only APIs, for example to manage the shell, status bar, and overlay.
Documentation
Architecture: overall runtime behavior, initialization flow, and source modules.
Configuration: build configuration, macros, and runtime storage layout.
App Model: app kinds, native versus runtime differences, and lifecycle.
GUI Management: app-owned GUI and system-only GUI.
Resources and Permissions: resource registration and permission boundaries.
System Services: system service overview and call boundaries.
App Package: runtime app package format and scanning rules.
Examples: minimal integration examples.
Troubleshooting: common problem diagnosis.
API Reference: public API reference.