目录

OH-MigrateLab 移动应用迁移与评测平台

参赛队伍:星野小队。唯一成员按 A(组长)匿名表述。

本项目提供 Android/iOS 到 OpenHarmony/HarmonyOS ArkTS 的迁移与评测流水线,支持源码分析、语义 IR、任务 DAG、上下文预算、受限生成与修复、SDK 校验和独立行为观察。用于移动应用迁移研发、方案对照和失败原因复核。

当前 Android Todo 最终候选原始业务场景通过 8/10,另列触控检查 10/10。iOS 只有静态/scripted 路径。完整整应用等价、场景 6/10、复杂应用 cohort 及官方隐藏验收尚未成立。

目录与材料

  • src/oh-migratelab/:当前冻结源码、标准库框架、测试、场景与官方 SWE-OpenHarmony 底座副本。
  • docs/:项目说明书、三项创新说明、成员贡献说明及 AI 与第三方工具使用说明 PDF。
  • tests/:便携模块测试入口、最终提交核对入口及真实实验脱敏副本。
  • demo/:可执行离线 scripted Demo、真实 Todo ArkTS 工程与原 HAP。
  • presentation/:最终 20 页答辩 PPT、约 2 分 45 秒演示视频及成片检查记录。
  • 作品原创承诺书.pdf:已填写、手抄并扫描的官方承诺书。

系统环境与依赖

离线框架要求 Python 3.10+ 和标准库。迁移模块测试还要求当前用户可以绑定本机 127.0.0.1 临时端口。离线 Demo 不调用云模型、SDK 或设备。

真实迁移需要另行配置 Codex/模型服务、相应 DevEco SDK、hvigor、HDC、签名与鸿蒙设备/模拟器;Android 源端观察需要 adb 和对应 AVD。iOS 原生运行需要额外的 Xcode/iOS 环境,本交付没有原生 iOS 验证。

SDK、模拟器、模型权重、账号令牌和私钥不随包分发。SDK/runtime、模型约束和当前签名在正式赛事中的资格仍需按官方要求确认。

构建与运行

标准库 CLI 无安装构建步骤。从项目根目录运行:

python3 -B demo/run_review.py --output-dir /tmp/oh-migratelab-review-new

必须使用新的空输出目录。结果在 demo-summary.json,Android 与 iOS 均为 scripted/partial,编译和设备通过率为未知。脚本另校验原 Todo HAP 的 SHA256,只证明字节一致,不产生新动态验收。

真实 Todo 工程位于 demo/Todo/target。用 DevEco 打开该工程,按本机合法 SDK 和签名重新设置 build-profile.json5 并构建运行。原宿主的路径均为占位别名,需重新配置,不能将更改路径后的收据冒充原始收据。既有 HAP 为 demo/Todo/Todo-final.hap,只应安装到可接受其签名的平台。包名/入口以工程 AppScope/app.json5、entry/src/main/module.json5 为准。

普通迁移 CLI 示例:

python3 -B src/oh-migratelab/content/competition-20260728/problem-9-swe-openharmony/packages/runner/run_migration_agent.py --help

真实 provider、编译与行为观察接口详见 src/oh-migratelab/content/competition-20260728/problem-9-swe-openharmony/docs/migration-agent.md 及相关模块文档。可选 UI 指导、状态/事件契约默认关闭,需显式启用。

测试与验证

python3 -B tests/run_tests.py --output-dir /tmp/oh-migratelab-tests-new
python3 -B tests/check_submission.py

本次便携模块测试为 990 项,977 通过、13 跳过、0 失败/错误。跳过含既有 12 项及 1 项依赖原机器 SDK/历史工程绝对路径的锚点检查。该检查没有通过信用,缺失前置条件和直接运行的失败记录保留。此前全仓 1093 项/12 跳过的记录独立保存,不与本次 990 项合并。

源码内部完整根测试和旧 run_competition_demo.py 还依赖旧历史证据目录、原宿主或旧导出结构,不能作为此规范目录的便携入口。本次入口覆盖迁移模块测试、两平台 scripted 流程和实际 HAP 字节核验,未重发历史动态通过。

真实实验见 tests/验证材料/finals-closure-20261006。四轮 ABBA 为同一 Todo 增量任务,A 触控 10/20、B 20/20,两组业务均 8/10,B 输入总量增加 5.02%。七页视觉诊断和失败均保留。路径已脱敏的日志/JSON 为审阅副本,原摘要用于指向原始身份;完整性索引同时保存副本 SHA,不能把这些副本当作原始受信 SDK 收据。

许可与已知限制

本项目自主模块按随包 Apache-2.0 声明使用;SWE-OpenHarmony 与 Google 样例的许可按各自文件保留,不能以项目许可证覆盖第三方。来源和代码统计口径见说明书与 tests/验证材料/licenses、源码行数口径.json。

上游 CloudMusic 样例的两份音频仅有 LFS 指针,没有实际音频。本轮将其保留为 .lfs-reference.txt 参考文本,不上传 LFS 对象;它们不参与当前 Demo 与 Todo 验证,上游音频测试不具备这些资产的完整运行条件。原始路径与字节身份仍记在来源索引中。

目前未取得完整应用等价、屏幕阅读器实际朗读/焦点与字体等价、复杂 cohort 和官方隐藏评测的完整证据。模型可能产生业务遗漏,SDK 通过不能替代功能验收;历史外部适配和人工控制器改动已披露。

提交状态

源码、项目说明书、创新说明、成员贡献说明、测试与验证材料、Demo、最终 PPT 和视频已纳入本仓库 master。两份官方声明手抄扫描件已提交,成员 A 已审阅确认材料内容、实际贡献与匿名信息,并确认报名系统的作品展示材料已成功提交。确认记录见 tests/提交确认.json。

最终 PPT 为 20 页。演示视频为 MP4,约 2 分 45 秒(165.43 秒),25,162,055 字节(约 25.16 MB),1920×1080,HEVC / AAC。时长与大小符合不超过 5 分钟、100 MB 的要求;最终文件的摘要、格式及完整解码检查见 presentation/submission-video-check.json。

原始业务 8/10、独立触控 10/10 是既有实验结果,录像展示不替代完整功能验收。技术限制与失败记录仍保留在说明书及测试材料中。

python3 -B tests/check_submission.py 检查必需材料、原 HAP 摘要、视频限制、文件完整性与确认记录。文件修改后先运行 python3 -B tests/update_manifest.py 更新摘要,再执行提交检查。报名系统状态根据成员 A 的确认记录,仓库检查不调用报名系统。

本轮沿用初赛仓库 master 分支及其历史,不使用 Git LFS。当前决赛评阅入口为本 README 与 src/、docs/、tests/、demo/、presentation/;保留的根目录 SWE-OpenHarmony/、content/、scripts/、P0_STATUS.md、SUBMISSION_CHECKLIST.md 和其他早期文件是初赛历史内容,不作为本轮最新成绩或就绪声明。最新限制以本 README 和决赛说明书为准。

按提交说明,截止为北京时间 2026 年 10 月 7 日 24:00(10 月 8 日 00:00)。报名系统提交后不可替换,仓库截止后不得修改。

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

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