HarmonyOS Next 最强AI智能辅助编程工具 CodeGenie介绍

news2025/2/24 3:54:23

随着大模型的兴起,在智能编码领域首先获得了应用。 市面上从Microsoft Copilot到国内阿里通义,字节marscode等,都提供了copilot方式的智能编码工具。HarmonyOS Next作为诞生一年的新事物,由于代码量和文档迭代原因,在智能化方面一直有所欠缺。不过随着HarmonyOS Next生态的快速发展,官方也正式推出了AI智能辅助编程工具CodeGenie。

DevEco AI辅助编程工具(CodeGenie)为开发者提供高效的应用与服务AI编程支持,支持智能知识问答,同时支持ArkTS代码生成和万能卡片生成能力,帮助开发者提高编码效率。CodeGenie 以DevEco-Studio 插件方式进行工作,本文重点介绍CodeGenie能力及使用。

工具安装

在官方网站找到CodeGenie,点击下载
在这里插入图片描述

在DevEco-Studio中点击菜单栏DevEco Studio,然后点击首选项后,点击插件:
在这里插入图片描述

点击设置图标后点击从磁盘安装插件,选择刚才下载的CodeGenie:
在这里插入图片描述

安装完成后点击重启DevEco-Studio:
在这里插入图片描述

重启DevEco-Studio后,点击右侧CodeGenie后打开CodeGenie面板:

在这里插入图片描述

点击登录成功完成了CodeGenie的安装:
在这里插入图片描述

CodeGenie功能介绍

CodeGenie目前提供了鸿蒙应用、万能卡片和代码生成三个功能。

鸿蒙应用

鸿蒙应用就是之前的智能问答,基于生成式搜索能力,通过查询生成、内容优选服务高效理解用户意图,问答交互式地获取编码相关知识。
在这里插入图片描述

万能卡片

基于AI大模型理解开发者的卡片需求信息,通过对话式的交互智能生成HamonyOS万能卡片工程。

官方建议从以下维度描述卡片需求:

序号建议描述维度说明举例
1卡片用途卡片的用途/业务场景,比如电商购物、娱乐、生活服务类等。例如“电商购物卡片”、“娱乐类卡片”。
2卡片功能卡片包含的组件,如图标、标题、按钮等;组件的状态信息,如图标主题、标题内容、按钮显示的文字等。例如“新品上市主标题”、“商品搜索按钮”、“热门电影子板块入口”等。
3卡片尺寸HamonyOS官网提供的四种卡片尺寸:12(微卡片)、22(小卡片)、24(中卡片)、44(大卡片);

卡片尺寸非必选项,AI会根据前两个维度描述的信息,智能选择效果最佳的尺寸。
例如“2*2尺寸的卡片”、“中卡片”等。

目前不支持在生成卡片预览图后继续描述需求进行增量修改。

示例:
在这里插入图片描述
在这里插入图片描述

点击图中区域可以查看生成卡片的UI代码、配置信息和下载静态资源文件:
在这里插入图片描述

保存卡片工程有两种方式:

方式一:使用代码/配置查看窗口的“复制”、“插入”或“创建文件”等按钮手动保存卡片代码和配置信息。

方式二:点击“保存工程”按钮自动保存卡片工程,卡片代码、配置、静态资源文件等会自动保存到工程对应目录中。默认勾选保存逻辑代码,逻辑代码用于配置卡片事件及卡片数据等信息。

工程保存完成后,工程中会新增如下卡片相关文件:

在这里插入图片描述

此外还可以自定义配置逻辑代码,逻辑代码包含实现卡片数据交互和卡片事件两类。

  • 卡片数据交互:触发卡片页面刷新。应用工程生成的卡片数据交互,可通过数据库或网络请求两种方式来触发卡片页面刷新;对于元服务工程生成的卡片,数据交互为通过网络请求方式触发卡片页面刷新。
  • 卡片事件:使用router事件跳转到指定的UIAbility、使用call事件拉起UIAbility到后台、使用message事件刷新卡片内容。
代码生成

利用AI大模型分析并理解开发者在代码编辑区的上下文信息或自然语言描述信息,智能生成符合上下文的ArkTS或C++代码片段。支持在代码编辑区通过快捷键主动触发代码生成,或根据自然语言描述生成相应代码片段。

