android studio 插件開發(自動生成框架代碼插件)

android studio 插件開發

原由

去年公司開始上新項目,正好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插件代碼地址

我的網站:www.gaotenglife.com

轉載請註明出處http://www.cnblogs.com/gaoteng/p/5684076.html
轉載請註明出處http://www.gaotenglife.com/?p=399

相關文章
相關標籤/搜索