openvela trunk-5.5
[ English | 简体中文 ]
概览
此次 openvela trunk-5.5 版本更新,在内核、连接、多媒体、图形、runtime 框架和开发工具等方面带来了全面增强和改进。此外,我们本次版本更新更是开源了 openvela 首个轻量化原生 AI Agent 智能引擎,并新增了 快应用 Feature 框架运行时核心库和工具、QuickJS 轻量级 JS 引擎开源。
目录
新特性详情
内核 NuttX
架构支持
- 多架构持续完善:ARM Cortex-M / Cortex-A / Cortex-R、ARM64、RISC-V、Xtensa、x86_64、TriCore、SPARC
- ARMv8-R 增强:UDIV 指令、Monitor 模式中断向量、TEE 跳转优化
- TriCore Tasking 工具链 C++ 构建支持
- QEMU ARMv8-A / ARMv8-R 板级增强和完善
驱动
- RPTUN / RPMsg:IVShmem 修复、BMP 模式、UART 端口优化
- Virtio:virtio-snd 音频、virtio-crypto 加密、virtio-mmio 优化和增强
- V4L2 M2M 视频框架
- ALSA 音频适配增强
调度器
- 信号处理重构:
CONFIG_DISABLE_SIGNALS支持 - SMP 调度:spinlock 双重解锁修复、优先级调度优化
- POSIX 合规:
pthread_condAPI、mq_open路径限制、abort()实现 - Per-CPU 变量优化
网络
- VSock:virtio vsock 支持与 sockif 实现
- IPv4 / IPv6 转发与输入处理修复
- Netdev 锁机制、IGMP、VLAN、netlink route
- TCP close 修复
文件系统
- LROFS:truncate、create、copy 文件内容优化
- GPT 分区支持
- FATFS UTF-8 优化
- Procfs 压力监控
内存管理
- Mempool 多池管理器、动态池配置优化
- KASAN 检测增强
库
- libc:scanf、printf、strtol 等 bug 修复和增强
- libelf:
modlib重命名为libelf - libcxx / libcxxabi:C++ 初始化流程优化
工具
- nxgdb 调试增强
- CMake 构建优化
- syscall 生成工具支持
const union
蓝牙
- AVRCP 版本更新,支持更丰富的操作指令
- GATT 缓存机制,大幅提高连接速度
- 允许自定义的 BLE Security Level
- SPP、HID、A2DP、HFP、SPP 等协议增强,提升兼容性并解决已知问题
- 修复其他已知问题,增强子系统稳定性
连接框架
Telephony
- TAPI 全部子模块新增 callback 函数
- Modem 升级操作支持
Network
- 修复回调泄漏问题
- 修复 MQTTS 证书问题
- 修复断点续传问题
多媒体
播放器
- 媒体播放器核心重构
- 音频焦点管理优化
- 流式播放支持增强
- 多核跨 CPU 通信支持
录制器
- 录制框架优化、参数传递修复
媒体图(Graph)
- 媒体处理图引擎更新
media_uv_trigger异步接口- 异步检测回调
FFmpeg 升级到 7.x
- 版本升级:FFmpeg 由 5.x 升级到 7.x
图形与动画
新特性
- 动画系统:新增
LV_ANIM_USE_FLOAT配置,将 start/end/cur/path_cb 类型从int32_t扩展为float;新增缓动参数(ease param)、动画完成回调、帧间隔平滑 - 矢量渲染(VG_Lite):新增 border side 绘制、tiled image 支持、stroke path cache 与 path upload 模式、GPU 利用率查询接口、字体缓存引用计数、动态参数打印控制
- 图像兼容:新增 LVGL V8 旧版
.bin/.rle图像格式兼容解码(自动转换 V8 header 为 V9) - 图像解码:JPEG 完整支持 orientation 与 CMYK;JPEG/PNG 解码器一次性分配 draw buffer;新增解码性能测量
- 新组件:
arc_label弧形文本组件;QRCode 圆形样式与 quiet zone - 渲染:draw_buf 模糊(blur)支持;ARM MVE/NEON alpha 预乘加速;全局 recolor;display rotation 改用 transform matrix 实现并支持 FULL 渲染模式旋转
- 输入:新增 crown scroll 表冠滚动事件;新增全局 focus 对象
- 滚动:新增 force elastic 强制弹性滚动属性
- 文本:恢复 text recolor 功能;span 组件支持 BiDi 双向文本
- Canvas:支持 direct painting 直接绘制模式
- 文件系统:新增读取文件并自动分配内存 API(
lv_fs_read_file_alloc) - 内存:新增 linear allocator;新增
lv_reallocf - 工具:新增 argparse 命令行解析库;新增 remote_ctrl 远程控制组件(集成 NuttX libuv);GDB 调试模块重构支持多实例和懒加载
- NemaGFX:新增 freetype 矢量字体支持
性能优化
- 渲染刷新减少无效
refr_children调用(检查 layer opa)和空 dispatch - draw task 描述符合并分配 + linear allocator 减少 malloc 次数
- 样式缓存使用更长 bitmap,支持一次调用获取多个 space 属性
- 文本绘制减少
lv_text_get_size和 glyph 查询调用次数 - 对象使用 layer 缓存当前 opa stack,避免重复计算
- VG_Lite 新增渐变池优化内存分配与搜索、矢量路径/描述结构精简
- A8 格式解码性能提升;snapshot 从顶层对象开始渲染
关键修复
- 修复 layer opacity/recolor 在 layer area 获取失败时未恢复导致后续渲染异常
- 修复连续滑动时滚动动画与手指拖拽冲突导致画面闪烁
- 修复
scroll_end事件无限循环 - 修复双指滑动误触发点击事件
- 修复多个 VG_Lite 崩溃(stroke cache 为空、渐变未初始化、clipper 空路径)
- 修复 SVG/PNG 解码器内存泄漏
- 修复多核渲染场景下图像解码器内存泄漏
- 修复 freetype 和 profiler_builtin 在
lv_deinit时崩溃 - 修复 textarea placeholder 未垂直居中及换行异常
- 修复 span 组件文本显示混乱
- 修复 flex 布局与 RTL 方向组合异常
测试
- 新增 20+ 模块单元测试覆盖(anim、area、event、draw_buf、vector、qrcode、span、fs 等)
- CI 改为原生 32/64 位构建,更新全部参考截图
系统应用与工具
ALSA-Lib
- DMix drain 修复、信号量泄漏修复
- mmap 偏移计算修复、静默预填充优化
- 独立设备日志支持
测试框架
- cmocka:XML 输出格式、ELF 测试文件执行
- ostest:原子操作、spinlock、cancel 测试修复
- LTP
CLOCK_MONOTONIC适配
系统工具
stty终端控制增强- readline 回显问题修复
- NSH:stderr 重定向、Ctrl+C 退出问题修复
系统服务
KVDB / Utils
- BMP / AMP 场景连接优化、默认超时从 0.5s 改为 5s
- GDBus proxy property 获取、double free 修复
LibUV 扩展
- AES-CCM 模式 API、ECDH 共享密钥、HKDF 支持
UOrb Topics
- 算法 Topic:手势、姿态、心率、计步器
- 充电状态、振动器开关状态 Topic
OTA
- AVB 多镜像验证、
vbmeta_partition模式
Binder IPC
- RPC / NDK 分离、CPC ServiceManager 兼容
ASH 框架
- 微服务支持、MessageLoopListener、C API 导出
Activity Manager
- 多应用同名共存修复、Lite 模式重构
Window Manager
- Lite 单实例模式、窗口过渡动画
安全与运行时
OP-TEE
- ELF TA 支持(CMake 构建)、WASM 多实例初始化
- 并发 TA 初始化 mutex 保护
- Triad 加解密接口
WASM Runtime
- netlib / WiFi / xtables WASM 封装
快应用
本次发布将快应用开发全链路开源,覆盖 JS 引擎、Feature 框架和应用 Shell 运行时:
-
QuickJS 轻量级 JS 引擎,基于 Fabrice Bellard 的 QuickJS 引擎的增强版本。保留原有的轻量、快速和高兼容性特点,集成了一系列新功能,特别是在开发者工具和调试支持方面,使其成为功能更完备的 JavaScript 运行时环境。
-
快应用 Feature 框架运行时核心库和工具。基于 C/C++ 开发,实现 JavaScript 层与原生代码的高效互操作性。架构包括三大核心组件:提供 JS-Native 执行环境的运行时框架、用于自动生成双向调用接口的 JIDL(接口描述语言)及工具、标准化的 native 开发者 API。
-
openvela 应用 Shell 运行时环境。面向嵌入式系统的轻量级 C++ 运行时基础库,为资源受限环境提供高效、可靠的底层组件支持。模块化设计覆盖:资源管理(Bundle)、系统安全(Crash 处理)、设备信息抽象(Device Info)、文件系统封装(File)、文件描述符管理(Scoped FD)、消息循环机制(Message Loop)、流处理、字符串转换、线程、时间、定时器、网络、内存管理和调试追踪等。使用 GN 构建系统,通过
CMakeLists.txt提供 CMake 支持,兼容 Kconfig 配置系统,适用于 NuttX 等实时操作系统环境。
AI agent
openvela AI Agent 是一个跑在手表、音箱、眼镜、耳机这类小设备上的 AI 智能体引擎。从架构设计上,该引擎构建了从感知到记忆、从推理到执行的全链路智能化能力,真正让设备具备自主决策与主动服务能力。
不兼容变更
⚠️ 以下变更可能影响现有代码,升级时请重点关注。
内核
| 类型 | 变更 | 影响 |
|---|---|---|
| 重命名 | modlib → libelf |
binfmt、ELF 加载 |
| 重命名 | PSEUDOFS_SOFTLINKS → FS_LINKS |
文件系统 Kconfig |
| API | sched_note_printf 签名变更 |
trace 模块 |
| API | atomic_fetch_xxx → atomic_xxx |
apps 原子操作 |
| 新增 | CONFIG_DISABLE_SIGNALS |
信号相关条件编译 |
| 配置 | libcxxmini → libminiabi |
C++ 初始化 |
蓝牙
| 类型 | 变更 | 影响 |
|---|---|---|
| 行为 | CM Profile 回调从异步改为直接回调 | Profile 回调处理 |
| 行为 | pairing_complete 始终报告 BONDED |
配对流程 |
| 行为 | 移除 security changed 中连接状态检查 | 安全回调 |
Telephony
| 类型 | 变更 | 影响 |
|---|---|---|
| 新增 | TAPI 全部子模块新增 callback | 所有 TAPI 调用方 |
| 重构 | char** 指针参数重构 |
TAPI 函数签名 |
runtime
| 类型 | 变更 | 影响 |
|---|---|---|
| 重构 | QuickApp 接口重构 | 快应用 |
| 替换 | UVTaskQueue → ash MessageLoop C 接口 |
快应用退出流程 |
| API | NetworkStatus 回调返回对象类型 | 网络状态 |
系统服务
| 类型 | 变更 | 影响 |
|---|---|---|
| 配置 | KVDB 默认超时 0.5s → 5s | KVDB 客户端 |
| API | Binder RPC / NDK 分离 | Binder IPC |
升级适配指南
1. 内核配置
CONFIG_PSEUDOFS_SOFTLINKS→CONFIG_FS_LINKSmodlibAPI →libelfatomic_fetch_xxx→atomic_xxx
2. 蓝牙
- Profile 回调需适配直接回调模式(不再异步分发)
- 检查
pairing_complete回调逻辑
3. Telephony
- TAPI 调用方适配新增 callback 参数
4. runtime
UVTaskQueue→ ash MessageLoop C 接口lv_anim接口适配新版本
5. 构建系统
- C++ 初始化:
libcxxmini→libminiabi
6. 第三方库
- FFmpeg 升级到 7.x