跳到主要内容

Changelog

v0.4.0-alpha

Breaking Changes

  • 脚本引擎分层架构重构:引入脚本程序管理器 (SPM) 作为核心引擎与上层框架之间的中间层,分离程序生命周期与 JS 执行。
  • Activity Root 模式:采用 Root Activity 模式替代原有的 watchface-activity 单例,生命周期结构体替代指针方式管理。
  • 服务模块重构:移除 eos_misc 模块,使用 eos_service_* 系列服务替代原有功能。
  • 项目分层架构重组:重构项目布局为 kernel、services、framework、ui、apps 分层结构。

Changed

  • 脚本引擎

    • 重构生命周期管理,支持上下文保存/恢复(SUSPEND → IDLE,新增 SUSPENDED 状态)
    • 添加 per-program realm 隔离助手
    • 从异常对象改进错误回溯提取
    • 统一 SNI handle 类型,用单一托管资源范围替代 LC_EXTERNAL/LC_REALM 分离
  • Overlay 架构

    • 实现统一的 overlay 管理器,通过 get_foreground_obj() 接口分离 Z-order 管理和 Crown scrollable targets
    • 修复 Z-order bug:关闭后控制中心阻塞消息列表
    • 移除硬编码的 crown 依赖,使用接口查询
  • Radio 组件:用 eos_radio_page 替代 eos_radio_list,改进单选功能

  • 代码规范

    • 重命名全局变量为下划线前缀,提高封装性
    • 更新脚本引擎核心注释,提高清晰度和一致性

Added

  • 新增 eos_chrome_manager:集中式 overlay 管理器
  • 新增通用脚本错误处理和 eos_fault_panel 故障面板
  • 新增 eos_accordion 手风琴组件,用于错误回溯显示
  • 新增脚本执行超时和状态感知函数调用
  • 新增错误位置和回溯处理
  • 新增容器删除回调 (eos_container_delete_cb_t),支持自动内存管理
  • 新增 eos_input_page 输入页面功能
  • 新增 clock_hand 组件的 attach()center_style() 函数
  • 新增基于监听器的日志系统 (eos_log) 及标准输出支持
  • 新增启动信息日志增强,显示构建时间和模式详情
  • 新增国际化默认语言配置
  • 新增 FIFO 环缓冲区实现
  • 新增临界区管理 (eos_critical)
  • 新增传感器服务 (eos_service_sensor) 及状态管理
  • 新增时间服务和设备 (eos_service_time)
  • 新增双链表实现 (eos_dlist)
  • 新增事件注册功能和用户事件范围定义
  • 新增测试应用支持 (eos_test),包含音频播放功能

Fixed

  • 清理 Activity 快照和 teardown 泄漏
  • 修复卸载应用时动画未停止的问题
  • 修复 LVGL 事件回调签名问题(WASM 函数签名不匹配)
  • 解决 eos_virtual_display 中的 typedef 警告
  • 为临界区函数添加 EOS_WEAK 属性,确保正确链接
  • 修复 slide_widget_move 中冗余的 slide_change toggle 与 chrome manager 的冲突

v0.3.0-alpha.1

Added

  • 新增中文说明文档(README.zh-CN),补充中英文文档一致性。
  • 新增应用列表气泡网格能力(bubble_grid)及相关组件 API。
  • 新增应用管理与脚本热重载相关函数,增强运行时管理能力。
  • 新增部分资源素材(如应用图标与设计资源)用于界面与示例完善。
  • 在文档中新增在线模拟器入口,提升体验与验证效率。

Changed

  • 项目命名由 ElenaOS 统一调整为 ElenixOS,并完成大规模命名与路径迁移(含核心模块、接口、头文件与脚本)。
  • 构建系统重构:优化 CMake 源文件/头文件收集逻辑,规范 CMakeLists.txt 命名与平台根目录处理。
  • 核心初始化流程调整:将 eos_run 重命名为 eos_init,并同步更新相关原型与调用语义。
  • 精简核心逻辑:移除 logo 动画处理路径,简化处理流程与生命周期中的状态切换逻辑。
  • README 与文档结构持续整理,格式统一并补充演示说明。

Fixed

  • 修复 Activity 生命周期中目标视图短暂闪现问题(进入/切换时的瞬时显示异常)。
  • 修复 README 中快速开始与文档链接错误问题。
  • 修复 Windows 环境下 mkdir 兼容性问题。
  • 修复 CMake 中 uthash 头文件包含路径错误。
  • 修复 .gitignore 漏配构建目录的问题,避免构建产物误入版本控制。

v0.2.0-alpha.1

