Android 即将进入大AI时代
一. 前言
自从OpenAI流行之后,我对这一块的方向还是比较关注的。前段时间Google IO大会AI部分也是占了很大的比重了,而且从google的部署来看,也差不多是往我预期的方向去发展,我所关注的东西其实很简单,就是辅助开发,而Google IO大会中的内容也让我意识到了,他们确实有在往这个方向去发展。虽然现在还处于一个比较鸡肋的阶段,但是这是一个进入大AI时代的信号。
二. 现状
对于现在的一个环境而言,AI是已经能进行一些基础的辅助开发了。最简单的做法我之前也有说过一些,juejin.cn/post/721986…
这时候有人就说了,我们这些做开发的,还要搞这些打开网页后复制粘贴的操作,太low了。没错,所以一般我们希望能做到的第一步就是集成,把AI集成到我们的IDE中。
1. Studio Bot
而这次的Google IO大会就有这么一个东西 Studio Bot ,把AI集成到AndroidStudio中,注意,这是官方的,虽然现在相当于一个试用的阶段,但至少也能看出了官方的决心:要做一款google自己的AI工具 ,而往往google这几年出的东西都是比较香的,所以我很看好几年后能使用到成熟的AI工具。
想要了解的可以去看看官网 developer.android.com/studio/prev… ,首先需要下载最新的版本Android Studio Hedgehog,然后按照流程去注册使用Studio Bot,文档卡里面讲得还是比较清楚的,我这里就不重复搬过来说了。
但其实你别看它这个东西提出来了,其实当前还是比较鸡肋的,而且现在使用的人很少,后续可能还会进行优化和功能的扩充。我建议大家看看演示就行了,没必要下载预览版来尝试,首先预览版会有很多问题,其次上面说了,当前的功能比较鸡肋,估计你就玩个一两个小时就失去兴趣了,现在用来直接辅助开发我觉得还尚早。
讲完官方的,我们可以来讲讲目前成熟的插件。
2. Bito
Bito是ChatGPT团队开发的一款插件,而我们的IDE能够使用这款插件来辅助开发,想要了解的话可以看看官网的介绍 bito.ai/
AndroidStudio使用Bito的方法也很简单,首先在搜索这个插件
然后安装,然后点击Help ->Find Action,输入Choose Boot Java Runtime for the IDE
select runtime中JCEF有两个一模一样的,有一个是有问题的,有一个是正常的,试试就知道了。安装之后重启,然后点AS右边的Bito进行登录就能使用了
没有号的话注册一个就行,流程挺简单的,登录之后就可以直接使用
Bito的好处就是整个流程引入下来很方便,但是它也有很明显的缺点,那就是太慢了,不知道是因为使用的人多还是什么问题,它的回复速度非常的慢。我自己是给了它一个json,然后让他生成一个kotlin的data类,结果很久才生成出来,我可能自己撸代码都撸完了。虽然慢,但也是能用,比如你有什么问题,还是可以问他的,但我是宁愿打开GPT网页直接使用
3. Github Copilot
Github Copilot和Bot一样是插件,而相对于Bot,Github Copilot会更快,而且能做到的更多(相对更多,其实也挺鸡肋)
使用的方法也是直接插件搜Github Copilot
安装,装完之后它会重启AS,然后弹出个通知让你去登录GitHub,你不小心关掉也没关系,AS的底部也有个图片能点出来
点Copy and Open 会打开github让你把Device code输入进去,没登录的话会先登录(Github总不能没号吧)
输入后你的github就会进入这个页面,你的github菜单就会多出一个Copliot
那么这是干什么的呢?这是收费的啊大哥,是可以有一个月的免费体验,但是你要有VISA,因为要填信息,你得填完信息才给用,或者你有教育邮件(就是学生或者老师),一般你上大学的话都会有个学校的邮箱。这个类似苹果那种教育优惠。
但我非常不建议学生使用这种方式去注册,因为我上面说了,这个功能其实不算成熟,你肯呢个玩个一两小时就失去兴趣了,然后你把你的信息给暴露出去,我觉得这有点得不偿失。
所以有VISA的可以体验一个月,有钱的,当我没说。那又没VISA,不用学校邮箱,要怎么弄呢?买一个号啊,这种东西在我神州大陆会缺?
Github Copilot相对于Bito的功能和性能都会强大一些,但是Github Copilot的引入就没有Bito的方便
4. 小结
这边介绍了3个目前AS能使用的AI工具,一个官方的工具studio bot,两个插件Bito和Github Copilot,加上直接在GPT网页打开GPT使用这4种方式中。
我个人肯定是最看好studio bot,官方出品,必属精品,其他IDE我不敢说,但是Android Studio未来肯定是studio bot最好用。
而就目前来说,无论使用哪种都有一定的成本,首先肯定是科学上网,GPT有些大佬会迁移出来,不科学上网也是能使用的。其次就是账号问题,像Github Copilot这种账号申请难度就比较高,我建议想用的话直接买号。
最后目前对于辅助开发而言(对于其他使用我可能不太清楚,我比较关心的是辅助开发的效果),功能上还不是很成熟,说得好听就是可能对我的开发流程而言用处不是很大,说得难听一点就是我自己敲代码都比他快。
有的人可能会觉得还是用处挺大的。我仅代表我自己的观点,像我开发的话习惯使用一些模板,快捷键和AS提供的一些工具。我不敢保证说每个人都会去使用这些工具,但就我而言,比如拿Bot来说,你可能会喜欢给他一些简单的逻辑让它生成代码,但是我使用模板使用AS的工具生成代码的速度比它更快。我反而会在一些比如说Json生成Data,下划线转驼峰,或者突然忘记一些知识点的时候去使用,但是这种情况下直接打开网页使用GPT我感觉更好。
三. 展望
就是这个google IO大会,提出AI这个方向之后,特别是今年提出这些东西之后,其实对之后的影响还是挺大的。这个可以一点一点慢慢说。
首先是Android的一个技术更新,像之前google提出的JetPack、kotlin、flutter等,其实都是很好的技术,都是要学的,现在相当于是重心放AI了,所以之后像这类技术的展现可能周期会相对长一些。
然后是大家比较关心的一个问题,会不会AI技术成熟之后,就不需要开发人员了,直接AI就行了,程序员全部失业。我觉得应该不会达到这种地步吧,如果真能达到这种地步,那AI都能自己给自己编程了,这种情况就超出想象了,完全就是科幻里面的那种。 但是我认为最终是能做到极致的辅助开发,宏观上来看就是能辅助我们把开发时间缩短到一半以下。那么就有可能会出现说公司只要一两个核心的成员,配合AI进行开发,就顶原本的五六个人开发。 这其实是要看老板吧,他觉得你的效率因为AI的配合能提高一倍,你一个人就能做两个人的事,那我干嘛养两个人,养一个人不更划算?当然老板也会觉得,那AI提高了你的效率,你就做完6点下班吧,不用加班了。其实话说到这里,懂的都懂。
所以这个发展是好还是坏,其实我也不清楚。但是单纯对开发来说,肯定是好的。那要怎样才能达到我说的辅助开发的地步,我又为什么这么看好studio bot?
这里得聊一些基础,
我们写代码,我们编译,打包APK等等这些操作,其实都是对文件操作,这个能理解吧。比如class文件用dx工具生成dex文件。然后这些操作,我可以写一个脚本去做吧,写脚本去操作文件。
比如我想用json生成kotlin的data类这件事,我可以用脚本去做,我可以用脚本接受json输入,然后按照data类的格式去让脚本生成一个data类的.kt文件,这个脚本是可以做到的,这个要先清楚。
那既然脚本能做到的事,AI你觉得做不做得到?为什么我不写脚本去完成这件事,因为这件事不麻烦,我反而写脚本更麻烦,但是使用AI去完成这件事并不麻烦啊,所以这是能很明显的提高开发的效率。
但是现阶段的AI的问题是什么呢?是拿不到上下文,简单来说它只能单纯的作为聊天工具,它拿不到我们项目的上下文。“帮我根据以下json生成一个data文件放到xxx目录下”,AI当前实现不了这个功能,但是它要做这个效果so esay。我们当前只能说让他生成个data类,然后它在聊天窗口给你生成,你自己创建一个data类然后复制它的内容过去。
所以我看好studio bot的原因之一是因为它是官方的,我觉得它未来是能拿到上下文的。举个简单的例子,它能拿到整个项目并且读写整个项目,那我们让它做的操作,和它说的话都是基于整个项目的,我就不会花费很多时间去给他描述我要做什么,也会省去很多步骤,我现在使用AI来和项目接轨都是要经过一些步骤进行转换的,而这些转换的时间还不如我直接自己撸代码。
如果它能拿到项目这个上下文,我对它说“帮我找xxx页面的布局”,它能帮我直接找的。或者说我们使用retrofit做网络请求,往往要写一些分散的代码,我直接和它说“根据链接、入参、出参新增一个名为xxx的请求”,它能帮我按照其他请求的格式去写到各个文件中。要是能做到这步,那对我们效率的提高就很大了。
“给这个XXXXActivity写个LiveData”,“检查当前类是否有内存泄露可能”,“帮我将当前的中文放到string.xml中”等等。这些操作其实都是开发中的重复操作,其实并没有很依赖业务,而我相信最终studio bot终将会做到这一步。
大AI时代已经开启,这股洪流又会将我们带到何处
来源:juejin.cn/post/7243725952789823525