@harmonyos-arkts/d2h 0.1.11 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +15 -13
- package/.claude-plugin/plugin.json +13 -7
- package/AGENTS.md +5 -5
- package/README.md +212 -212
- package/agents/android-to-hmos-00-orchestrator.md +318 -318
- package/agents/d2h.md +157 -157
- package/dist/bin/install-opencode.js +30 -30
- package/docs/environment-check.md +86 -86
- package/install-opencode.sh +160 -160
- package/opencode/agents.json +16 -16
- package/opencode/vscode-d2h-package.json +7 -7
- package/opencode/vscode-d2h-plugin.mjs +29 -29
- package/package.json +54 -54
- package/schemas/android-source-manifest.schema.json +25 -25
- package/schemas/checkpoint-provenance.schema.json +67 -67
- package/schemas/final-acceptance.schema.json +29 -29
- package/schemas/managed-evidence-index.schema.json +15 -15
- package/schemas/managed-evidence.schema.json +114 -114
- package/schemas/migration-config.schema.json +51 -51
- package/schemas/migration-report-index.schema.json +39 -39
- package/schemas/migration-report-item.schema.json +51 -51
- package/schemas/migration-report-summary.schema.json +25 -25
- package/schemas/migration-status.schema.json +202 -202
- package/schemas/preflight.schema.json +60 -60
- package/schemas/source-order-audit.schema.json +16 -16
- package/schemas/source-provenance-event.schema.json +19 -19
- package/schemas/spec-app-shard.schema.json +45 -45
- package/schemas/spec-fact-corrections-shard.schema.json +13 -13
- package/schemas/spec-features-shard.schema.json +43 -43
- package/schemas/spec-index.schema.json +26 -26
- package/schemas/spec-interactions-shard.schema.json +40 -40
- package/schemas/spec-page.schema.json +98 -98
- package/schemas/spec-pages-index.schema.json +1 -1
- package/schemas/spec-unresolved-shard.schema.json +1 -1
- package/schemas/task-envelope.schema.json +109 -109
- package/schemas/task-plan.schema.json +341 -341
- package/scripts/check-environment.mjs +320 -320
- package/skills/android2hmos_resources_convert/SKILL.md +180 -180
- package/skills/android2hmos_resources_convert/references/image-conversion-rules.md +230 -230
- package/skills/android2hmos_resources_convert/references/svg-fix-patterns.md +175 -175
- package/skills/android2hmos_resources_convert/references/xml-drawable-to-svg-rules.md +513 -513
- package/skills/arkts-app-identity/SKILL.md +238 -238
- package/skills/arkts-i18n/SKILL.md +496 -496
- package/skills/arkts-i18n/evals/evals.json +84 -84
- package/skills/arkts-i18n/references/code-examples.md +302 -302
- package/skills/arkts-i18n/references/common-pitfalls.md +391 -391
- package/skills/arkts-i18n/references/dynamic-language-switch.md +604 -604
- package/skills/arkts-i18n/references/hardcoded-string-scanner.md +348 -348
- package/skills/arkts-i18n/references/language-codes.md +104 -104
- package/skills/arkts-i18n/references/resource-file-structure.md +775 -775
- package/skills/arkts-i18n/references/static-vs-dynamic.md +242 -242
- package/skills/arkts-i18n/references/v1-compat.md +244 -244
- package/skills/arkts-i18n/scripts/audit_i18n_completeness.sh +174 -174
- package/skills/arkts-icon-sizing/SKILL.md +211 -211
- package/skills/arkts-icon-sizing/scripts/icon_audit.py +131 -131
- package/skills/arkts-icon-sizing/scripts/icon_autofix.py +88 -88
- package/skills/arkts-icon-sizing/scripts/icon_dims.py +179 -179
- package/skills/arkts-icon-sizing/scripts/icon_fix.py +119 -119
- package/skills/arkts-mvvm-architecture/SKILL.md +613 -613
- package/skills/d2h-hypium-forge/SKILL.md +309 -309
- package/skills/d2h-hypium-forge/references/functional-spec-template.md +140 -140
- package/skills/d2h-hypium-forge/references/official-api.md +135 -135
- package/skills/d2h-hypium-forge/references/pitfalls.md +98 -98
- package/skills/d2h-hypium-forge/references/testability-template.md +71 -71
- package/skills/d2h-hypium-forge/scripts/_common_template.py +659 -659
- package/skills/d2h-hypium-forge/scripts/analyze_results.py +165 -165
- package/skills/d2h-hypium-forge/scripts/assert_audit.py +107 -107
- package/skills/d2h-hypium-forge/scripts/collect_runtime_pages.py +169 -169
- package/skills/d2h-hypium-forge/scripts/forge_report.py +325 -325
- package/skills/d2h-hypium-forge/scripts/inject_resource_ids.py +114 -114
- package/skills/d2h-hypium-forge/scripts/lint_asserts.py +80 -80
- package/skills/d2h-hypium-forge/scripts/lint_locate.py +60 -60
- package/skills/d2h-hypium-forge/scripts/merge_appgraph.py +249 -249
- package/skills/d2h-hypium-forge/scripts/precondition.py +140 -140
- package/skills/d2h-hypium-forge/scripts/preinject_ids.py +232 -232
- package/skills/d2h-hypium-forge/scripts/probe.py +197 -197
- package/skills/d2h-hypium-forge/scripts/run_direct.py +823 -823
- package/skills/d2h-hypium-forge/scripts/run_parallel.py +121 -121
- package/skills/d2h-hypium-forge/scripts/scan_features.py +255 -255
- package/skills/d2h-hypium-forge/scripts/upgrade_asserts.py +66 -66
- package/skills/d2h-hypium-forge/scripts/validate_scenarios.py +84 -84
- package/skills/d2h-page-develop/SKILL.md +112 -112
- package/skills/d2h-page-develop/agents/openai.yaml +7 -7
- package/skills/d2h-page-spec-generate/SKILL.md +206 -206
- package/skills/d2h-page-spec-generate/scripts/build_batch_report.py +227 -227
- package/skills/d2h-utg-ai-generate/SKILL.md +128 -128
- package/skills/d2h-utg-ai-generate/references/click-paths-schema.json +76 -76
- package/skills/d2h-utg-ai-generate/references/extraction-guide.md +34 -34
- package/skills/d2h-utg-ai-generate/references/facts-contract.md +96 -96
- package/skills/d2h-utg-ai-generate/references/page-schema.json +61 -61
- package/skills/d2h-utg-ai-generate/references/utg-schema.json +89 -89
- package/skills/d2h-utg-ai-generate/scripts/build_page_json.py +314 -314
- package/skills/d2h-utg-ai-generate/scripts/build_utg.py +123 -123
- package/skills/d2h-utg-ai-generate/scripts/capture_from_page_json.ts +280 -280
- package/skills/d2h-utg-ai-generate/scripts/utg_common.py +524 -524
- package/skills/d2h-utg-ai-generate/scripts/utg_html.py +489 -489
- package/skills/d2h-utg-ai-generate/scripts/validate_utg.py +69 -69
- package/skills/d2h-utg-ai-generate/scripts/vendor/D3-LICENSE +13 -13
- package/skills/d2h-utg-ai-generate/scripts/vendor/d3-7.9.0.min.js +2 -2
- package/skills/d2h-utg-ai-generate/tests/test_pipeline.py +369 -369
- package/skills/d2h-utg-static-generate/SKILL.md +73 -73
- package/skills/d2h-utg-static-generate/references/discoveries.md +38 -38
- package/skills/d2h-utg-static-generate/scripts/generate.py +499 -499
- package/skills/d2h-utg-static-generate/tests/test_static.py +335 -335
- package/skills/d2h-utg-static-generate/tests/verify-offline-html.py +60 -60
- package/skills/d2h-utg-static-generate/tests/verify-produced-fixture.py +131 -131
- package/skills/harmonyos-migration-playbook/SKILL.md +83 -83
- package/skills/harmonyos-migration-playbook/agents/openai.yaml +7 -7
- package/skills/harmonyos-migration-playbook/references/arkts-compile.md +24 -24
- package/skills/harmonyos-migration-playbook/references/harmony-runtime.md +53 -53
- package/skills/harmonyos-migration-playbook/references/lesson-lifecycle.md +45 -45
- package/skills/harmonyos-migration-playbook/references/protocol-e2e.md +23 -23
- package/skills/harmonyos-migration-playbook/references/ui-automation.md +53 -53
- package/skills/harmonyos-migration-playbook/references/windows-environment.md +38 -38
- package/skills/maintaining-migration-report/SKILL.md +144 -144
- package/skills/maintaining-migration-report/references/final-acceptance.md +48 -48
- package/skills/maintaining-migration-report/references/source-provenance.md +66 -66
- package/skills/managing-d2h-toolchain/SKILL.md +24 -24
- package/skills/managing-d2h-toolchain/environment-requirements.json +16 -16
- package/skills/managing-d2h-toolchain/scripts/manage-toolchain.mjs +98 -98
- package/skills/managing-d2h-toolchain/toolchain.json +16 -16
- package/skills/native-library-substitution/SKILL.md +384 -384
- package/skills/native-library-substitution/references/native-library-substitution.json +56905 -56905
- package/skills/native-library-substitution/references/native-library-substitution.md +163 -163
- package/skills/preparing-migration-workspace/SKILL.md +131 -131
- package/skills/reviewing-migration-process/SKILL.md +62 -62
|
@@ -1,163 +1,163 @@
|
|
|
1
|
-
# Native Library Substitution 单一映射表
|
|
2
|
-
|
|
3
|
-
**数据版本**: 3.0.0
|
|
4
|
-
**更新日期**: 2026-04-22
|
|
5
|
-
|
|
6
|
-
## 数据概览
|
|
7
|
-
|
|
8
|
-
| 统计项 | 数量 |
|
|
9
|
-
|--------|------|
|
|
10
|
-
| 总映射数 | 2678 |
|
|
11
|
-
| 有安卓库的映射 | 1005 |
|
|
12
|
-
| 鸿蒙原生库(无安卓库) | 1673 |
|
|
13
|
-
| 唯一安卓库数 | 852 |
|
|
14
|
-
| 唯一ohpm包数 | 2537 |
|
|
15
|
-
|
|
16
|
-
## source_availability 分布
|
|
17
|
-
|
|
18
|
-
| 状态 | 数量 | 说明 |
|
|
19
|
-
|------|------|------|
|
|
20
|
-
| COMMERCIAL_PUBLIC | 175 | 闭源商业SDK(来自工作簿) |
|
|
21
|
-
| open_source | 2503 | 开源库 |
|
|
22
|
-
| not_set | 0 | 未设置 |
|
|
23
|
-
|
|
24
|
-
## source_type 分布
|
|
25
|
-
|
|
26
|
-
| 来源类型 | 数量 | 说明 |
|
|
27
|
-
|----------|------|------|
|
|
28
|
-
| 鸿蒙原生库 | 1321 | 鸿蒙原生开发,无对应安卓库 |
|
|
29
|
-
| TS/JS迁移库 | 790 | 从npm生态迁移 |
|
|
30
|
-
| 安卓鸿蒙化库 | 432 | 直接从安卓库移植 |
|
|
31
|
-
| C++/C鸿蒙化库 | 133 | 从C++生态迁移 |
|
|
32
|
-
|
|
33
|
-
## category 分布
|
|
34
|
-
|
|
35
|
-
| Category | 数量 | 说明 |
|
|
36
|
-
|----------|------|------|
|
|
37
|
-
| other | 1527 | 其他 |
|
|
38
|
-
| ui | 370 | UI组件 |
|
|
39
|
-
| utils | 213 | 工具类 |
|
|
40
|
-
| network | 209 | 网络请求 |
|
|
41
|
-
| media | 89 | 音视频 |
|
|
42
|
-
| auth | 61 | 登录认证 |
|
|
43
|
-
| notification | 60 | 推送通知 |
|
|
44
|
-
| storage | 60 | 存储文件 |
|
|
45
|
-
| location | 50 | 地图定位 |
|
|
46
|
-
| analytics | 17 | 统计分析 |
|
|
47
|
-
| payment | 16 | 支付 |
|
|
48
|
-
| security | 4 | 安全加密 |
|
|
49
|
-
| im | 1 | 即时通讯 |
|
|
50
|
-
| social | 1 | 社交分享 |
|
|
51
|
-
|
|
52
|
-
## 闭源库示例(COMMERCIAL_PUBLIC)
|
|
53
|
-
|
|
54
|
-
| 安卓库 | 鸿蒙包 | install_command |
|
|
55
|
-
|--------|--------|-----------------|
|
|
56
|
-
| com.tencent.mm.opensdk:wechat-sdk-androi | @tencent/wechat_open_sdk | `ohpm install @tencent/wechat_open_sdk` |
|
|
57
|
-
| com.sensorsdata.analytics.abtesting:Sens | @sensorsdata/analytics | `ohpm install @sensorsdata/analytics` |
|
|
58
|
-
| cn.admobiletop.adsuyi.ad.adapter:tianmu | @admobile/tianmu | `ohpm install @admobile/tianmu` |
|
|
59
|
-
| cn.admobiletop.adsuyi.ad:core | @admobile/tianmu | `ohpm install @admobile/tianmu` |
|
|
60
|
-
| io.hyphenate:hyphenate-chat | @easemob/chatsdk | `ohpm install @easemob/chatsdk` |
|
|
61
|
-
| com.aliyun.auikits.android:ARTCAICallKit | @aliyun_video_cloud/alivcsdk_artc | `ohpm install @aliyun_video_cloud/alivcsdk_artc` |
|
|
62
|
-
| com.aliyun.iot.aep.sdk:push | @aliyun/push | `ohpm install @aliyun/push` |
|
|
63
|
-
| com.aliyun.rum:alibabacloud-android-rum- | @alibabacloud_rum/harmony_sdk | `ohpm install @alibabacloud_rum/harmony_sdk` |
|
|
64
|
-
| com.alibaba.mtl:app-monitor-sdk | @alibabacloud_rum/harmony_sdk | `ohpm install @alibabacloud_rum/harmony_sdk` |
|
|
65
|
-
| com.aliyun.ams:alicloud-apm-crash-analys | @aliyun/apm | `ohpm install @aliyun/apm` |
|
|
66
|
-
| com.aliyun.dpa:oss-android-sdk | @aliyun/oss | `ohpm install @aliyun/oss` |
|
|
67
|
-
| afservicesdk | @cashier_alipay/cashiersdk | `ohpm install @cashier_alipay/cashiersdk` |
|
|
68
|
-
| com.alipay.sdk:alipaysdk-android | @cashier_alipay/cashiersdk | `ohpm install @cashier_alipay/cashiersdk` |
|
|
69
|
-
| io.github.yidun:livedetect | @yidun/alive | `ohpm install @yidun/alive` |
|
|
70
|
-
| io.github.aliyun-sls:aliyun-log-android- | @aliyun/logger | `ohpm install @aliyun/logger` |
|
|
71
|
-
| com.aliyun.ams:alicloud-android-push | @aliyun/push | `ohpm install @aliyun/push` |
|
|
72
|
-
| com.aliyun.ams:alicloud-android-third-pu | @aliyun/push | `ohpm install @aliyun/push` |
|
|
73
|
-
| com.aliyun.ams:alicloud-android-third-pu | @aliyun/push | `ohpm install @aliyun/push` |
|
|
74
|
-
| com.amap.api:3dmap | @amap/amap_lbs_map3d | `ohpm install @amap/amap_lbs_map3d` |
|
|
75
|
-
| com.amap.api:location | @amap/amap_lbs_location | `ohpm install @amap/amap_lbs_location` |
|
|
76
|
-
| com.amap.api:search | @amap/amap_lbs_search | `ohpm install @amap/amap_lbs_search` |
|
|
77
|
-
| com.amap.api:3dmap-location-search | @amap/amap_lbs_map3d | `ohpm install @amap/amap_lbs_map3d` |
|
|
78
|
-
| com.amap.api:navi-3dmap | @amap/amap_lbs_map3d | `ohpm install @amap/amap_lbs_map3d` |
|
|
79
|
-
| com.umeng.umsdk:analytics | @umeng/analytics | `ohpm install @umeng/analytics` |
|
|
80
|
-
| com.umeng.umsdk:common | @umeng/common | `ohpm install @umeng/common` |
|
|
81
|
-
| BaiduLBS_Android | @bdmap/navi_map | `ohpm install @bdmap/navi_map` |
|
|
82
|
-
| com.baidubce.mediasdk:brtc | @baiduplayer/baidurtcsdk | `ohpm install @baiduplayer/baidurtcsdk` |
|
|
83
|
-
| com.getui:gtsdk | @getui/push | `ohpm install @getui/push` |
|
|
84
|
-
| com.bonree.sdk.jar | @bonree/agent | `ohpm install @bonree/agent` |
|
|
85
|
-
| com.tencent.bugly:crashreport | bugly | `ohpm install bugly` |
|
|
86
|
-
|
|
87
|
-
*共 175 条闭源库映射*
|
|
88
|
-
|
|
89
|
-
## 高置信度映射示例(安卓鸿蒙化库)
|
|
90
|
-
|
|
91
|
-
| 安卓库 | 鸿蒙包 | category | install_command |
|
|
92
|
-
|--------|--------|----------|-----------------|
|
|
93
|
-
| AJCaptcha 安卓实现版本 | @scca/verification | other | `ohpm install @scca/verification` |
|
|
94
|
-
| ARouter | @ohos/arouteronactivityresult | other | `ohpm install @ohos/arouteronactivityresult` |
|
|
95
|
-
| ARouter | hrouter | other | `ohpm install hrouter` |
|
|
96
|
-
| Android Beacon Library (AltBea | @ohos/beacon-library | other | `ohpm install @ohos/beacon-library` |
|
|
97
|
-
| Android BottomSheet | @hld/bottomsheet | other | `ohpm install @hld/bottomsheet` |
|
|
98
|
-
| Android Jetpack Paging3 | @jackiehou/experimental-paging | other | `ohpm install @jackiehou/experimental-paging` |
|
|
99
|
-
| Android Room | @hzzmkjyxgs/zmwlthmosdb | other | `ohpm install @hzzmkjyxgs/zmwlthmosdb` |
|
|
100
|
-
| Android TabLayout(com.google.a | @zyc/tablayout | other | `ohpm install @zyc/tablayout` |
|
|
101
|
-
| Android XLog | @ohos-port/xlog-ts | other | `ohpm install @ohos-port/xlog-ts` |
|
|
102
|
-
| Android-Debug-Database | @hadss/debug-db | other | `ohpm install @hadss/debug-db` |
|
|
103
|
-
| AndroidImageEditor | @zhongjh/image_edit | other | `ohpm install @zhongjh/image_edit` |
|
|
104
|
-
| AndroidUtilCode | @android_x/utilcode | other | `ohpm install @android_x/utilcode` |
|
|
105
|
-
| AndroidUtilCode | @ilye/utilcode | other | `ohpm install @ilye/utilcode` |
|
|
106
|
-
| AndroidUtilCode | @ranran/utilcode | other | `ohpm install @ranran/utilcode` |
|
|
107
|
-
| AndroidVideoCache | @changjing/drm | media | `ohpm install @changjing/drm` |
|
|
108
|
-
| AndroidVideoCache (com.danikul | @ohos/video-cache | media | `ohpm install @ohos/video-cache` |
|
|
109
|
-
| Apache Batik | @ohos/xmlgraphicsbatik | other | `ohpm install @ohos/xmlgraphicsbatik` |
|
|
110
|
-
| Apache Cordova Android | @boc/cordova | other | `ohpm install @boc/cordova` |
|
|
111
|
-
| AppCan Android Engine | @appcan/engine | other | `ohpm install @appcan/engine` |
|
|
112
|
-
| DBFlow | @ohos/dataorm | other | `ohpm install @ohos/dataorm` |
|
|
113
|
-
|
|
114
|
-
*共 340 条高置信度安卓鸿蒙化库映射*
|
|
115
|
-
|
|
116
|
-
## 鸿蒙原生库示例(无安卓库)
|
|
117
|
-
|
|
118
|
-
| 鸿蒙包 | 组织 | category | install_command |
|
|
119
|
-
|--------|------|----------|-----------------|
|
|
120
|
-
| @pura/harmony-utils | pura | notification | `ohpm install @pura/harmony-utils` |
|
|
121
|
-
| @pura/harmony-dialog | pura | ui | `ohpm install @pura/harmony-dialog` |
|
|
122
|
-
| @ibestservices/ibest-ui | ibestservices | ui | `ohpm install @ibestservices/ibest-ui` |
|
|
123
|
-
| @abner/refresh | abner | ui | `ohpm install @abner/refresh` |
|
|
124
|
-
| @hzw/zrouter | hzw | other | `ohpm install @hzw/zrouter` |
|
|
125
|
-
| cjcalendar | | ui | `ohpm install cjcalendar` |
|
|
126
|
-
| @hadss/hmrouter | hadss | other | `ohpm install @hadss/hmrouter` |
|
|
127
|
-
| @esky/barrage | esky | media | `ohpm install @esky/barrage` |
|
|
128
|
-
| @ibestservices/ibest-ui-v2 | ibestservices | ui | `ohpm install @ibestservices/ibest-ui-v2` |
|
|
129
|
-
| @ohos/pulltorefresh | ohos | ui | `ohpm install @ohos/pulltorefresh` |
|
|
130
|
-
| @mcui/mccharts | mcui | utils | `ohpm install @mcui/mccharts` |
|
|
131
|
-
| @maple/navigationbarview | maple | location | `ohpm install @maple/navigationbarview` |
|
|
132
|
-
| @abner/dialog | abner | ui | `ohpm install @abner/dialog` |
|
|
133
|
-
| @zyl/wxcommonlibhar | zyl | payment | `ohpm install @zyl/wxcommonlibhar` |
|
|
134
|
-
| @ibestservices/ibest-orm | ibestservices | storage | `ohpm install @ibestservices/ibest-orm` |
|
|
135
|
-
| @ohasasugar/hp-richtext | ohasasugar | ui | `ohpm install @ohasasugar/hp-richtext` |
|
|
136
|
-
| @zyl/commonlibhar | zyl | media | `ohpm install @zyl/commonlibhar` |
|
|
137
|
-
| @abner/datastore | abner | storage | `ohpm install @abner/datastore` |
|
|
138
|
-
| @visactor/harmony-vchart | visactor | other | `ohpm install @visactor/harmony-vchart` |
|
|
139
|
-
| @liushengyi/smartdb | liushengyi | storage | `ohpm install @liushengyi/smartdb` |
|
|
140
|
-
|
|
141
|
-
*共 1673 条鸿蒙原生库*
|
|
142
|
-
|
|
143
|
-
## 数据结构
|
|
144
|
-
|
|
145
|
-
每条映射记录包含15个字段:
|
|
146
|
-
|
|
147
|
-
| 字段 | 类型 | 说明 |
|
|
148
|
-
|------|------|------|
|
|
149
|
-
| android_lib | string/null | 安卓库标识符(鸿蒙原生库为null) |
|
|
150
|
-
| android_platform | string | android / ios / ohos_native |
|
|
151
|
-
| android_description | string/null | 安卓库功能描述 |
|
|
152
|
-
| ohpm_package | string | 鸿蒙包名 |
|
|
153
|
-
| ohpm_org | string | ohpm组织名 |
|
|
154
|
-
| ohpm_description | string | 鸿蒙包功能描述 |
|
|
155
|
-
| ohpm_keywords | array | 鸿蒙包关键词 |
|
|
156
|
-
| ohpm_repo_url | string | 鸿蒙包源码仓库 |
|
|
157
|
-
| ohpm_homepage | string | 鸿蒙包文档主页 |
|
|
158
|
-
| source_type | string | 安卓鸿蒙化库/TS迁移库/鸿蒙原生库 |
|
|
159
|
-
| source_availability | string | COMMERCIAL_PUBLIC/open_source |
|
|
160
|
-
| confidence | string | high/medium/low |
|
|
161
|
-
| install_command | string | ohpm install命令 |
|
|
162
|
-
| category | string | media/network/notification等 |
|
|
163
|
-
| inference_reason | string | 映射关系说明 |
|
|
1
|
+
# Native Library Substitution 单一映射表
|
|
2
|
+
|
|
3
|
+
**数据版本**: 3.0.0
|
|
4
|
+
**更新日期**: 2026-04-22
|
|
5
|
+
|
|
6
|
+
## 数据概览
|
|
7
|
+
|
|
8
|
+
| 统计项 | 数量 |
|
|
9
|
+
|--------|------|
|
|
10
|
+
| 总映射数 | 2678 |
|
|
11
|
+
| 有安卓库的映射 | 1005 |
|
|
12
|
+
| 鸿蒙原生库(无安卓库) | 1673 |
|
|
13
|
+
| 唯一安卓库数 | 852 |
|
|
14
|
+
| 唯一ohpm包数 | 2537 |
|
|
15
|
+
|
|
16
|
+
## source_availability 分布
|
|
17
|
+
|
|
18
|
+
| 状态 | 数量 | 说明 |
|
|
19
|
+
|------|------|------|
|
|
20
|
+
| COMMERCIAL_PUBLIC | 175 | 闭源商业SDK(来自工作簿) |
|
|
21
|
+
| open_source | 2503 | 开源库 |
|
|
22
|
+
| not_set | 0 | 未设置 |
|
|
23
|
+
|
|
24
|
+
## source_type 分布
|
|
25
|
+
|
|
26
|
+
| 来源类型 | 数量 | 说明 |
|
|
27
|
+
|----------|------|------|
|
|
28
|
+
| 鸿蒙原生库 | 1321 | 鸿蒙原生开发,无对应安卓库 |
|
|
29
|
+
| TS/JS迁移库 | 790 | 从npm生态迁移 |
|
|
30
|
+
| 安卓鸿蒙化库 | 432 | 直接从安卓库移植 |
|
|
31
|
+
| C++/C鸿蒙化库 | 133 | 从C++生态迁移 |
|
|
32
|
+
|
|
33
|
+
## category 分布
|
|
34
|
+
|
|
35
|
+
| Category | 数量 | 说明 |
|
|
36
|
+
|----------|------|------|
|
|
37
|
+
| other | 1527 | 其他 |
|
|
38
|
+
| ui | 370 | UI组件 |
|
|
39
|
+
| utils | 213 | 工具类 |
|
|
40
|
+
| network | 209 | 网络请求 |
|
|
41
|
+
| media | 89 | 音视频 |
|
|
42
|
+
| auth | 61 | 登录认证 |
|
|
43
|
+
| notification | 60 | 推送通知 |
|
|
44
|
+
| storage | 60 | 存储文件 |
|
|
45
|
+
| location | 50 | 地图定位 |
|
|
46
|
+
| analytics | 17 | 统计分析 |
|
|
47
|
+
| payment | 16 | 支付 |
|
|
48
|
+
| security | 4 | 安全加密 |
|
|
49
|
+
| im | 1 | 即时通讯 |
|
|
50
|
+
| social | 1 | 社交分享 |
|
|
51
|
+
|
|
52
|
+
## 闭源库示例(COMMERCIAL_PUBLIC)
|
|
53
|
+
|
|
54
|
+
| 安卓库 | 鸿蒙包 | install_command |
|
|
55
|
+
|--------|--------|-----------------|
|
|
56
|
+
| com.tencent.mm.opensdk:wechat-sdk-androi | @tencent/wechat_open_sdk | `ohpm install @tencent/wechat_open_sdk` |
|
|
57
|
+
| com.sensorsdata.analytics.abtesting:Sens | @sensorsdata/analytics | `ohpm install @sensorsdata/analytics` |
|
|
58
|
+
| cn.admobiletop.adsuyi.ad.adapter:tianmu | @admobile/tianmu | `ohpm install @admobile/tianmu` |
|
|
59
|
+
| cn.admobiletop.adsuyi.ad:core | @admobile/tianmu | `ohpm install @admobile/tianmu` |
|
|
60
|
+
| io.hyphenate:hyphenate-chat | @easemob/chatsdk | `ohpm install @easemob/chatsdk` |
|
|
61
|
+
| com.aliyun.auikits.android:ARTCAICallKit | @aliyun_video_cloud/alivcsdk_artc | `ohpm install @aliyun_video_cloud/alivcsdk_artc` |
|
|
62
|
+
| com.aliyun.iot.aep.sdk:push | @aliyun/push | `ohpm install @aliyun/push` |
|
|
63
|
+
| com.aliyun.rum:alibabacloud-android-rum- | @alibabacloud_rum/harmony_sdk | `ohpm install @alibabacloud_rum/harmony_sdk` |
|
|
64
|
+
| com.alibaba.mtl:app-monitor-sdk | @alibabacloud_rum/harmony_sdk | `ohpm install @alibabacloud_rum/harmony_sdk` |
|
|
65
|
+
| com.aliyun.ams:alicloud-apm-crash-analys | @aliyun/apm | `ohpm install @aliyun/apm` |
|
|
66
|
+
| com.aliyun.dpa:oss-android-sdk | @aliyun/oss | `ohpm install @aliyun/oss` |
|
|
67
|
+
| afservicesdk | @cashier_alipay/cashiersdk | `ohpm install @cashier_alipay/cashiersdk` |
|
|
68
|
+
| com.alipay.sdk:alipaysdk-android | @cashier_alipay/cashiersdk | `ohpm install @cashier_alipay/cashiersdk` |
|
|
69
|
+
| io.github.yidun:livedetect | @yidun/alive | `ohpm install @yidun/alive` |
|
|
70
|
+
| io.github.aliyun-sls:aliyun-log-android- | @aliyun/logger | `ohpm install @aliyun/logger` |
|
|
71
|
+
| com.aliyun.ams:alicloud-android-push | @aliyun/push | `ohpm install @aliyun/push` |
|
|
72
|
+
| com.aliyun.ams:alicloud-android-third-pu | @aliyun/push | `ohpm install @aliyun/push` |
|
|
73
|
+
| com.aliyun.ams:alicloud-android-third-pu | @aliyun/push | `ohpm install @aliyun/push` |
|
|
74
|
+
| com.amap.api:3dmap | @amap/amap_lbs_map3d | `ohpm install @amap/amap_lbs_map3d` |
|
|
75
|
+
| com.amap.api:location | @amap/amap_lbs_location | `ohpm install @amap/amap_lbs_location` |
|
|
76
|
+
| com.amap.api:search | @amap/amap_lbs_search | `ohpm install @amap/amap_lbs_search` |
|
|
77
|
+
| com.amap.api:3dmap-location-search | @amap/amap_lbs_map3d | `ohpm install @amap/amap_lbs_map3d` |
|
|
78
|
+
| com.amap.api:navi-3dmap | @amap/amap_lbs_map3d | `ohpm install @amap/amap_lbs_map3d` |
|
|
79
|
+
| com.umeng.umsdk:analytics | @umeng/analytics | `ohpm install @umeng/analytics` |
|
|
80
|
+
| com.umeng.umsdk:common | @umeng/common | `ohpm install @umeng/common` |
|
|
81
|
+
| BaiduLBS_Android | @bdmap/navi_map | `ohpm install @bdmap/navi_map` |
|
|
82
|
+
| com.baidubce.mediasdk:brtc | @baiduplayer/baidurtcsdk | `ohpm install @baiduplayer/baidurtcsdk` |
|
|
83
|
+
| com.getui:gtsdk | @getui/push | `ohpm install @getui/push` |
|
|
84
|
+
| com.bonree.sdk.jar | @bonree/agent | `ohpm install @bonree/agent` |
|
|
85
|
+
| com.tencent.bugly:crashreport | bugly | `ohpm install bugly` |
|
|
86
|
+
|
|
87
|
+
*共 175 条闭源库映射*
|
|
88
|
+
|
|
89
|
+
## 高置信度映射示例(安卓鸿蒙化库)
|
|
90
|
+
|
|
91
|
+
| 安卓库 | 鸿蒙包 | category | install_command |
|
|
92
|
+
|--------|--------|----------|-----------------|
|
|
93
|
+
| AJCaptcha 安卓实现版本 | @scca/verification | other | `ohpm install @scca/verification` |
|
|
94
|
+
| ARouter | @ohos/arouteronactivityresult | other | `ohpm install @ohos/arouteronactivityresult` |
|
|
95
|
+
| ARouter | hrouter | other | `ohpm install hrouter` |
|
|
96
|
+
| Android Beacon Library (AltBea | @ohos/beacon-library | other | `ohpm install @ohos/beacon-library` |
|
|
97
|
+
| Android BottomSheet | @hld/bottomsheet | other | `ohpm install @hld/bottomsheet` |
|
|
98
|
+
| Android Jetpack Paging3 | @jackiehou/experimental-paging | other | `ohpm install @jackiehou/experimental-paging` |
|
|
99
|
+
| Android Room | @hzzmkjyxgs/zmwlthmosdb | other | `ohpm install @hzzmkjyxgs/zmwlthmosdb` |
|
|
100
|
+
| Android TabLayout(com.google.a | @zyc/tablayout | other | `ohpm install @zyc/tablayout` |
|
|
101
|
+
| Android XLog | @ohos-port/xlog-ts | other | `ohpm install @ohos-port/xlog-ts` |
|
|
102
|
+
| Android-Debug-Database | @hadss/debug-db | other | `ohpm install @hadss/debug-db` |
|
|
103
|
+
| AndroidImageEditor | @zhongjh/image_edit | other | `ohpm install @zhongjh/image_edit` |
|
|
104
|
+
| AndroidUtilCode | @android_x/utilcode | other | `ohpm install @android_x/utilcode` |
|
|
105
|
+
| AndroidUtilCode | @ilye/utilcode | other | `ohpm install @ilye/utilcode` |
|
|
106
|
+
| AndroidUtilCode | @ranran/utilcode | other | `ohpm install @ranran/utilcode` |
|
|
107
|
+
| AndroidVideoCache | @changjing/drm | media | `ohpm install @changjing/drm` |
|
|
108
|
+
| AndroidVideoCache (com.danikul | @ohos/video-cache | media | `ohpm install @ohos/video-cache` |
|
|
109
|
+
| Apache Batik | @ohos/xmlgraphicsbatik | other | `ohpm install @ohos/xmlgraphicsbatik` |
|
|
110
|
+
| Apache Cordova Android | @boc/cordova | other | `ohpm install @boc/cordova` |
|
|
111
|
+
| AppCan Android Engine | @appcan/engine | other | `ohpm install @appcan/engine` |
|
|
112
|
+
| DBFlow | @ohos/dataorm | other | `ohpm install @ohos/dataorm` |
|
|
113
|
+
|
|
114
|
+
*共 340 条高置信度安卓鸿蒙化库映射*
|
|
115
|
+
|
|
116
|
+
## 鸿蒙原生库示例(无安卓库)
|
|
117
|
+
|
|
118
|
+
| 鸿蒙包 | 组织 | category | install_command |
|
|
119
|
+
|--------|------|----------|-----------------|
|
|
120
|
+
| @pura/harmony-utils | pura | notification | `ohpm install @pura/harmony-utils` |
|
|
121
|
+
| @pura/harmony-dialog | pura | ui | `ohpm install @pura/harmony-dialog` |
|
|
122
|
+
| @ibestservices/ibest-ui | ibestservices | ui | `ohpm install @ibestservices/ibest-ui` |
|
|
123
|
+
| @abner/refresh | abner | ui | `ohpm install @abner/refresh` |
|
|
124
|
+
| @hzw/zrouter | hzw | other | `ohpm install @hzw/zrouter` |
|
|
125
|
+
| cjcalendar | | ui | `ohpm install cjcalendar` |
|
|
126
|
+
| @hadss/hmrouter | hadss | other | `ohpm install @hadss/hmrouter` |
|
|
127
|
+
| @esky/barrage | esky | media | `ohpm install @esky/barrage` |
|
|
128
|
+
| @ibestservices/ibest-ui-v2 | ibestservices | ui | `ohpm install @ibestservices/ibest-ui-v2` |
|
|
129
|
+
| @ohos/pulltorefresh | ohos | ui | `ohpm install @ohos/pulltorefresh` |
|
|
130
|
+
| @mcui/mccharts | mcui | utils | `ohpm install @mcui/mccharts` |
|
|
131
|
+
| @maple/navigationbarview | maple | location | `ohpm install @maple/navigationbarview` |
|
|
132
|
+
| @abner/dialog | abner | ui | `ohpm install @abner/dialog` |
|
|
133
|
+
| @zyl/wxcommonlibhar | zyl | payment | `ohpm install @zyl/wxcommonlibhar` |
|
|
134
|
+
| @ibestservices/ibest-orm | ibestservices | storage | `ohpm install @ibestservices/ibest-orm` |
|
|
135
|
+
| @ohasasugar/hp-richtext | ohasasugar | ui | `ohpm install @ohasasugar/hp-richtext` |
|
|
136
|
+
| @zyl/commonlibhar | zyl | media | `ohpm install @zyl/commonlibhar` |
|
|
137
|
+
| @abner/datastore | abner | storage | `ohpm install @abner/datastore` |
|
|
138
|
+
| @visactor/harmony-vchart | visactor | other | `ohpm install @visactor/harmony-vchart` |
|
|
139
|
+
| @liushengyi/smartdb | liushengyi | storage | `ohpm install @liushengyi/smartdb` |
|
|
140
|
+
|
|
141
|
+
*共 1673 条鸿蒙原生库*
|
|
142
|
+
|
|
143
|
+
## 数据结构
|
|
144
|
+
|
|
145
|
+
每条映射记录包含15个字段:
|
|
146
|
+
|
|
147
|
+
| 字段 | 类型 | 说明 |
|
|
148
|
+
|------|------|------|
|
|
149
|
+
| android_lib | string/null | 安卓库标识符(鸿蒙原生库为null) |
|
|
150
|
+
| android_platform | string | android / ios / ohos_native |
|
|
151
|
+
| android_description | string/null | 安卓库功能描述 |
|
|
152
|
+
| ohpm_package | string | 鸿蒙包名 |
|
|
153
|
+
| ohpm_org | string | ohpm组织名 |
|
|
154
|
+
| ohpm_description | string | 鸿蒙包功能描述 |
|
|
155
|
+
| ohpm_keywords | array | 鸿蒙包关键词 |
|
|
156
|
+
| ohpm_repo_url | string | 鸿蒙包源码仓库 |
|
|
157
|
+
| ohpm_homepage | string | 鸿蒙包文档主页 |
|
|
158
|
+
| source_type | string | 安卓鸿蒙化库/TS迁移库/鸿蒙原生库 |
|
|
159
|
+
| source_availability | string | COMMERCIAL_PUBLIC/open_source |
|
|
160
|
+
| confidence | string | high/medium/low |
|
|
161
|
+
| install_command | string | ohpm install命令 |
|
|
162
|
+
| category | string | media/network/notification等 |
|
|
163
|
+
| inference_reason | string | 映射关系说明 |
|
|
@@ -1,131 +1,131 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: preparing-migration-workspace
|
|
3
|
-
description: 在 Android 转 HarmonyOS 迁移开始或恢复时,通过 droid2hmos 读取状态、执行 Preflight、初始化或校验配置,并采集设备与外部环境就绪度。只负责工作区准备和能力分流;不调度分析、实现、构建、测试、回归或 Git checkpoint。
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# 准备迁移工作区
|
|
7
|
-
|
|
8
|
-
本 Skill 只负责回答四个问题:项目和迁移工作区是否定位正确、非设备基线是否可用、设备是否可用、哪些外部条件仍阻塞特定能力。它不决定后续状态,也不把设备失败扩大为整个迁移停止。
|
|
9
|
-
|
|
10
|
-
工具安装、精确版本和升级由 `managing-d2h-toolchain` 负责。本 Skill 只消费已检查的 CLI;发现版本或能力不符时返回该 Skill 处理,不运行 npm。
|
|
11
|
-
|
|
12
|
-
只调用 `droid2hmos` 的 `status`、`preflight`、`config init/validate` 和按需的 `device check`。不要直接调用 Node 脚本、Gradle、Hvigor、Hypium、ADB、HDC 或 AppGraph 分析命令,也不要在 `ohos/` 尚不存在时猜测 HarmonyOS 构建配置。
|
|
13
|
-
|
|
14
|
-
迁移产物(`.migration/`)统一位于 Android 工程父目录下的 `<工程名>-migration/.migration/`,由 CLI 创建和维护,不写入 Android 工程内部。下文所有 `.migration/...` 路径均相对该迁移工作区根目录。
|
|
15
|
-
|
|
16
|
-
## 输入与事实来源
|
|
17
|
-
|
|
18
|
-
输入必须包含 Android Gradle 工程根目录。根目录应有 Gradle 标记,应用模块中应有 `AndroidManifest.xml`。
|
|
19
|
-
|
|
20
|
-
开始或恢复时先获取只读快照:
|
|
21
|
-
|
|
22
|
-
```text
|
|
23
|
-
droid2hmos status <ANDROID_PROJECT>
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
以 CLI 返回的 `workspace`、`allowedActions`、`completion.unmet`、Preflight 检查项、`failedChecks` 和 `retry` 为机器事实。`phase` 只解释当前现场;不得创建或编辑 `.migration/state.json`。
|
|
27
|
-
|
|
28
|
-
如果 `workspace.projectPresent=false` 且 `workspace.projectCandidates` 非空,说明传入的是包装目录。改用列出的明确候选工程,不得在包装目录初始化第二套迁移工作区或 HarmonyOS 工程。
|
|
29
|
-
|
|
30
|
-
## 首次准备
|
|
31
|
-
|
|
32
|
-
运行统一预检:
|
|
33
|
-
|
|
34
|
-
```text
|
|
35
|
-
droid2hmos preflight <ANDROID_PROJECT> [--sdk-path <PATH>] [--timeout-ms <MS>]
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
`preflight` 由 Kernel 选择并判定检查项,可能包含:
|
|
39
|
-
|
|
40
|
-
- Android UI 技术栈支持性;
|
|
41
|
-
- Git 仓库、分支、`HEAD` 和用户已有改动;
|
|
42
|
-
- Git、Node.js、npm、Python、JDK、DevEco 和 HarmonyOS SDK(Android SDK 探测已移除,迁移不依赖 Android 编译环境);
|
|
43
|
-
- AppGraph 健康检查;
|
|
44
|
-
- `.migration/config.json` 初始化和校验;
|
|
45
|
-
- Android 基线状态;
|
|
46
|
-
- 已有 HarmonyOS 工程复用,或在空目标中创建工程壳;
|
|
47
|
-
- Preflight 自身所需的基线构建和设备检查;
|
|
48
|
-
- `.migration/preflight-report.json` 原子生成。
|
|
49
|
-
|
|
50
|
-
这些是 Preflight 的内部门禁,不授权本 Skill 在预检后继续调度仓库级构建、测试或分析。已有 HarmonyOS 工程不得被覆盖;只校验现有工程且不允许初始化工程壳时使用 `--no-init-harmony`。
|
|
51
|
-
|
|
52
|
-
命令失败时读取 `failedChecks`、`retry` 和对应日志:
|
|
53
|
-
|
|
54
|
-
- `retry.kind=transient/bounded`:只在返回的上限内原样重试;
|
|
55
|
-
- `retry.kind=external`:记录为外部阻塞项并返回具体 `remediation`,不要在环境未变化时连续重跑;
|
|
56
|
-
- 其他失败:返回受影响能力和补救建议,不自行推断绕过方式。
|
|
57
|
-
|
|
58
|
-
不要把 `preflight` 非零退出一概解释为“迁移不能继续”。例如 HarmonyOS 设备不可用只阻止设备测试、运行态验收和依赖设备的证据采集;当 `allowedActions` 仍允许时,源码阅读、静态分析和非设备实现可以继续。反之,工程定位、配置或必要工具链缺失可能使 `allowedNonDeviceWork=false`。最终分流必须忠实反映本次 CLI 快照。
|
|
59
|
-
|
|
60
|
-
## 配置
|
|
61
|
-
|
|
62
|
-
需要显式提供 HarmonyOS 工程路径时使用:
|
|
63
|
-
|
|
64
|
-
```text
|
|
65
|
-
droid2hmos config init <ANDROID_PROJECT> [--harmony-project <PATH>]
|
|
66
|
-
droid2hmos config validate <ANDROID_PROJECT>
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
配置中只保存能够确认的路径。不得保存或猜测 `harmonyBuild`、`harmonyTest`、module、product 或 target;HarmonyOS 参数由 CLI 从真实工程配置解析。
|
|
70
|
-
|
|
71
|
-
`androidBuild`/`androidTest` 字段仅为兼容旧工作区保留:CLI 不再提供设置入口,也不再执行这些命令(Android 构建与测试能力已移除)。
|
|
72
|
-
|
|
73
|
-
## 设备状态采集
|
|
74
|
-
|
|
75
|
-
当现有 Preflight 报告缺少当前设备状态,或调用方明确需要刷新设备状态时,可运行:
|
|
76
|
-
|
|
77
|
-
```text
|
|
78
|
-
droid2hmos device check harmony
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
只记录设备发现、Shell 响应、目标歧义和返回的 remediation(Android 设备检测已移除,仅支持 HarmonyOS)。多个目标、认证、签名或设备离线问题进入 `externalBlockers` 或 `capabilityBlockers`,由调用方决定何时处理。本 Skill 不因设备问题暂停并要求用户作流程选择。
|
|
82
|
-
|
|
83
|
-
## 恢复
|
|
84
|
-
|
|
85
|
-
恢复时不得重新初始化已有 `ohos/`。运行:
|
|
86
|
-
|
|
87
|
-
```text
|
|
88
|
-
droid2hmos status <ANDROID_PROJECT>
|
|
89
|
-
droid2hmos config validate <ANDROID_PROJECT>
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
仅当工具链、配置、工程壳或设备环境可能变化,或 CLI 明确要求刷新 Preflight 时,重新运行 `preflight`。不要在这里检查或创建 checkpoint,也不要补跑 `analyze`、`build`、`test` 或全量回归;这些属于调用方根据当前工作单元和状态决定的后续动作。
|
|
93
|
-
|
|
94
|
-
不得处理、覆盖、提交或删除用户已有改动。
|
|
95
|
-
|
|
96
|
-
## 结构化结果
|
|
97
|
-
|
|
98
|
-
始终返回同一就绪度结构:
|
|
99
|
-
|
|
100
|
-
```json
|
|
101
|
-
{
|
|
102
|
-
"baselineReady": true,
|
|
103
|
-
"deviceReady": false,
|
|
104
|
-
"externalBlockers": [],
|
|
105
|
-
"capabilityBlockers": [
|
|
106
|
-
{
|
|
107
|
-
"capability": "device-validation",
|
|
108
|
-
"check": "harmony-device",
|
|
109
|
-
"reason": "no responsive target",
|
|
110
|
-
"remediation": "connect or start one HarmonyOS target"
|
|
111
|
-
}
|
|
112
|
-
],
|
|
113
|
-
"allowedNonDeviceWork": true,
|
|
114
|
-
"allowedActions": [],
|
|
115
|
-
"evidence": [".migration/preflight-report.json"],
|
|
116
|
-
"suggestedRemediation": []
|
|
117
|
-
}
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
字段语义:
|
|
121
|
-
|
|
122
|
-
- `baselineReady`:工程定位、迁移配置和非设备基础能力是否足以支持 CLI 明确允许的后续工作;不能仅用 Preflight 总体退出码代替;
|
|
123
|
-
- `deviceReady`:当前 HarmonyOS 目标是否满足设备类工作要求;
|
|
124
|
-
- `externalBlockers`:需要用户、账号、签名、物理设备或外部环境变化的阻塞项;
|
|
125
|
-
- `capabilityBlockers`:按能力说明阻塞范围,不能写成笼统的“迁移停止”;
|
|
126
|
-
- `allowedNonDeviceWork`:当前是否仍可继续源码阅读、静态分析或非设备实现;
|
|
127
|
-
- `allowedActions`:原样返回 CLI 快照中的允许动作;
|
|
128
|
-
- `evidence`:本次读取或生成的状态、配置和 Preflight 报告;
|
|
129
|
-
- `suggestedRemediation`:CLI 给出的可执行补救,不臆造成功结论。
|
|
130
|
-
|
|
131
|
-
本 Skill 不推进外部状态机、不更新迁移报告、不创建 checkpoint、不调用 `complete`,也不决定定向测试或全量回归。调用方根据上述结果决定下一步。
|
|
1
|
+
---
|
|
2
|
+
name: preparing-migration-workspace
|
|
3
|
+
description: 在 Android 转 HarmonyOS 迁移开始或恢复时,通过 droid2hmos 读取状态、执行 Preflight、初始化或校验配置,并采集设备与外部环境就绪度。只负责工作区准备和能力分流;不调度分析、实现、构建、测试、回归或 Git checkpoint。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 准备迁移工作区
|
|
7
|
+
|
|
8
|
+
本 Skill 只负责回答四个问题:项目和迁移工作区是否定位正确、非设备基线是否可用、设备是否可用、哪些外部条件仍阻塞特定能力。它不决定后续状态,也不把设备失败扩大为整个迁移停止。
|
|
9
|
+
|
|
10
|
+
工具安装、精确版本和升级由 `managing-d2h-toolchain` 负责。本 Skill 只消费已检查的 CLI;发现版本或能力不符时返回该 Skill 处理,不运行 npm。
|
|
11
|
+
|
|
12
|
+
只调用 `droid2hmos` 的 `status`、`preflight`、`config init/validate` 和按需的 `device check`。不要直接调用 Node 脚本、Gradle、Hvigor、Hypium、ADB、HDC 或 AppGraph 分析命令,也不要在 `ohos/` 尚不存在时猜测 HarmonyOS 构建配置。
|
|
13
|
+
|
|
14
|
+
迁移产物(`.migration/`)统一位于 Android 工程父目录下的 `<工程名>-migration/.migration/`,由 CLI 创建和维护,不写入 Android 工程内部。下文所有 `.migration/...` 路径均相对该迁移工作区根目录。
|
|
15
|
+
|
|
16
|
+
## 输入与事实来源
|
|
17
|
+
|
|
18
|
+
输入必须包含 Android Gradle 工程根目录。根目录应有 Gradle 标记,应用模块中应有 `AndroidManifest.xml`。
|
|
19
|
+
|
|
20
|
+
开始或恢复时先获取只读快照:
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
droid2hmos status <ANDROID_PROJECT>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
以 CLI 返回的 `workspace`、`allowedActions`、`completion.unmet`、Preflight 检查项、`failedChecks` 和 `retry` 为机器事实。`phase` 只解释当前现场;不得创建或编辑 `.migration/state.json`。
|
|
27
|
+
|
|
28
|
+
如果 `workspace.projectPresent=false` 且 `workspace.projectCandidates` 非空,说明传入的是包装目录。改用列出的明确候选工程,不得在包装目录初始化第二套迁移工作区或 HarmonyOS 工程。
|
|
29
|
+
|
|
30
|
+
## 首次准备
|
|
31
|
+
|
|
32
|
+
运行统一预检:
|
|
33
|
+
|
|
34
|
+
```text
|
|
35
|
+
droid2hmos preflight <ANDROID_PROJECT> [--sdk-path <PATH>] [--timeout-ms <MS>]
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
`preflight` 由 Kernel 选择并判定检查项,可能包含:
|
|
39
|
+
|
|
40
|
+
- Android UI 技术栈支持性;
|
|
41
|
+
- Git 仓库、分支、`HEAD` 和用户已有改动;
|
|
42
|
+
- Git、Node.js、npm、Python、JDK、DevEco 和 HarmonyOS SDK(Android SDK 探测已移除,迁移不依赖 Android 编译环境);
|
|
43
|
+
- AppGraph 健康检查;
|
|
44
|
+
- `.migration/config.json` 初始化和校验;
|
|
45
|
+
- Android 基线状态;
|
|
46
|
+
- 已有 HarmonyOS 工程复用,或在空目标中创建工程壳;
|
|
47
|
+
- Preflight 自身所需的基线构建和设备检查;
|
|
48
|
+
- `.migration/preflight-report.json` 原子生成。
|
|
49
|
+
|
|
50
|
+
这些是 Preflight 的内部门禁,不授权本 Skill 在预检后继续调度仓库级构建、测试或分析。已有 HarmonyOS 工程不得被覆盖;只校验现有工程且不允许初始化工程壳时使用 `--no-init-harmony`。
|
|
51
|
+
|
|
52
|
+
命令失败时读取 `failedChecks`、`retry` 和对应日志:
|
|
53
|
+
|
|
54
|
+
- `retry.kind=transient/bounded`:只在返回的上限内原样重试;
|
|
55
|
+
- `retry.kind=external`:记录为外部阻塞项并返回具体 `remediation`,不要在环境未变化时连续重跑;
|
|
56
|
+
- 其他失败:返回受影响能力和补救建议,不自行推断绕过方式。
|
|
57
|
+
|
|
58
|
+
不要把 `preflight` 非零退出一概解释为“迁移不能继续”。例如 HarmonyOS 设备不可用只阻止设备测试、运行态验收和依赖设备的证据采集;当 `allowedActions` 仍允许时,源码阅读、静态分析和非设备实现可以继续。反之,工程定位、配置或必要工具链缺失可能使 `allowedNonDeviceWork=false`。最终分流必须忠实反映本次 CLI 快照。
|
|
59
|
+
|
|
60
|
+
## 配置
|
|
61
|
+
|
|
62
|
+
需要显式提供 HarmonyOS 工程路径时使用:
|
|
63
|
+
|
|
64
|
+
```text
|
|
65
|
+
droid2hmos config init <ANDROID_PROJECT> [--harmony-project <PATH>]
|
|
66
|
+
droid2hmos config validate <ANDROID_PROJECT>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
配置中只保存能够确认的路径。不得保存或猜测 `harmonyBuild`、`harmonyTest`、module、product 或 target;HarmonyOS 参数由 CLI 从真实工程配置解析。
|
|
70
|
+
|
|
71
|
+
`androidBuild`/`androidTest` 字段仅为兼容旧工作区保留:CLI 不再提供设置入口,也不再执行这些命令(Android 构建与测试能力已移除)。
|
|
72
|
+
|
|
73
|
+
## 设备状态采集
|
|
74
|
+
|
|
75
|
+
当现有 Preflight 报告缺少当前设备状态,或调用方明确需要刷新设备状态时,可运行:
|
|
76
|
+
|
|
77
|
+
```text
|
|
78
|
+
droid2hmos device check harmony
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
只记录设备发现、Shell 响应、目标歧义和返回的 remediation(Android 设备检测已移除,仅支持 HarmonyOS)。多个目标、认证、签名或设备离线问题进入 `externalBlockers` 或 `capabilityBlockers`,由调用方决定何时处理。本 Skill 不因设备问题暂停并要求用户作流程选择。
|
|
82
|
+
|
|
83
|
+
## 恢复
|
|
84
|
+
|
|
85
|
+
恢复时不得重新初始化已有 `ohos/`。运行:
|
|
86
|
+
|
|
87
|
+
```text
|
|
88
|
+
droid2hmos status <ANDROID_PROJECT>
|
|
89
|
+
droid2hmos config validate <ANDROID_PROJECT>
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
仅当工具链、配置、工程壳或设备环境可能变化,或 CLI 明确要求刷新 Preflight 时,重新运行 `preflight`。不要在这里检查或创建 checkpoint,也不要补跑 `analyze`、`build`、`test` 或全量回归;这些属于调用方根据当前工作单元和状态决定的后续动作。
|
|
93
|
+
|
|
94
|
+
不得处理、覆盖、提交或删除用户已有改动。
|
|
95
|
+
|
|
96
|
+
## 结构化结果
|
|
97
|
+
|
|
98
|
+
始终返回同一就绪度结构:
|
|
99
|
+
|
|
100
|
+
```json
|
|
101
|
+
{
|
|
102
|
+
"baselineReady": true,
|
|
103
|
+
"deviceReady": false,
|
|
104
|
+
"externalBlockers": [],
|
|
105
|
+
"capabilityBlockers": [
|
|
106
|
+
{
|
|
107
|
+
"capability": "device-validation",
|
|
108
|
+
"check": "harmony-device",
|
|
109
|
+
"reason": "no responsive target",
|
|
110
|
+
"remediation": "connect or start one HarmonyOS target"
|
|
111
|
+
}
|
|
112
|
+
],
|
|
113
|
+
"allowedNonDeviceWork": true,
|
|
114
|
+
"allowedActions": [],
|
|
115
|
+
"evidence": [".migration/preflight-report.json"],
|
|
116
|
+
"suggestedRemediation": []
|
|
117
|
+
}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
字段语义:
|
|
121
|
+
|
|
122
|
+
- `baselineReady`:工程定位、迁移配置和非设备基础能力是否足以支持 CLI 明确允许的后续工作;不能仅用 Preflight 总体退出码代替;
|
|
123
|
+
- `deviceReady`:当前 HarmonyOS 目标是否满足设备类工作要求;
|
|
124
|
+
- `externalBlockers`:需要用户、账号、签名、物理设备或外部环境变化的阻塞项;
|
|
125
|
+
- `capabilityBlockers`:按能力说明阻塞范围,不能写成笼统的“迁移停止”;
|
|
126
|
+
- `allowedNonDeviceWork`:当前是否仍可继续源码阅读、静态分析或非设备实现;
|
|
127
|
+
- `allowedActions`:原样返回 CLI 快照中的允许动作;
|
|
128
|
+
- `evidence`:本次读取或生成的状态、配置和 Preflight 报告;
|
|
129
|
+
- `suggestedRemediation`:CLI 给出的可执行补救,不臆造成功结论。
|
|
130
|
+
|
|
131
|
+
本 Skill 不推进外部状态机、不更新迁移报告、不创建 checkpoint、不调用 `complete`,也不决定定向测试或全量回归。调用方根据上述结果决定下一步。
|