开始二次开发
不必一次理解整块表。先在桌面跑一个界面,再逐步接触设备服务。 项目目标是开放硬件、固件与客户端;正式开放文件和使用权以公开仓库、 许可证及第三方素材声明为准,本地展示不代替授权。
按这条路线学习
Section titled “按这条路线学习”没有学过编程也可以先完成动手课:照着改一个小地方,看到变化,再理解对应概念。源码导读不是必背前置知识。已有C++或Flutter经验可以跳过熟悉的动手课,但不要跳过版本和环境检查。
| 顺序 | 章节 | 完成标志 |
|---|---|---|
| 0 | 源码与环境准备 | 找到根目录、会保存文件、工具能运行 |
| 1 | 第一个 NanoUI App | Windows 出图,知道运行哪个exe,能改标题 |
| 2 | 从一个开关看懂 NanoUI | 自己组合两个开关,解释状态、输入、布局和对象寿命 |
| 3 | 字体与图片 | 知道资源属于哪个App,能定位缺字而不复制整个字体库 |
| 4 | 第一个Flutter页面 | 不连设备,也能新增页面、改文字、按按钮改变数字 |
| 5 | 系统源码导读与Flutter源码导读 | 带着前面做过的操作,追踪启动、数据与请求 |
| 6 | 贯通练习 | 修改既有只读请求并验证,不重写BLE或烧录桥 |
| 7 | 传感器卡片小项目 | 复用快照接口增加业务组件,理解有效性限制,运行错误与断连测试 |
前几章无需硬件。第六章主机测试与真实往返分别验收;暂时没有手表也可以学习至Fake测试。能够说出调用链并独立修改例子,才是完成,不以“读过目录表”为准。
先检查工具,不急着装全部环境
Section titled “先检查工具,不急着装全部环境”不知道怎么下载源码、工具怎么装、终端在哪打开,直接从准备章开始。第一课只需编辑器和Windows C++环境;Flutter学到时再装,Arduino/STM32硬件工具更晚再进入。
| 目录 | 用途 |
|---|---|
| libraries/NanoUI | 两端和桌面共同维护的 UI 核心 |
| libraries/NanoUI/examples/FirstApp | 最小桌面和 Arduino 示例 |
| firmware/stm32 | 设备主控、传感器、电源、USB 与本机界面 |
| firmware/rtl8720dn/NanoUI | BW16 无线和应用 |
| apps/mobile | Flutter 配套客户端 |
| libraries/NanoUI/tools | 应用字体、图片资源生成工具 |
| tools | 产品构建、Arduino 库打包与工程检查 |
先跑桌面 NanoUI
Section titled “先跑桌面 NanoUI”第一次开发请按第一个 NanoUI App操作,再看字体与图片。
cmake -S libraries/NanoUI/examples/FirstApp -B build/first-app -DBUILD_TESTING=ONcmake --build build/first-app --config Releasectest --test-dir build/first-app -C Release --output-on-failure从示例里的 Widget 组合开始修改文字和布局,保留声明式写法。 页面属于 App,显示、输入、时间和资源由平台适配层提供; 桌面跑通不等于 MCU 的内存、输入或驱动已验证。
Flutter 开发
Section titled “Flutter 开发”cd apps/mobileflutter pub getflutter run -d windowsWindows 桌面构建还需要对应 C++ 工具链。源码包含多个平台工程, 不代表每个平台均已构建、兼容或上线。网站交互采用单独的 Wasm 构建,不是浏览器加载 Windows DLL,也不替代手机和手表验收。
一次只改一端、一个小功能,保留可恢复固件与明确版本。 不要顺手重写供电、OLED交接、串口切换、烧录桥与 Flash 布局。 相关构建和边界见固件与恢复。
硬件制造资料与配套发布包尚待补全;在此之前先用 Windows 示例学习,不根据模拟器画面尝试接线或首次上电。