AutoDev 1.6.4:借助生成式 AI 提升 HarmonyOS 应用开发体验

💡 原文中文,约3200字,阅读约需8分钟。
📝

内容提要

生成式AI在软件研发和知识管理上有潜力,鸿蒙操作系统带来新理念和工具,AutoDev探索结合新知识降低开发人员负担。AutoDev遇到问题,解决方法是使用JavaScript/TypeScript模块和ArkTS语言。AutoArkUI生成UI的特性结合经典UI元素生成页面。当前版本有问题,如转换Android布局、缺少示例代码等。

🔎

延伸解读

鸿蒙开发工具链的独特性

文章指出,DevEco Studio 自研了 JavaScript/TypeScript 模块,并扩展出 ArkTS 语言,导致出现 Huawei JavaScript、Huawei TypeScript、Huawei ArkTS 三种文件类型。这源于 IntelliJ 平台的 JavaScript 插件收费且未开源,鸿蒙选择基于 TypeScript 扩展而非从头实现。这种独特性给第三方工具如 AutoDev 的适配带来挑战,需要针对性地处理 PSI 抽象。

生成式 AI 在鸿蒙开发中的试验方向

AutoDev 探索了三个试验功能:添加 ArkTS 支持、自动生成 ArkUI 页面、迁移其他平台 UI 布局。其中,ArkUI 页面生成采用两步法:先分析需求选择布局与组件,再生成对应代码,并利用 RAG 增强上下文。布局迁移则借助生成式 AI 的代码翻译能力,但目前仅支持布局迁移,且与 AutoArkUI 融合。这些尝试旨在降低开发者的学习负担。

当前版本的局限与挑战

文章坦言,当前版本存在多个问题:转换 Android 布局时容易“瞎编”,因为缺乏足够的转换规则和属性知识;组件和布局信息是硬编码的;缺少动态生成的示例代码,限制了 RAG 的效果。此外,对 C++ 语言的支持以及微信小程序等平台的转换尚未完善。作者强调这些功能仅用几小时实现,不应期望过高,未来需进一步改进。

❓

Q&A

AutoDev 1.6.4 为鸿蒙开发引入了哪些新功能?

AutoDev 1.6.4 引入了三个试验性功能:ArkTS 语言支持、自动 ArkUI 页面生成(AutoArkUI)和 UI 布局迁移。此外,还增加了针对鸿蒙的 RAG 增强聊天上下文,如 C++ NAPI 支持。

为什么 DevEco Studio 不支持 TypeScript,AutoDev 如何解决?

DevEco Studio 自研了 JavaScript/TypeScript 模块,因为 IntelliJ 平台的 JavaScript 插件收费且未开源,鸿蒙直接扩展 TypeScript 更简单。AutoDev 基于标准 PSI 做初步抽象以支持文档生成,但完整支持需基于反射复用 JavaScript PSI,目前暂未实现。

AutoArkUI 如何生成 ArkUI 代码?

AutoArkUI 采用两步生成:首先分析用户需求,选择合适的布局(如线性布局、层叠布局)和组件(如按钮、单选框);然后根据需求和详细的布局、组件信息生成对应的 ArkUI 代码。由于 ChatGPT 缺乏鸿蒙知识,需结合 RAG 增强。

AutoDev 的 UI 布局迁移功能目前支持哪些平台?

目前 AutoDev 的 UI 布局迁移功能主要支持将 Android 布局迁移到鸿蒙,但转换效果不理想,容易瞎编。未来计划支持 iOS、微信小程序等平台,但尚未实现。

AutoDev 如何为鸿蒙项目提供 RAG 增强的聊天上下文?

AutoDev 通过上下文接口添加鸿蒙特定信息,例如声明项目是 HarmonyOS 项目,并针对不同语言提供上下文:对于 TypeScript/JavaScript/ArkTS,提示使用类似 Flutter 的声明式 UI;对于 C++,提示使用 NAPI 构建原生插件。

AutoDev 1.6.4 在鸿蒙开发支持上存在哪些不足?

当前版本存在多个问题:转换 Android 布局时容易瞎编,需要更多转换规则和属性知识;组件和布局信息硬编码;缺少动态生成的示例代码,导致 RAG 效果有限;此外,C++ 语言支持和小程序平台转换也有待完善。

🏷️

标签

➡️

继续阅读