android studio 插件开发(自动生成框架代码插件)
android studio 插件开发
起因
去年公司开始上新项目,正好android在架构这方面的讨论也开始多了起来,于是mvp架构模型就进入我们技术选择方案里面,mvp有很多好处,但是有一个非常麻烦的地方是代码量很大,写一个页面需要写很多接口类回调。所以当时就想写一个插件用代码来生成,但是迫于项目紧急一直没有研究。最近公司项目不是很紧,所以抽空搞了下.
过程
刚开始选择方案,我是准备拿python写,因为之前也接触过,写过一点小程序,所以还算比较顺手,但是写了一半之后,感觉用python和androidstudio结合不是很紧密,通过了解,开发android studio的插件也是用java,所以就再次换成开发android studio的方式。
由于android studio是用的IntelliJ IDEA的开源版本做的,所以开发android studio的插件 ,其实就是开发IntelliJ IDEA的插件,所以IntelliJ IDEA是必须的,可以在官网去下载社区免费开源版本。
下载好之后,新建项目

选择sdk 里面的jdk的目录。这样就新建好了一个插件工程
里面有如下两个重要的目录

其中plugin文件中主要进行一些插件配置,比如说插件名字,插件的官网,当然一些按钮之类的也是在这里面配置
<idea-plugin version="2">
<id>com.gaotenglife.create</id>
<name>MVP_CODE_CREATOR</name>
<version>1.0</version>
<vendor email="gaotengxuelang@gmail.com" url="http://www.gaotenglife.com">xuelang</vendor>
<description>
帮助生成mvp框架代码
</description>
<change-notes><![CDATA[
Add change notes here.<br>
<em>most HTML tags may be used</em>
]]>
</change-notes>
<idea-version since-build="141.0"/>
<extensions defaultExtensionNs="com.intellij">
</extensions>
<actions>
<group id="MvpPlugin.SampleMenu" text="_MvpTools" description="tools">
<add-to-group group-id="MainMenu" anchor="last" />
<action id="MvpPlugin.CreateFileAction" class="CreateMVPFiles" text="CreateFiles" description="createfiles" />
</group>
</actions>
<application-components>
</application-components>
</idea-plugin>
上面大概一看就能懂,下面一块就主要用来定义点击事件,其中的class代表点击事件的类
<actions>
<group id="MvpPlugin.SampleMenu" text="_MvpTools" description="tools">
<add-to-group group-id="MainMenu" anchor="last" />
<action id="MvpPlugin.CreateFileAction" class="CreateMVPFiles" text="CreateFiles" description="createfiles" />
</group>
</actions>
同时我们在src目录下新建一个java类,继承自AnAction
public class CreateMVPFiles extends AnAction {
@Override
public void actionPerformed(AnActionEvent event) {
project = event.getData(PlatformDataKeys.PROJECT);
packagebase = readPackageName();
initSelectView();
project.getProjectFilePath();
}
}
其中actionPerformed方法就是点击响应的方法.
接下来主要就是java swing的一些界面操作了,比如你可以新建jframe jdialog
等等。这样简单的入门插件你就能开发了。
下面是我写的项目的源代码地址
MvpCodeCreator插件代码地址
转载请注明出处http://www.cnblogs.com/gaoteng/p/5684076.html
转载请注明出处http://www.gaotenglife.com/?p=399
android studio 插件开发(自动生成框架代码插件)的更多相关文章
- Android Studio 配置快速生成模板代码
前言 Android studio 有提供快速生成模板代码的功能,其实这个功能也可以自定义配置.此篇博客将讲解如何使用此功能 进入Settings 选择 Editor > Live Templa ...
- 动手试试Android Studio插件开发
由于业务关系,经常需要写一些表单页面,基本也就是简单的增删改查然后上传,做过几个页面之后就有点想偷懒了,这么低水平重复性的体力劳动,能不能用什么办法自动生成呢,查阅相关资料,发现android stu ...
- Android Studio 插件开发详解三:翻译插件实战
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78113868 本文出自[赵彦军的博客] 一:概述 如果不了解插件开发基础的同学可以 ...
- MyBatis代码自动生成(利用eclipse插件)
上一篇文章已经介绍了利用命令的方式自动生成mybatis代码,但是每次都去运行cmd命令感觉还是有点麻烦,所以找了些资料发现eclipse里面也可以安装插件自动生成代码,下面简单介绍一下,也是给自己以 ...
- Android Studio 插件开发详解一:入门练手
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78112003 本文出自[赵彦军的博客] 一:概述 相信大家在使用Android S ...
- 借Adobe XD之力,自动生成Flutter代码
概述 今天,我们来聊聊一个专门为"懒人程序员"准备的工具--Adobe XD.使用它可以快速将原型设计图转换为可执行的Flutter代码, 而由于Flutter自身跨平台的特性,因 ...
- Android Studio 插件开发详解二:工具类
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78112856 本文出自[赵彦军的博客] 在插件开发过程中,我们按照开发一个正式的项 ...
- Android Studio 单刷《第一行代码》系列 02 —— 日志工具 LogCat
前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...
- Android Studio 单刷《第一行代码》系列 01 —— 第一战 HelloWorld
前言(Prologue) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Android ...
随机推荐
- VS2013 添加 ILDasm
1.找到ILDasm.exe文件: 打开C:\Program Files\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools 2.vs外部工具添加 工 ...
- 7、ORM
CRUD(create.retrieve.update.delete) left join right join inner join one2one one2many many2many 1.For ...
- Python初学者第十六天 文件处理操作练习
16day 练习:模拟登陆 1.用户输入账号密码进行登陆: 2.用户信息保存在文件内: 3.用户密码输入错误三次后,锁定用户,下次登陆,检测到这个用户再也登陆不了 #获取用户名及密码f_user = ...
- 一个简单的使用matplotlib作图的例子
#使用matplotlib作图 import numpy as np import matplotlib.pyplot as plt #x = np.linspace(start, stop, num ...
- Nginx Web服务器配置
Nginx是一个轻量级高性能的web服务器,它是为快速响应大量静态文件请求和高效利用系统资源而设计的.与apache使用面向进程或线程的方式处理请求不同,nginx使用异步事件驱动模型在连接高并发的情 ...
- 利用maven开发springMVC项目(二)——框架配置
申明:主要内容来源于大神博客(使用IntelliJ IDEA开发SpringMVC网站(二)框架配置),我只是用eclipse自己练习使用,记录下来也只是为了学习使用,没有任何的商业用途,侵权必删. ...
- Loadrunner手动关联详解
Loadrunner手动关联详解 一.关联的含义: 关联(correlation):在脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到 ...
- Python 学习笔记(十五)Python类拓展(一)继承
继承 继承(Inheritance):是面向对象软件技术当中的一个概念.如果一个类别A "继承自" 另一个类B,就把这个A称为“B的子类”,而把B称为“A的父类”,也可以称“B是A ...
- pycharm多行注释
选中需要注释的代码 ctrl+/ #首字母大写# test = 'alex'# v = test.capitalize()# print (v)## 字符串的加法# n1 = 'my '# n2 = ...
- oracle 11GR2 单机打补丁PSU 11.2.0.4.180717
上传补丁包,修改权限 su - oracle mdir /tmp/psu mv p6880880_112319_Linux-x86-64.zip /tmp/psu/mv databasepsu1807 ...