api-mapping
npx machina-cli add skill Jiusi-pys/agent-plugins/api-mapping --openclawFiles (1)
SKILL.md
1.3 KB
API Mapping Skill
概述
提供 Linux API 到 OpenHarmony API 的映射关系和适配代码模板。
快速查询
查询特定 API 的 OHOS 替代方案:
grep -A 10 "epoll" references/linux-api-mapping.md
映射分类
事件机制
| Linux API | OHOS 替代 | 复杂度 |
|---|---|---|
| epoll | poll/select | 中 |
| inotify | OHOS FileWatcher | 中 |
| eventfd | pipe | 低 |
| signalfd | signal handler | 中 |
| timerfd | timer_create | 低 |
进程/线程
| Linux API | OHOS 替代 | 复杂度 |
|---|---|---|
| clone (线程) | pthread_create | 低 |
| clone (namespace) | 不支持 | - |
| prctl | 部分支持 | 中 |
| sched_setaffinity | 部分支持 | 中 |
文件系统
| Linux API | OHOS 替代 | 复杂度 |
|---|---|---|
| /proc/self/* | 受限访问 | 高 |
| /sys/* | 不支持 | - |
| statfs | statvfs | 低 |
代码模板
详见 references/code-templates.md
参考
- references/linux-api-mapping.md - 完整映射表
- references/code-templates.md - 适配代码模板
Source
git clone https://github.com/Jiusi-pys/agent-plugins/blob/main/plugins/ohos-porting/skills/api-mapping/SKILL.mdView on GitHub Overview
API Mapping Skill 提供 Linux API 到 OpenHarmony API 的映射关系和适配代码模板,帮助在 OHOS 上实现替代方案。通过快速查询定位替代点,编写适配代码时自动加载模板,提升移植效率。覆盖事件机制、进程/线程和文件系统等核心领域。
How This Skill Works
技能按分类表组织映射关系,例如 epoll→poll/select、inotify→OHOS FileWatcher、statfs→statvfs 等。你可以用 grep 等命令快速查询替代方案,模板存放在 references/code-templates.md,编写适配代码时会自动加载相应模板以加速实现。
When to Use It
- 将 Linux 应用移植到 OHOS 时需要替换特定 API 的场景。
- 需要查询 epoll、inotify、eventfd、signalfd、timerfd 的 OHOS 对应实现及复杂度时。
- 评估进程/线程相关 API 的兼容性,如 clone、pthread_create、prctl、sched_setaffinity 时。
- 分析文件系统相关 API 的可用性与替代,如 /proc/self、/sys、statfs 的映射。
- 在编写适配代码时希望快速应用代码模板并自动加载相应实现片段。
Quick Start
- Step 1: grep -A 10 "epoll" references/linux-api-mapping.md
- Step 2: 查看对应 OHOS 替代与复杂度列,判断是否可直接替代或需替代设计
- Step 3: 打开 references/code-templates.md,应用适配代码模板,编写时模板会自动加载
Best Practices
- 在迁移前先梳理替代方案的行为差异与限制,避免功能偏差。
- 使用 grep 进行快速定位,确保覆盖所有调用点和路径。
- 结合 references/code-templates.md 的模板进行实现,减少重复性工作。
- 关注并发和时序相关 API 的潜在 race / 兼容性问题,编写回归测试。
- 记录对不可替代映射的取舍与设计决策,如 namespace 下的 clone 不受支持的情况。
Example Use Cases
- 将使用 epoll 的 Linux I/O 监听程序迁移到 OHOS 时,改用 OHOS 支持的替代机制(如 poll/select 的等效实现)。
- 将 inotify 的文件监控改为 OHOS 的 FileWatcher 方案以实现事件驱动的文件变更通知。
- 将 eventfd 的事件通知替换为 pipe 的实现以满足 OHOS 的 IPC 需求。
- 将 signalfd 的信号处理改为直接的 signal handler 逻辑,确保信号处理行为在 OHOS 中可控。
- 将 timerfd 的定时功能替换为 timer_create 的 OHOS 定时任务实现。
Frequently Asked Questions
Add this skill to your agents