从零编写一个一键生成mvp的android studio插件

实现的效果

首先展示一下运行的效果
运行效果
这里展示了自动新建mvp架构

了解基本概念

开发环境

工欲善其事必先利其器,如果要开发一个软件,那么我们首先需要了解的这个软件的开发工具。平常我们开发android 使用都是android studio ,但是很遗憾,android studio 由于太过于定制化导致无法用于插件的开发。而这时候我们就需要android studio 的老爸 IntelliJ IDEA。
idea 的下载地址:https://www.jetbrains.com/idea/
在idea的官网,我们可以看到有收费版和社区版(也就是免费版)。这里我们选择idea的免费版就可以了。后面的安装过程暂且不表,相信都会安装了

新建项目

新建项目的时候如下图一样选择IDE Plugin,填写我们的项目名称和选择我们项目目录,sdk也如下图一样选择,后面直接create,这样我们的第一个项目就建好了。
在这里插入图片描述

这时候,接。然后点finish即可。

项目结构

建好项目以后,我们就可以看到如下的项目结构
在这里插入图片描述

  • .idea : idea的一些配置信息。
  • resources/META-INF/plugin.xml: 插件的一些描述信息。类似android中的Manifest文件。
  • java: 这里就是写代码的地方,类似android 中java

项目整体配置

和android 项目类似。插件的也是有一个总体的配置文件,也就是我们在上面看到的plugin.xml文件。
在这里插入图片描述

这个文件看起来很多很乱,其实我们一项一项的去看的时候,一点都不复杂。

  • id: 这个就是该插件的唯一标识符了。类似于android的包名。在android 中如果包名重复的话,就会出现后面的软件无法安装的问题。而在插件中表现出来的就是后面安装的插件会覆盖前面的。所以一定要记得改成自己的id。
  • name: 这个就类似于android 中的应用名称
  • version: 插件的版本
  • vendor: 这个里面就是你的个人信息了。如果你想给自己写的插件打上自己的烙印,就改写这里。
  • description: 这个里面就是描述一下,这个插件是干啥的。可以使用html标签来编写
  • change-notes 更新信息
  • extensions defaultExtensionNs 默认依赖的库
  • actions 类似于android 中的activity。所有使用到的action,都要在这里进行注册。

开始编写插件

新建action

我们知道,在android 中,我们开始一个项目的第一步就是新建一共activity。而在这个项目中也是类似的,我们需要新建一共action。这里我们只需要在src下面的某个需要添加action的文件夹,右击->New->Plugn DevKit->Action。即可
在这里插入图片描述
这时候,我们会弹出一共弹窗。
其中,Action Id,Class Name就不多说了,Name为显示给用户的动作名称,Description为操作的描述。

Groups是比较重要的,他代表了我们按钮展示的位置。比如选择GenerateGroup,就是在Generate中显示(Windows中快捷键alt+insert,Mac快捷键control+enter)。还有build、code(显示在菜单栏上build、code按钮中)等等一系列Groups的位置,大家根据需要自己选择。不知道意思的网上查一下就好。

右边Actions是选择按钮位置的,First和Last分别为菜单最上方和最下方,点击Actions中的按钮,可以选择在该按钮的下方和上方。我这里模仿了ButterKnife Zelezny选择了GenerateGroup,并且放在了最下方。
在这里插入图片描述
这里我们再点击ok,就完成了第一个action的新建。
这时候我们再回头看看我们的plugin.xml.就会发现我们刚刚新建的action,已经自动添加好了。
在这里插入图片描述

这时候,我们只要点击右上角的运行,我们的第一个插件就运行起来了。
在新打开的idea的选择自己的项目,然后右击点击genetate.就能看到我们刚刚注册的"MvpAction"。当然这个时候你点击是没有任何效果的。
在这里插入图片描述
在这里插入图片描述

了解action

这里我们打开刚刚新建的action,会发现里面空空如也。只有一个actionPerformed的函数。其实你用Android
的想法去了解很自然的就能猜到这个函数的作用,就是类似oncreate,是作为我们整个程序的入口。但是这个函数被调用的时机,是在用户去点击你的action。
在这里插入图片描述

显示Dialog

我们都知道 ,plugin基本上都是基于java来开发的。所以理所当然的plugin的界面也是采用了java 的Swing。
就如同我们在android 中创建View一样,在plugin 中,我们也有两种方式创建UI界面,一种是通过Code直接创建。还有一种是通过IDE提供的工具,可视化创建。
目前在最新版本的Idea中,对于创建dialog,做了非常好的封装,体验非常好。所以这里我们选择通过可视化工具创建。

新建dialog

就如同之前创建Action一样简单,这里只需要点击Create Dialog Class 按钮,就会自动创建对应的文件。
在这里插入图片描述
其中我们发现生成了两个文件
在这里插入图片描述

其中.java 文件,就是我们dialog 的逻辑控制类似android中的dialog。
而.form 文件,就是dialog的 layout 了,类似android中的 l

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值