一、AI工具的筛选
对于目前安卓端开发来说,可选的AI工具比较多,常见的有以下集中:豆包、通义千问、trae 、Gemini、codeGeeX 等,下面是对这几个工具的现状梳理:
1、豆包
a:有网页端、PC端、APP端、Android Studio的插件端
b:在开发过程中实际使用时发现,对于简单的工具类的创建准确度比较高,对于疑难问题分析的准确度次之
c:将豆包插件下载到Android Studio后,项目无明显卡顿,使用比较顺畅
2、通义千问
a:有网页端、PC端、APP端、Android Studio的插件端
b:在开发过程中实际使用时发现,对于简单的工具类的创建准确度比较高,对于疑难问题分析的准确度次之
c:将通义千问插件下载到Android Studio后,项目卡顿明显,使用不顺畅,影响开发体验
3、trae
a:PC端、Android Studio的插件端
b:在开发过程中实际使用时发现,对于简单的工具类的创建准确度比较高,对于疑难问题分析的准确度次之
c:将豆包插件下载到Android Studio后,项目无明显卡顿,使用比较顺畅,同时支持Android Studio内置浏览器进行搜索提问
4、Gemini
谷歌提供的Android Studio中自带的AI工具,目前还未尝试,需要翻墙
5:codeGeeX
暂未尝试
二、AI工具对于同一问题的处理结果的对比
1、以compose版加购动画为例
我们的项目中有旧的加购动画,已经测试通过并上线使用了,旧加购动画工具类为:CartAnimatorUtils ,使用的是Java代码;
为了实现compose版本的加购动画,我直接将CartAnimatorUtils中的代码全部提交到豆包、通义千问、trae的网页端进行提问,问题为:创建以上代码对应的compose版本
就生成的结果可用性来看,trae > 豆包 > 通义千问
这只是单一问题测试,不代表在其他问题的处理结果
三、AI工具的使用现状
1、下载 trae 的插件到Android Studio中,用于代码提示、注释生成等简单的开发辅助;并通过Android Studio的自带浏览器访问trae ai ,以进行创建工具类、代码翻译、疑难问题的分析等
2、像其他的豆包、通义千问等,均使用网页端,主要用于创建工具类、代码翻译、疑难问题的分析等
四、AI工具在实际开发中的应用
1、生成脱离业务的工具类
a:生成动态设置recyclerview纵向瀑布流的卡片间距的工具类,各个AI工具生成的都很好,这个工具类目前应用在大搜的商品搜索结果列表
2、进行疑难问题的分析
a:在商品卡片重构需求中,以图识图功能的商品列表需要在重新获取运费后更新商品卡片上的运费,在实际开发中接口返回了最新数据,商品卡片中的数据也变更了,
但是UI却没有更新,通过询问AI我们得知,必须要改变运费字段引用的内存地址才能更新UI,由此我们对代码进行排查,发现最初只改变了卡片用到的CommodityCardBo的内存地址,
而CommodityCardBo中包含的二级数据模型 postagePrice 的内存地址没变,于是改变之前更新运费时进行数据转换的思路,改成对 CommodityCardBo 中的所有字段全部重新创建的方式,最终解决了这个问题
b:compose版本的加购动画:使用trae ai 根据CartAnimatorUtils来生成加购动画的代码并导入Android Studio中,发现生成的代码只完成了不到一半的工具,但是也对我们的开发提供了思路,通过对生成的代码进行改造,最终完成了这个动画
3、进行代码提示、注释生成
a:在进行商品卡片重构需求时,商品卡片用到的 CommodityCardBo 的字段非常多,在进行将 CommodityCardDto 转成 CommodityCardBo的工具类时,通过代码提示功能,基本上杜绝了手写,非常快速的完成了转换。