去年公司開始上新項目,正好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