Changed

  • 重构了脚本接口架构,lv_bindings被重构为 SNI 层。
  • 重构了页面管理架构,navscreen_mgrscene被整合为 Activity 概念。
  • 优化了 CardPager 和 SlideWidget。
  • 重构了语言接口,current_lang私有化,避免越界访问。
  • 优化了列表转场动画。
  • 优化了活动切换时控制中心和消息列表的面板收回逻辑。
  • 优化了闪光灯显示逻辑。
  • 优化了应用列表动画参数。
  • 优化了时钟更新回调中的空指针检查和显示逻辑。
  • 优化了活动切换和动画处理。
  • 优化了可滚动对象的回调移除逻辑。
  • 优化了定时器自动删除功能。
  • 优化了调试条位置管理,增加全局位置同步与恢复功能。
  • 优化了滚动对象查找逻辑。
  • 优化了滚动条显示与隐藏逻辑。
  • 优化了脚本路径解析与图像源设置。
  • 优化了通用句柄解析能力。
  • 优化了属性设置。
  • 优化了动画变量管理。
  • 优化了内存清理与颜色类型桥接支持。
  • 优化了文件目录结构。
  • 优化了动画属性配置、自定义回调及 JS 动画路径集成。
  • 优化了源文件和头文件的动态更新。
  • 优化了脚本引擎初始化和退出回调。
  • 优化了 LVGL 对象创建函数的参数检查和类型转换。

Added

  • 新增了 Activity 生命周期管理功能,支持 Activity 的创建、销毁、暂停、恢复等操作。
  • 新增了页面管理模块,页面统一使用栈管理,且引入了 Activity 概念。
  • 新增了 SNI 模块,提供更清晰的脚本接口定义,支持面向对象的 LVGL 操作。
  • 新增了 LVGL 组件的 SNI 封装,包括:
    • image 组件
    • dropdown 组件
    • checkbox 组件
    • canvas 组件
    • button matrix 组件
    • calendar 组件
  • 新增了 Activity 页面切换动画支持,包括开始和结束回调。
  • 新增了应用头逻辑和标题变化动画支持。
  • 新增了 OPEN 滑动面板状态并完善状态流转。
  • 新增了内置备用表盘支持。
  • 新增了模块导入功能,支持 JS 模块导入。
  • 新增了获取前一个 Activity 的接口。
  • 新增了系统初始化错误处理和获取表盘活动的功能。
  • 新增了主题主色调的定义。
  • 新增了设备信息视图中添加 LOGO 显示。
  • 新增了字符图标颜色的 Toast 提示功能。
  • 新增了编码器目标设置为 Activity View,添加滑动组件打开和关闭事件。
  • 新增了滑动组件的状态管理和动画过渡功能。
  • 新增了图表组件及相关 API。
  • 新增了图像按钮支持。
  • 新增了脚本应用 Debug 页面。
  • 新增了 float 类型桥接支持。
  • 新增了全局常数的导出功能。
  • 新增了新的颜色类型和相关方法。
  • 新增了蛇形命名转驼峰命名的转换函数。
  • 新增了别名回退功能以支持类型映射。
  • 新增了控制台日志功能,添加不同日志级别的支持。
  • 新增了 ElenixOS API 的初始化和挂载功能。

Fixed

  • 修复了表盘列表无法触摸表盘图片滑动的问题。
  • 修复了内存泄漏问题。
  • 修复了脚本引擎的问题,防止正常运行时进入错误状态。
  • 修复了可滚动对象的回调管理,优化了滚动条显示与隐藏逻辑,解决了滚动条闪烁问题。
  • 修复了时钟更新回调中的空指针检查。
  • 防止在表盘活动显示应用标题栏。
  • 修复了控制中心自动回弹时滚动对象丢失的问题。
  • 修复了返回 Activity 时无法获取 scrollable 对象的问题。
  • 修复了活动创建时根屏幕为空的处理逻辑。
  • 修复了构造函数参数类型检查,确保只接受对象或 null。
  • 修复了滚动对象有效性检查。
  • 修复了方法名可能为空的问题。

v0.1.0-alpha.1

Added

  • 提供智能手表系统的基础功能框架。
  • 提供 JavaScript 脚本运行与生命周期管理能力。
  • 提供 JavaScript API 支持,包括:
    • 部分 LVGL Widget 功能;
    • LVGL 事件系统的注册与删除;
    • LVGL 动画的创建与运行;
    • LVGL 定时器相关功能。
  • 提供虚拟显示器,用于 PC 端模拟运行与调试。
  • 提供初步的硬件抽象与可移植接口设计,用于支持多平台适配。
  • 建立工程与开发文档的基础结构。
  • 提供了开发者工具脚本,用于快速生成项目结构。
  • 提供模块化系统架构,支持核心功能按模块组合与扩展。
  • 提供脚本与系统核心之间的隔离机制,提升系统稳定性与安全性。
  • 提供基础调试与开发支持能力,提升桌面端开发与调试效率。