外观
限制与兼容性
仪表运行在受约束的同步绘图环境中。常规文字、形状、图表和地图一般不需要接近这些上限;了解边界有助于定位超限错误。
执行与结构
| 项目 | 当前上限 / 行为 |
|---|---|
| 源码长度 | 256 KB |
| 语法 | ECMAScript 2022 脚本与 JSX,不使用模块导入 |
| 初始化与每次绘制 | 各有 50,000 次协作式检查和约 100 ms 的截止时间 |
| 绘图节点 | 最多 512 个 |
| 绘图嵌套 | 最多 64 层 |
| 普通属性数据嵌套 | 最多 32 层 |
| 明确宽高 | 0…16384 点,或 auto / fill |
| 动画配置 | 每节点最多 64 项,同属性不重复 |
| 历史窗口 | 最近 30 秒,最多 151 个采样,最高约 5 Hz |
截止时间是协作式检查,不应通过一次极重的标准库调用试探上限。写计算时优先一次遍历、有限数组和固定工作量。
刷新不是固定时钟
仪表随宿主输入更新,待处理输入会合并;更新频率约受限于 10 Hz。不能假定每次 main() 调用刚好隔 0.1 秒,也不能用调用次数代替真实时间。
原生动画可以独立平滑插值,所以不必让 JavaScript 每个屏幕刷新帧计算位置。
素材与行程存储
- 当前只支持图片素材,单张不超过 8 MB / 4000 万像素,最多 64 个标记。
- 单次行程存储每卡片最多 256 个键、估算约 1 MiB、嵌套 32 层,键最长 256 个 UTF-8 字节。
- 这两类限制分别作用,不能把大图二进制或一整段无限历史放入单次行程存储。
与网页开发的区别
不支持浏览器 DOM、HTML/CSS、React hooks、网络请求、文件访问或通过脚本修改 App。JSX 的大写标签是绘图组件,API 以本手册列出的名称为准。
版本变化
新功能需要相应 CapDrive 版本支持。导入 ZIP 会先检查清单中的 App 版本;不要通过修改清单绕过版本要求。
一些旧示例可能使用 Ring、LineChart、BarChart 或 RepeatLayout 别名,它们有兼容支持。已移除的平铺 $data.speed、motion 等接口则需要按当前参考迁移。
三类验证各自能说明什么
| 验证 | 能确认 | 仍需另行确认 |
|---|---|---|
| 语法与示例检查 | 源码能解析、接口名和数据访问正确 | 原生字体排版、地图瓦片与真实 HDR 亮度 |
| App 预览 | 固定演示数据下的尺寸、外观和组件显示 | 真实测量缺失、权限、跨行程行为 |
| 目标设备使用 | 真实设备、数据与系统条件下的表现 | 其他设备和其他版本的兼容性 |
本站示意图用于说明设计,不能代替目标设备检查。原生仪表渲染图使用固定样本,也不能证明真实道路测量结果。