一瓣戚、需求分析:
目的為了不寫重復的代碼端圈,整個MVP模式下的建包,建類過程十分繁瑣子库,模版代碼又十分固定舱权,變化的部分的只有幾個單詞而已,這些代碼毫無技術含量刚照,所以就想著寫個插件自動生成刑巧,變化的部分(如:類名關鍵字喧兄,請求的接口名等等)就用配置文件的方式導入(json格式,規(guī)則自定)啊楚,以后這里還可以改進為變化的單詞用表單的形式手動填寫吠冤,因為目前對IntelliJ IDEA的GUI部分掌握不足,所以暫時沒實現(xiàn)該功能恭理。
二拯辙、插件展示:
github:https://github.com/liujia95/android-intellij-plugin-generate-mvp-code
三颜价、開發(fā)過程:
開發(fā)工具:IntelliJ IDEA涯保。
步驟一:新建項目。
1周伦、File->New Project夕春,然后按照下圖操作。
2专挪、點擊next及志。
3、填寫項目路徑后點擊finish即可寨腔。
步驟二:了解項目結構速侈。
新建項目后的項目結構如下:
1、plugin.xml:項目的配置說明文件迫卢,相當于Android項目中的AndroidManifest.xml倚搬,負責一些Action、Extension等等已經項目版本信息乾蛤、作者的注冊和聲明每界。
2、res:就是實現(xiàn)插件的關鍵代碼幻捏。
<idea-plugin version="2">
<id>com.your.company.unique.plugin.id</id><!--插件ID盆犁,自定義,如果要上傳到Plugins倉庫不能有重復ID -->
<name>Plugin display name here</name><!--插件名稱-->
<version>1.0</version>
<vendor email="support@yourcompany.com" url="http://www.yourcompany.com">YourCompany</vendor><!--郵箱和網址篡九,上傳到Plugins倉庫會在你的插件界面顯示 -->
<!-- 你的插件的簡介谐岁,同樣是顯示在Plugins倉庫信息界面 -->
<description><![CDATA[
Enter short description for your plugin here.<br>
<em>most HTML tags may be used</em>
]]></description>
<!-- 版本更新信息-->
<change-notes><![CDATA[
Add change notes here.<br>
<em>most HTML tags may be used</em>
]]>
</change-notes>
<!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/build_number_ranges.html for description -->
<idea-version since-build="141.0"/>
<!--產品選擇,后文會提 -->
<!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html
on how to target different products -->
<!-- uncomment to enable plugin in all products
<depends>com.intellij.modules.lang</depends>
-->
<!--擴展組件注冊 要是用到applicationConfigurable即項目配置等就在這里注冊-->
<extensions defaultExtensionNs="com.intellij">
<!-- Add your extensions here -->
</extensions>
<!--Action注冊榛臼,比如在某個菜單下增加一個按鈕就要在這注冊 -->
<actions>
<!-- Add your actions here -->
</actions>
</idea-plugin>
步驟三:編寫一個菜單選項(創(chuàng)建一個Action)伊佃。
1、新建包:右鍵點擊res沛善,New——> package航揉。
2、在包下面:New——>Action金刁。
3帅涂、填寫配置信息议薪。
4、點擊OK后會自動生成一個TestAction.Java的類:
public class TestAction extends AnAction {
@Override
public void actionPerformed(AnActionEvent e) {
// TODO: insert action logic here
//點擊菜單Edit的test后會跳進這個方法
}
}
4媳友、可以看到在plugin.xml的actions元素下多了剛才選擇和配置的內容斯议。
<actions>
<!-- Add your actions here -->
<action id="Test.ID" class="TestAction" text="test" description="test test ">
<add-to-group group-id="MainMenu" anchor="first"/>
<keyboard-shortcut keymap="$default" first-keystroke="alt T"/>
</action>
</actions>
步驟四:寫核心代碼:
內容比較多,這一步驟待寫醇锚。
步驟五:插件打包到本地并安裝插件:
1哼御、Build——>Prepare Plugin Module 'XXX' For Deployment生成一個.jar包。
2焊唬、打開Android Studio恋昼。
3、Preferences -> Plugins -> Install plugin from disk找到.jar包的位置赶促。
注:
整套模版只適用于該項目的架構體系液肌。