Android Studio插件开发 MVP框架代码生成插件

本文介绍如何开发一个Android Studio插件,该插件能自动生成MVP框架代码,提升开发效率。文章详细讲解了从环境搭建、菜单创建、模板文件和对话框的编写,到代码生成实现、插件部署以及上传到Plugins仓库的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概述

在使用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

上面的模板已经建好,现在我们需要一个对话框,在对话框里面输入作者和模块的名字。效果看一下:

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值