活动监视器
这个示例更适合作为 showcase,而不是入门教程。
它的价值不在于“你可以直接把它复制成自己的应用”,而在于它把几条 Ansiq 能力真正放到了一个完整场景里:
- 固定 shell 布局
- tabs 切换
- 进程表格渲染
- 定时采样刷新
- 底部摘要面板
1sampler 定时采集系统快照
2快照进入 app state
3tabs 决定当前视图
4table 与底部摘要共同消费同一份 snapshot
5runtime 保持固定 shell 并局部刷新
运行方式
cargo run -p ansiq-examples --example activity_monitor
真实运行的 activity_monitor 示例界面。
这个示例适合学习什么
如果你已经做过一个小型 Ansiq app,这个示例最值得看的不是“表格长什么样”,而是:
- app shell 如何固定住头部、主体和底部摘要
- 实时数据如何以 snapshot 形式进入 UI
Tabs + Table + Summary panels如何协同工作- 为什么系统采样应该在 service/sampler 层,而不是 render 里
这个示例主要用到哪些 widgets
你在运行时应该观察什么
1. 顶部 tabs 切换的是“视图”,不是数据源本身
CPU / Memory / Energy / Disk / Network 五个标签页并不是五套完全独立的应用。
它们共享同一个应用壳层,只是切换了不同的焦点数据视角。
2. 中间进程表是“稳定壳层里的主要内容区”
这个示例很好地体现了为什么 fixed shell 很重要:
- 顶部结构不会乱跳
- 底部摘要不会被正文挤走
- 主内容区承担了大部分动态变化
3. 底部摘要面板既不是历史,也不是 footer 文案
它是应用的另一个实时视图,和进程表一起构成了一个更完整的监控界面。
读代码时先看什么
读这个示例时,不建议先看具体的表格 cell 是怎么拼的。
更推荐的顺序是:
- 快照模型是什么
- 采样器如何生成
ActivitySnapshot - 场景状态如何保存当前 tab 和选中的进程
- 最后再看 UI 树如何消费这些状态
这样你会更容易理解:
这个示例真正展示的是 runtime + state + shell,而不只是一个漂亮表格。
这个示例故意没有追求什么
第一版活动监视器没有追求和 macOS 原版逐字段完全一致。
例如:
Energy仍然是近似值Network依赖系统命令能力- 一些字段在权限受限时会降级
这不是缺陷,而是这个示例的边界:
它要展示的是 Ansiq 如何承载“真实系统数据驱动的 TUI”,而不是一比一复刻 Apple 的产品。
这个示例和 Guide 的关系
如果你已经读过:
再回来看这个示例,你会更容易理解:
- 为什么这里适合用固定 shell
- 为什么 snapshot 替换比零散字段更新更稳
- 为什么它更像一个 showcase,而不是 onboarding 示例
推荐对应阅读:
Last updated on