一、概述
在使用Android Studio的时候多少都会使用插件来提高开发效率(偷懒),常用的一些:GsonFormat、ButterKnife等等;因为项目中引入mvp这种架构,写各种类是一件很重复繁琐的事,所以当时就写了这个插件,现在正好结合这篇文章拿出来说一下。这篇文章会教你根据自己的项目结构,生成一个mvp框架代码的插件,看一下运行的效果:
可以看到,只需要输入作者和模块的名称就可以生成一个符合官网版本的mvp框架代码结构,同时会生成base目录。
如果学会了编写插件,这样自己有好创意的时候就可以去实现了,官网有具体的步骤,可以去看一下:http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started.html
废话不多说直接开始。
二、开发环境搭建
开发工具需要IntelliJ IDEA,用过studio都知道它是在IntelliJ IDEA基础上开发的,所以IntelliJ IDEA上手很简单。下载地址:https://www.jetbrains.com/idea/ 下载community版本安装即可。开始编写:
1.创建一个plugin项目
File->New->Project 然后选择一个plugin项目,如下图:
点击Next,输入项目的名称即可,这里取名MvpCreate。
建立工程后看一下项目结构:
其中plugin.xml为项目的说明文件,会包含一些项目的版权、作者和声明。其中主要标签为<actions>,这里会是插件的入口。
src目录下存放主要的代码。
2.创建一个菜单
我们知道Android Studio有很多菜单,例如常用的Build菜单,里面有各种各样的功能,同时还有快捷键支持,如下:
现在我们开始建一个自己的菜单,选择src->New->Action,如下:
然后填写这个Action的信息:
说明一下需要填写的属性:
Action ID:代表这个Action的唯一标示。
Class Name:类名
Name:这个插件在菜单上的名称
Description:关于这个插件的描述信息
Groups:代表这个插件会出现的位置。比如想让这个插件出现在Code菜单下的第一次选项,我在图中选择CodeMenu(Code),右边Anchor选择First
Keyboard Shortcuts:快捷键设置。图中设置Alt+T。
点击OK后会生成一个MvpCreateAction类:
同时看一下plugin.xml这个文件,会发现<actions>标签下多出来了一个<action>标签,里面包含了我们刚刚填写的信息。
这样一个插件就生成了。把这个插件部署到studio已经可以使用,具体如何部署接下来会讲,继续往下看。
三、编写插件代码
先说一下思路:
生成代码我们可以使用一些模板,这个模板可以是一个txt文件,在模板里面添加代码,提取出需要替换的代码,然后通过流读取模板文件,最后生成类文件。基本上就是这样的思路,接下来具体实现:
1.新建模板文件
我们按照官网的mvp风格来编写整体的框架,这里按功能模块分包,包含Activity、Fragment、Presenter、Contract,然后加上base类,BasePresenter、BaseView、BaseActivity、BaseFragment。看一下:
看一下TemplateContract.txt这个文件的内部细节:
代码里面的$packagename、$basepackagename、$author、$description、$date、$name这些字符都是可以动态替换的。这些模板文件的具体代码细节在文末的源码中查看,当然也可以根据自己的需要写入自己的代码。
2.新建dialog
上面的模板已经建好,现在我们需要一个对话框,在对话框里面输入作者和模块的名字。效果看一下: