去年公司开始上新项目,正好android在架构这方面的讨论也开始多了起来,因而mvp架构模型就进入咱们技术选择方案里面,mvp有不少好处,可是有一个很是麻烦的地方是代码量很大,写一个页面须要写不少接口类回调。因此当时就想写一个插件用代码来生成,可是迫于项目紧急一直没有研究。最近公司项目不是很紧,因此抽空搞了下.
刚开始选择方案,我是准备拿python写,由于以前也接触过,写过一点小程序,因此还算比较顺手,可是写了一半以后,感受用python和androidstudio结合不是很紧密,经过了解,开发android studio的插件也是用java,因此就再次换成开发android studio的方式。html
因为android studio是用的IntelliJ IDEA的开源版本作的,因此开发android studio的插件 ,其实就是开发IntelliJ IDEA的插件,因此IntelliJ IDEA是必须的,能够在官网去下载社区免费开源版本。java
下载好以后,新建项目python
选择sdk 里面的jdk的目录。这样就新建好了一个插件工程android
里面有以下两个重要的目录git
其中plugin文件中主要进行一些插件配置,好比说插件名字,插件的官网,固然一些按钮之类的也是在这里面配置github
<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类,继承自AnActionandroid-studio
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
等等。这样简单的入门插件你就能开发了。app
下面是我写的项目的源代码地址
MvpCodeCreator插件代码地址
转载请注明出处http://www.cnblogs.com/gaoteng/p/5684076.html
转载请注明出处http://www.gaotenglife.com/?p=399