AndroidStudio Plugins 开发流程

简述 AndroidStudio Plugins 开发流程,不涉及功能性开发,方便大家入门,减少踩坑操作。

首先推一下我个人的第一个结合公司场景而诞生的Plugin:ButterKnifeCode,参考了开源插件:FindViewByMe

下面简述 AndroidStudio Plugins 开发流程:

准备工作

1、下载Intellij IDEA Community版本,因为是免费的;

2、安装运行Intellij IDEA,点击create New Project,按照以下两步操作:

sdk_java

sdk_plugin

图中第2步点击New...实际上就是选择Java和Intellij IDEA的安装目录,然后点击Next,再选择Project的目录,最后点击Finish按钮就创建好Project了,Project目录结构如下图:

目录结构

编码工作

3、下面先介绍一下Project唯一给我们创建好的plugin.xml文件,具体说明如下:

<idea-plugin>
  <!-- 插件ID,上传到plugins.jetbrains.com会用到,保证唯一就行 -->
  <id>com.your.company.unique.plugin.id</id>
  <!-- 插件名称 -->
  <name>Plugin display name here</name>
  <!-- 插件版本号 -->
  <version>1.0</version>
  <!-- 插件作者信息 -->
  <vendor email="support@yourcompany.com" url="http://www.yourcompany.com">YourCompany</vendor>

  <!-- 插件描述信息 -->
  <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="145.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>
  -->

  <extensions defaultExtensionNs="com.intellij">
    <!-- Add your extensions here -->
  </extensions>

  <!-- 动态创建的Action或手动注册的Action -->
  <actions>
    <!-- Add your actions here -->
  </actions>

</idea-plugin>

4、创建Action,右击New一个就行了,具体说明见图:

new_action

new_action2

New成功之后会打开我们创建的TestAction,并且会在plugin.xml文件中添加action,内容如下:

  <!-- 动态创建的Action或手动注册的Action -->
  <actions>
    <!-- Add your actions here -->
    <action id="TestAction.ID" class="TestAction" text="Test" description="TestActionDescription">
      <add-to-group group-id="EditMenu" anchor="first"/>
      <keyboard-shortcut keymap="$default" first-keystroke="shift ctrl O"/>
    </action>
  </actions>

,TestAction的内容如下:

import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.ui.Messages;

public class TestAction extends AnAction {

    @Override
    public void actionPerformed(AnActionEvent e) {
        // TODO: insert action logic here 此处用于实现业务逻辑
        // 下面语句用于快速验证使用
        Messages.showMessageDialog("Hello World !", "Information", Messages.getInformationIcon());
    }
}

5、点击Run会打开一个新的Intellij IDEA,然后随便创建一个Project,进入之后点击Edit菜单按钮,你就可以发现第一个选项是Test,如下图所示:

menu_test

,然后点击会弹出一个弹框,弹框如下图:

dialog_test

,操作如下图:

run

但是,我没成功过,一直会报下面这样的错误:

cannot_load_project

所以我是通过下面的方式测试的:

首先点击BUild菜单下的Prepare All Plugin Modules For Deployment选项,会在Porject目录下生成一个工程名.jar的jar包,然后手动打开一个Intellij IDEA,随便打开或创建一个项目,点击Edit菜单按钮下面有木有Test选项,并且点击Test选项的效果是不是和上面的效果一致就行了。

部署工作

6、插件开发完成之后需要部署插件到jetbrains,当然也可以不部署,像我之前的测试方式一样使用,下面说一下部署插件到jetbrains的操作:

6.1、编写plugin.xml文件,具体说明在步骤3已经说明;

6.2、参考官方部署教程:Publishing a plugin

总结

本文重点在于Plugin的开发流程,不涉及功能性开发,如果需要进行功能性开发,建议参考官方教程,或者与你需要的功能类似的开源插件。

参考链接

添加新评论