一般建议在编辑区内已有较丰富上下文,能够使模型对编程场景有一定理解的情况下进行代码生成。在编辑器中的内容较少时,AI可能无法有效理解用户的意图并生成相应的代码。

模型反馈需满足规则:光标上文10行内,有效代码行数超过5行(排除单独{}、()、[]括号行、空行、纯注释行场景),便于模型能理解代码上下文。

安装CodeGenie后,只需在编码时稍作停顿,CodeGenie将在当前代码行即时生成代码。若开发者认可推荐的内容,可通过按Tab键采纳,或通过按ESC键忽略生成的内容。
在这里插入图片描述

当安装完成CodeGenie后,在编码区代码行输入回车,将出现CodeGenie根据上下文生成的多行代码片段。可使用Tab键采纳该代码生成内容,或者使用ESC键忽略。

常用快捷键

Enter:在函数/方法签名下触发自动生成
Tab:接受当前生成结果
Esc:忽略当前生成结果
Alt+[(win) / Option+[(mac):查看上一个推荐
Alt+](win) / Option+](mac):查看下一个推荐
Alt+X(win) / Option+X(mac):主动触发单行代码生成
Alt+C(win) / Option+C(mac):主动触发代码生成
Alt+R(win) / Option+R(mac):重新生成代码
Alt+U(win) / Option+U(mac):打开右侧对话框
功能、设置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2280355.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WPF2-1在xaml为对象的属性赋值.md

