目录

vela_band

一个基于 openvela 快应用框架的智能手环演示应用,包含多表盘、健康数据、运动记录、消息通知、蓝牙同步和低功耗管理等功能。

目标设备:智能手表 / 手环(deviceTypeList: ["watch"])。 当前 primarily 面向 AIoT-IDE 模拟器构建和演示,部分系统能力在真机上需根据硬件进一步适配。


目录


功能概览

功能 说明 详细文档
多表盘 3 款表盘(活力数字、极简霓虹、运动仪表),左右滑动切换,长按进入选择页,持久化保存。 功能详解 → A. 多表盘
健康数据 步数、卡路里、站立、心率,支持 7 天历史趋势。 功能详解 → D. 健康数据
运动记录 步行 / 跑步,暂停、继续、结束,记录保存并合并到当日健康数据。 功能详解 → B. 运动记录
消息通知 来电、短信、App 通知全屏覆盖,支持 IDE 控制台模拟和演示页触发。 功能详解 → C. 消息通知
蓝牙同步 模拟 BLE 连接、分包传输、ACK 确认,真机只需替换底层传输层。 功能详解 → F. 蓝牙同步
低功耗管理 ACTIVE / DIM / SLEEP 三级状态,动态刷新率和抬腕唤醒。 功能详解 → E. 低功耗管理
设置 亮度、抬腕、低功耗、震动等级。 功能详解 → 设置

环境要求

  • Node.js(推荐 LTS)
  • AIoT-IDE(用于模拟器调试、真机安装)
  • Windows / macOS / Ubuntu

快速开始

1. 安装依赖

npm install

2. 开发模式(热更新)

npm run start

3. 构建开发版 RPK

npm run build

构建成功后在临时目录生成 .rpk

✅ build success

4. 构建发布版 RPK

npm run release

5. 代码规范(可选)

npm run lint

使用 husky 前需先关联 git,然后执行 ./husky.sh(Windows)或 sh husky.sh(macOS/Linux)。


在模拟器中运行

  1. 打开 AIoT-IDE。
  2. 导入本仓库。
  3. 安装依赖后,点击 运行/调试 选择已创建的模拟器。
  4. 项目入口为 pages/clock(表盘页)。

更多演示步骤见 功能详解


项目结构

vela_band
├── LICENSE                    # MIT 开源协议(单独文件)
├── README.md                  # 本文件
├── docs/                      # 详细文档
│   ├── PROJECT_OWNER_GUIDE.md # 项目负责人口袋手册
│   ├── B_F_IMPLEMENTATION.md  # B/F 模块实现说明
│   ├── TECHNICAL.md           # 技术方案
│   └── FEATURES.md            # 功能详解
├── src/
│   ├── manifest.json          # 应用配置与页面路由
│   ├── app.ux                 # 应用生命周期
│   ├── common/                # 业务逻辑与工具
│   │   ├── watch_data.js      # 健康/历史/通知数据
│   │   ├── power_manager.js   # 功耗状态机
│   │   ├── device_settings.js # 设置持久化
│   │   ├── notification_manager.js # 通知接收与演示
│   │   ├── page_motion.js     # 页面转场动画
│   │   ├── workout_manager.js # 运动记录状态机
│   │   ├── sync_protocol.js   # 蓝牙同步协议包
│   │   └── ble_sync.js        # 蓝牙传输适配层
│   ├── components/            # 表盘组件
│   │   └── watchfaces/
│   ├── pages/                 # 页面
│   │   ├── clock/             # 主表盘
│   │   ├── applist/           # 应用列表
│   │   ├── heartrate/         # 心率详情
│   │   ├── steps/             # 今日健康
│   │   ├── history/           # 7 天趋势
│   │   ├── workout_select/    # 运动选择
│   │   ├── workout/           # 运动进行页
│   │   ├── workout_history/   # 运动历史
│   │   ├── watchface_select/  # 表盘选择
│   │   ├── notification_demo/ # 通知演示
│   │   └── settings/          # 设置
│   └── i18n/                  # 国际化(示例)
└── package.json

想了解各文件职责和排查思路?查看 项目负责人学习手册


主要页面导航

操作 结果
启动应用 进入 pages/clock 表盘页
表盘左右滑动 切换 3 款表盘
表盘长按 进入表盘选择页
表盘上滑 进入应用列表
应用列表右滑 / 下滑 返回表盘
应用列表点击“通知演示” 进入通知演示页
通知演示右滑 / 返回按钮 返回应用列表

完整手势表见 功能详解 → 手势与导航


控制台模拟通知

在 IDE 控制台或扩展控制台发送 system.event

{
  "eventName": "band.demo.notification",
  "params": {
    "type": "call",
    "contact": "张三",
    "phone": "13900139000"
  }
}

支持 typecallsmsapp。未传字段使用默认值:

  • 短信/应用内容:测试
  • 来电联系人:未知
  • 来电电话:+86 123456

通知覆盖层采用内联写法,与 clock.ux 的息屏/暗屏遮罩一致。原因见 技术方案 → 通知系统


文档索引

文档 适合读者 内容
技术方案 开发者、答辩准备 架构分层、数据流、页面转场动画、通知系统、低功耗、系统 API、构建流程
功能详解 用户、测试、答辩准备 每个功能的交互方式、实现要点、演示步骤、手势导航
项目负责人学习手册 维护者、团队负责人 文件职责、生命周期、数据单一来源、常见问题排查
B/F 实现说明 负责运动/蓝牙模块的开发者 运动记录状态机、数据计算、蓝牙同步协议、真机替换点

开源协议

本项目采用 MIT License,协议单独存放于 LICENSE 文件。


相关链接

邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号