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插件代碼地址

個人網站:www.gaotenglife.com

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM