[ English | 简体中文 ]
快应用框架简介
openvela 快应用(QuickApp)框架(以下简称"应用框架"),是 openvela 上的快应用运行时实现。相较于手机运行时,openvela 快应用框架具有如下特点:
- 遵循快应用联盟标准,针对 openvela 系统重新实现,部分特性和功能有所裁剪。
- 适配实时操作系统(RTOS),注重运行时性能,在低内存消耗下具有较高的执行性能。
- 易于开发和部署,有效缩短应用开发周期。
本文档介绍应用框架的整体设计、实现思路和技术要点,不聚焦应用开发本身。
相关文档
- 小米 openvela 快应用开发手册 — 面向应用开发者的完整开发指南
- Feature 框架 API — 快应用的 Native 扩展 API(JS 与 C/C++ 互调)
编译配置
应用框架本身的配置项不多,但依赖项较多。依赖项中渲染器的依赖较多,具体配置请参考图形组提供的文档。
主要配置
CONFIG_QUICKAPP_VAPP=y # 快应用主配置
CONFIG_QUICKAPP_VAPP_XMS=y # 快应用 xms 集成版,依赖 xms 服务框架
CONFIG_QUICKAPP_LOG_LEVEL=1 # log 等级,默认 INFO
CONFIG_QUICKAPP_MICRO_FRAMEWORK_MODE=y # 微框架
CONFIG_QUICKAPP_PRIORITY=100 # 优先级
CONFIG_HAP_APP_PATH="/data" # rpk 安装路径
CONFIG_QUICKAPP_THREADSTACKSIZE=1048576 # JS 线程栈大小
CONFIG_QUICKAPP_JSSTACKSIZE=524288 # JS 引擎栈大小
CONFIG_QUICKAPP_JSHEAPSIZE=4194304 # JS 引擎堆内存限制,手表设备默认 4MB,依据应用复杂度调整
CONFIG_CURL=y # 启用 curl 支持,框架网络 feature 需要开启 curl
CONFIG_QUICKAPP_RPK_DIR="/resource/package" # ams 应用安装路径
CONFIG_QUICKAPP_BYTECODE_OPTIMIZATION=y # QuickJS 字节码优化(字符串合并)
CONFIG_QUICKAPP_FOLME_ANIMENGINE_ADAPTER=n # folme 动效引擎
CONFIG_WIDGET_IMAGE_USE_CACHE_MANAGER=y # 启用 widget image cache manager
# 字体相关配置
CONFIG_FONT_DEFAULT_NORMAL_NAME="MiSansW_Regular"
CONFIG_FONT_DEFAULT_BOLD_NAME="MiSansW_Demibold"
CONFIG_FONT_DEFAULT_SIZE=30
CONFIG_PROMPT_TOAST_FONT_SIZE=24
CONFIG_PROMPT_DIALOG_TITLE_FONT_SIZE=36
CONFIG_PROMPT_DIALOG_MSG_FONT_SIZE=34
调试配置
CONFIG_DOM_TRACE_ENABLE=n # vdom 树打印
CONFIG_JS_USE_SCHED_NOTE=n # 框架启动 trace
CONFIG_QUICKAPP_MEMORY_STATUS=n # 框架 JS 引擎内存信息打印
CONFIG_WIDGET_LOG_ENABLE=y # LVGL widget log
CONFIG_WIDGET_LOG_LEVEL=1 # widget log level,默认 warning
CONFIG_WIDGET_ASSERT_ENABLE=n # widget assert
CONFIG_WIDGET_TRACE_ENABLE=n # widget trace check
CONFIG_WIDGET_PERF_ENABLE=n # widget performance monitor
CONFIG_WIDGET_DUMP_TREE_ENABLE=n # dump LVGL widget tree
CONFIG_WIDGET_DUMP_TREE_IN_LAYOUT=n # dump widget tree in layout task
CONFIG_WIDGET_SHOW_YOGA_NODE_ENABLE=n # widget show yoga node
CONFIG_WIDGET_DEBUG_DRAW_OUTLINE=n # widget draw outline for debug
CONFIG_CSS_ATTR_LIST_ENABLE=n # 启用 widget get css/attr function
依赖项
CONFIG_LIBUV=y
CONFIG_LVGL_EXTENSION=y
CONFIG_LIBUV_EXTENSION=y
CONFIG_LVX_USE_FONT_MANAGER=y
CONFIG_LIB_YOGA=y
CONFIG_PROTOBUF_C=y
CONFIG_LIB_PNG=y
CONFIG_LV_USE_LIBPNG=y
CONFIG_LV_USE_NUTTX_LIBUV=y
CONFIG_USE_QUICKJS=y