1. AttributeValue方式 1.1. 简单属性赋值1.2. 对象属性赋值 2. 属性标签的方式给属性赋值3. 标签扩展 (Markup Extensions) 3.1. StaticResource3.2. Binding 3.2.1. 普通 Binding3.2.2. ElementName Binding3.2.3. RelativeSource Binding3.2.4. StaticResource Binding (带参…

Appium(四)

一、app页面元素定位 1、通过id定位元素: resrouce-id2、通过ClassName定位:classname3、通过AccessibilityId定位:content-desc4、通过AndroidUiAutomator定位5、通过xpath定位xpath、id、class、accessibility id、android uiautomatorUI AutomatorUI自…

Windows图形界面(GUI)-QT-C/C++ - Qt List Widget详解与应用

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 QListWidget概述 使用场景 常见样式 QListWidget属性设置 显示方式 (Display) 交互行为 (Interaction) 高级功能 (Advanced) QListWidget常见操作 内容处理 增加项目 删除项目…

Oracle 创建并使用外部表

目录 一. 什么是外部表二. 创建外部表所在的文件夹对象三. 授予访问外部表文件夹的权限3.1 DBA用户授予普通用户访问外部表文件夹的权限3.2 授予Win10上的Oracle用户访问桌面文件夹的权限 四. 普通用户创建外部表五. 查询六. 删除 一. 什么是外部表 在 Oracle 数据库中&#x…

靠右行驶数学建模分析(2014MCM美赛A题)

笔记 题目 要求分析: 比较规则的性能,分为light和heavy两种情况,性能指的是 a.流量与安全 b. 速度限制等分析左侧驾驶分析智能系统 论文 参考论文 两类规则分析 靠右行驶(第一条)2. 无限制(去掉了第一条…

Kafka 源码分析(一) 日志段

首先我们的 kafka 的消息本身是存储在日志段中的, 对应的源码是下面这段代码: class LogSegment private[log] (val log: FileRecords,val lazyOffsetIndex: LazyIndex[OffsetIndex],val lazyTimeIndex: LazyIndex[TimeIndex],val txnIndex: TransactionIndex,val baseOffset:…

【番外篇】实现排列组合算法(Java版)

一、说明 在牛客网的很多算法试题中,很多试题底层都是基于排列组合算法实现的,比如最优解、最大值等常见问题。排列组合算法有一定的难度,并不能用一般的多重嵌套循环解决,没有提前做针对性的学习和研究,考试时候肯定…

Linux - 线程池

线程池 什么是池? 池化技术的核心就是"提前准备并重复利用资源". 减少资源创建和销毁的成本. 那么线程池就是提前准备好一些线程, 当有任务来临时, 就可以直接交给这些线程运行, 当线程完成这些任务后, 并不会被销毁, 而是继续等待任务. 那么这些线程在程序运行过程…

【K8S系列】K8s 领域深度剖析:年度技术、工具与实战总结

引言 Kubernetes作为容器编排领域的行业标准,在过去一年里持续进化,深刻推动着云原生应用开发与部署模式的革新。本文我将深入总结在使用K8s特定技术领域的进展,分享在过去一年中相关技术工具及平台的使用体会,并展示基于K8s的技术…

C++《AVL树》

在之前的学习当中我们已经了解了二叉搜索树,并且我们知道二叉搜索树的查找效率是无法满足我们的要求,当二叉树为左或者右斜树查找的效率就很低下了,那么这本篇当中我们就要来学习对二叉搜索树进行优化的二叉树——AVL树。在此会先来了解AVL树…

【MySQL】存储引擎有哪些?区别是什么?

频率难度60%⭐⭐⭐⭐ 这个问题其实难度并不是很大,只是涉及到的相关知识比较繁杂,比如事务、锁机制等等,都和存储引擎有关系。有时还会根据场景选择不同的存储引擎。 下面笔者将会根据几个部分尽可能地讲清楚 MySQL 中的存储引擎&#xff0…

王道数据结构day1

2.1线性表的定义和基本操作 1.线性表的定义 相同数据类型的数据元素的有限序列 位序(从1开始) 表头元素,表尾元素 直接钱去,直接后继 2.线性表的基本操作 基本操作:创销,增删改查 优化插入: 查找

电梯系统的UML文档07

从这个类中得到的类图,构划出了软件的大部分设计。 系统结构视图提供软件和整个系统结构最复杂的也是最优雅的描述。和通常的软件系统相比,在分布式嵌入系统中了解系统组件如何协同工作是非常重要的。毕竟,每个类图仅仅是一个系统的静态设计…

数据恢复常见故障(五)晶振异常导致时钟Clock信号异常引发的硬盘故障

晶振是给固态硬盘“主控”芯片工作提供时钟信号的器件。 高温、高湿、撞件等都会引起晶振不起振,最终导致时钟信号异常。 如图是正常情况下的晶振波形。 晶振异常时,输出的波形,不起振。 由于晶振异常,无法提供时钟信号&#…

16.5万煤气柜柜位计故障分析

一、事故经过: 2015年8月14日20点45分,16.5万立煤气柜柜顶油封溢流口有大量油液溢出,此时雷达柜位计在计算机上示值为63.79米,由于接近傍晚天色较暗,岗位操作员并未及时发现这一异常状况。22点45分左右&…

ARM学习(42)CortexM3/M4 MPU配置

笔者之前学习过CortexR5的MPU配置,现在学习一下CortexM3/M4 MPU配置 1、背景介绍 笔者在工作中遇到NXP MPU在访问异常地址时,就会出现总线挂死,所以需要MPU抓住异常,就需要配置MPU。具体背景情况可以参考ARM学习(41)NXP MCU总线挂死,CPU could not be halted以及无法连…

STM32 FreeRTOS 任务挂起和恢复---实验

实验目标 学会vTaskSuspend( )、vTaskResume( ) 任务挂起与恢复相关API函数使用: start_task:用来创建其他的三个任务。 task1:实现LED1每500ms闪烁一次。 task2:实现LED2每500ms闪烁一次。 task3:判断按键按下逻辑,KE…

七.网络模型

最小(支撑)树问题 最小部分树求解: 破圈法:任取一圈,去掉圈中最长边,直到无圈; 加边法:取图G的n个孤立点{v1,v2,…, vn }作为一个支撑图,从最短…

web前端1--基础

(时隔数月我又来写笔记啦~) 1、下载vscode 1、官网下载:Visual Studio Code - Code Editing. Redefined 2、步骤: 1、点击同意 一直下一步 勾一个创建桌面快捷方式 在一直下一步 2、在桌面新建文件夹 拖到vscode图标上 打开v…

麦田物语学习笔记:保存和加载场景中的物品

目录 基本流程 1.代码思路 2.代码实现 最终效果 补充知识点 1.序列化 2.委托 基本流程 现在在切换场景后,场景中的物品即使被拾取了,也还是会被重新加载出来,所以本篇文章的任务是在切换场景前后能保留当前场景的数据 1.代码思路 (1)为了保留处在地上的物品数据,就需要…