diff --git a/zh-cn/application-dev/tools/figures/suap-changelog.png b/zh-cn/application-dev/tools/figures/suap-changelog.png new file mode 100644 index 0000000000000000000000000000000000000000..451871e25689642d2c52275d31b258127bd13f55 Binary files /dev/null and b/zh-cn/application-dev/tools/figures/suap-changelog.png differ diff --git a/zh-cn/application-dev/tools/figures/suap-choose-sdk.png b/zh-cn/application-dev/tools/figures/suap-choose-sdk.png new file mode 100644 index 0000000000000000000000000000000000000000..41bb0a9872cde2b512d939ccc374fcbd0310ae65 Binary files /dev/null and b/zh-cn/application-dev/tools/figures/suap-choose-sdk.png differ diff --git a/zh-cn/application-dev/tools/figures/suap-collect-file.png b/zh-cn/application-dev/tools/figures/suap-collect-file.png new file mode 100644 index 0000000000000000000000000000000000000000..9aaf046d71739ab409401e881706108a32244968 Binary files /dev/null and b/zh-cn/application-dev/tools/figures/suap-collect-file.png differ diff --git a/zh-cn/application-dev/tools/figures/suap-collect.png b/zh-cn/application-dev/tools/figures/suap-collect.png new file mode 100644 index 0000000000000000000000000000000000000000..0dd7c3cd5b855b67bca8c2addc4d13a9e3b761ba Binary files /dev/null and b/zh-cn/application-dev/tools/figures/suap-collect.png differ diff --git a/zh-cn/application-dev/tools/figures/suap-diff-file.png b/zh-cn/application-dev/tools/figures/suap-diff-file.png new file mode 100644 index 0000000000000000000000000000000000000000..b18f9947c5e3a40389dc6ca97ecfbecabb59c300 Binary files /dev/null and b/zh-cn/application-dev/tools/figures/suap-diff-file.png differ diff --git a/zh-cn/application-dev/tools/figures/suap-diff.png b/zh-cn/application-dev/tools/figures/suap-diff.png new file mode 100644 index 0000000000000000000000000000000000000000..92a164be76d7253032e3cc468dabd31c697cade6 Binary files /dev/null and b/zh-cn/application-dev/tools/figures/suap-diff.png differ diff --git a/zh-cn/application-dev/tools/figures/suap-finish.png b/zh-cn/application-dev/tools/figures/suap-finish.png new file mode 100644 index 0000000000000000000000000000000000000000..3828f60ee9f32e917533303605ea164def59a6ff Binary files /dev/null and b/zh-cn/application-dev/tools/figures/suap-finish.png differ diff --git a/zh-cn/application-dev/tools/figures/suap-install.png b/zh-cn/application-dev/tools/figures/suap-install.png new file mode 100644 index 0000000000000000000000000000000000000000..d6f02252db381fc6c279b745b16de1b31fb93ee6 Binary files /dev/null and b/zh-cn/application-dev/tools/figures/suap-install.png differ diff --git a/zh-cn/application-dev/tools/figures/suap-settings.png b/zh-cn/application-dev/tools/figures/suap-settings.png new file mode 100644 index 0000000000000000000000000000000000000000..4ae20d05393d9f26777eaa2891ca0f0a40f953d2 Binary files /dev/null and b/zh-cn/application-dev/tools/figures/suap-settings.png differ diff --git a/zh-cn/application-dev/tools/figures/suap-use.png b/zh-cn/application-dev/tools/figures/suap-use.png new file mode 100644 index 0000000000000000000000000000000000000000..768daddff541ffd533dd3a7d93fe69c6dcaeef61 Binary files /dev/null and b/zh-cn/application-dev/tools/figures/suap-use.png differ diff --git a/zh-cn/application-dev/tools/figures/suap-view-report.png b/zh-cn/application-dev/tools/figures/suap-view-report.png new file mode 100644 index 0000000000000000000000000000000000000000..6d107a87eed5d948be3496c0ce957550155e45a9 Binary files /dev/null and b/zh-cn/application-dev/tools/figures/suap-view-report.png differ diff --git a/zh-cn/application-dev/tools/figures/suap-warehouse.png b/zh-cn/application-dev/tools/figures/suap-warehouse.png new file mode 100644 index 0000000000000000000000000000000000000000..c0cb85e552efdbf0f467d3f2bccb866ace180dde Binary files /dev/null and b/zh-cn/application-dev/tools/figures/suap-warehouse.png differ diff --git a/zh-cn/application-dev/tools/suap-tool.md b/zh-cn/application-dev/tools/suap-tool.md new file mode 100644 index 0000000000000000000000000000000000000000..b9f8c0abb7a295d431f0e5b2aa11f8face9bb6c4 --- /dev/null +++ b/zh-cn/application-dev/tools/suap-tool.md @@ -0,0 +1,123 @@ +# suap工具 + +SDK upgrade assistance plugin(SDK升级辅助工具插件,简称suap),用于帮助开发者快速解决SDK升级导致的API不兼容问题。 +Beta版本不承诺API稳定性,在SDK升级后,可能存在API不兼容的问题,应用开发者对现在工程切换API版本后,需要适配API接口及其底层行为的变更,存在一定的升级成本;因此OpenHarmony提供了SDK升级辅助工具,可以帮助开发者快速了解升级适配全貌,并通过工具提示快速适配升级,显著提高SDK升级效率。 + +## 工具安装 + +1.主菜单栏中点击 "File" > "Settings..."。 + +![suap-settings](figures/suap-settings.png) + +2.在Settings弹出框界面,选中"Plugins"进入IDE插件模块 + +3.点击"Installed"选项旁边齿轮状图标,选择"Install Plugin from Disk..." + +4.在文件选择弹出框中选择插件压缩包所在位置,点击"OK"按钮,重启IDE即安装成功(注意:插件安装完成后需要重启IDE) + +![suap-install](figures/suap-install.png) + +## 使用工具 + +辅助升级插件安装好后,打开需要升级的OpenHarmony工程。 + +工程加载完毕后,点击窗口上方主菜单栏的"UpdateCheck" > "Start"。 + +![suap-use](figures/suap-use.png) + +手动选择旧版本SDK路径,需要选择到“ets”文件夹。新版本SDK路径将通过IDE配置文件及当前应用配置的SDK版本自动获取。路径选择完成后,点击“OK”按钮,开始生成辅助升级报告。 + +![suap-choose-sdk](figures/suap-choose-sdk.png) + +报告生成成功后,将弹窗提示,点击“OK”按钮,关闭当前弹窗。 + +![suap-finish](figures/suap-finish.png) + +根据弹窗提示,打开下方工具栏内UpdateReport按钮,查看升级报告 + +![suap-view-report](figures/suap-view-report.png) + +## 报告功能点 + +1. 报告下方总数为因升级SDK导致当前应用出现的问题总数,帮助快速评估修改工作量 +2. 报告的每个标题头都可以单击进行排序 +3. 报告中选择类型下拉框可以选择升级类型原因,下方总计会根据选择的类型更改数量 +4. 是否已修改功能可以帮助开发者记录哪些问题已修改,避免出现重复工作量 +5. 双击代码所在位置列,可以快速定位到当前代码在应用中位置 +6. 提示信息列会提供修改建议,供开发者参考修改 +7. changelog列如果多个版本,单击之后会出现弹出框,将版本号和链接罗列,点击进行跳转。单个版本变更,单击之后,直接跳转到对应的ChangeLog文档中 + +![suap-changelog](figures/suap-changelog.png) + +## 工具源码使用教程 + +1.[interface仓](https://gitee.com/openharmony/interface_sdk-js/tree/master/build-tools)中 clone "api_diff"工具(对比两个版本SDK里的API差异)和"应用API解析"工具(用于解析并汇总应用中使用到的API)到本地。 + +![suap-warehouse](figures/suap-warehouse.png) + +2.在api_diff工具和collect_application_api工具目录下进入终端,进行安装和编译。输入命令:npm install,之后进行构建:npm run build。
构建成功之后,会在对应的工具文件夹下生成dist=>build=>api-diff.js和dist=>build=>api-collectort.js + +![suap-diff](figures/suap-diff.png) +![suap-collect](figures/suap-collect.png) + +3.在本地磁盘的最后一个盘符,创建名为'updateCheck'文件夹,内部分别创建'api-diff'和'collect_application_api'文件夹。
将上图diff.js文件放置'api-diff'文件夹下,将上图collect_application_api文件夹下lib文件夹以及上图api-collector.js放置在'collect_application_api'文件夹下。 + +![suap-diff-file](figures/suap-diff-file.png) +![suap-collect-file](figures/suap-collect-file.png) + +4.升级辅助工具源码clone下来之后,在idea上打开,需要配置gradle环境,并且在src同级目录下新建'build.gradle.kts'文件,将下面内容粘贴至文件中,刷新gradle,在idea右侧gradle工具栏即可运行项目和打包成插件。 +```lombok.config +plugins { + id("java") + id("org.jetbrains.intellij") version "1.5.2" +} + +group = "com.example" +version = "1.0-SNAPSHOT" + +repositories { + maven { + setUrl("https://mirrors.huaweicloud.com/repository/maven") + } +} + +dependencies{ + implementation("org.springframework:spring-web:5.2.12.RELEASE") + implementation("org.apache.commons:commons-compress:1.21") + implementation("com.alibaba:fastjson:1.2.28") + implementation("org.apache.logging.log4j:log4j-core:2.19.0") + implementation("commons-httpclient:commons-httpclient:3.1") +} + +intellij { + version.set("2021.2") + type.set("IC") // Target IDE Platform + + plugins.set(listOf(/* Plugin Dependencies */)) +} + +tasks { + // Set the JVM compatibility versions + withType { + sourceCompatibility = "11" + targetCompatibility = "11" + } + + patchPluginXml { + sinceBuild.set("212") + untilBuild.set("522.*") + } + + signPlugin { + certificateChain.set(System.getenv("CERTIFICATE_CHAIN")) + privateKey.set(System.getenv("PRIVATE_KEY")) + password.set(System.getenv("PRIVATE_KEY_PASSWORD")) + } + + publishPlugin { + token.set(System.getenv("PUBLISH_TOKEN")) + } +} + + +``` \ No newline at end of file