欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

android studio 插件开发 入门篇

程序员文章站 2022-07-12 20:52:50
...

前言

首先声明~其实插件开发挺简单的,基本就和你开发一个jar程序差不多,区别就是在于多了一个图形化界面进行交互,所以,当你打算开发一个插件的时候,你可以事先将所有需要用户提供的值进行预设,然后直接编写逻辑代码,最后测试通过后,嵌入图形操作界面即可。

创建插件工程

如果你的idea不是非官方渠道购买的话,是不能进行插件开发的,单是官方也提供了一个免费的可用的插件开发IDEA,能提供的功能很少,但是仅开发插件的话是足够了,下载如图所述的IDEA并安装
android studio 插件开发 入门篇

接下来打开刚刚安装的简易版IDEA,点击创建插件工程create new project -> intellij Platform plugin ,如图

android studio 插件开发 入门篇
Project SDK的话使用默认的就好了,,如果没有就新建一个,,不断next后,插件工程创建完毕,现在我们来解析一下项目的结构,当然,,其实项目结构也很简单,没什么需要注意的,我们重点看resources中META-INF的plugin.xml文件,这里我只贴出重点,其他暂时用不到的我就不贴了。

<id>com.your.company.unique.plugin.id</id>
  <name>Plugin display name here</name>
  <version>1.0</version>
  <vendor email="aaa@qq.com" url="http://www.yourcompany.com">YourCompany</vendor>

  <idea-version since-build="173.0"/>
  <actions>
    <!-- Add your actions here -->
  </actions>

id,name,version,vendor 这些是向使用者说明这个插件的基本资料
idea-version表示插件最低的可使用的版本,,如果太高的话可能导致安装不了

我们来重点讲讲actions这个标签

这个标签里面放的就是你插件的功能导航,主要描述的是插件的显示位置,快捷键,显示的名称,调用的位置在哪等等,上面的代码我们看到是空的,那么,里面到底是怎样的呢?现在我们在创建一个action。
项目右键新增new->plugin devkit -> action,如图
android studio 插件开发 入门篇
action id : 这个插件功能的唯一标识
class name : 类名
name : 显示到插件栏中的名字
description : 插件的一些描述
groups: 插件的位置
actions:触发插件可用状态的动作
keyboard shortucts:快捷键
上述各项大概意思就是,告诉IDEA,这个插件的id对应的name是什么,然后会调用哪个class,并且将这个插件的功能放置到菜单栏的哪个模块上(例如code,help,Run,Tool等等),而且处于什么情况下,才使得这个插件为可用状态(即有些菜单是暗灰色不可点击,可点击的为白色),使用的快捷键又是什么。
现在已经创建完一个action,我们来看看plugin.xml上是如何描述的.

<idea-plugin>
  <id>com.your.company.unique.plugin.id</id>
  <name>Plugin display name here</name>
  <version>1.0</version>
  <vendor email="aaa@qq.com" url="http://www.yourcompany.com">YourCompany</vendor>

  <idea-version since-build="173.0"/>

  <actions>
    <!-- Add your actions here -->
    <action id="com.hzc.temaction" class="TempAction" text="Test" description="demo action">
      <add-to-group group-id="CodeMenu" anchor="first"/>
      <keyboard-shortcut keymap="$default" first-keystroke="shift ctrl P"/>
    </action>
  </actions>

</idea-plugin>

现在已经完成了一个action的创建并且其实已经可以使用了。
我们来看看刚刚创建的action类

public class TempAction extends AnAction {

    @Override
    public void actionPerformed(AnActionEvent e) {
        // TODO: insert action logic here
    }
}

好了,,现在插件项目已经可以运行了,我们点击idea右上方的运行,这个时候打开一个新的IDEA用于安装并调试这个插件功能,然后就可以从之前的group中配置的位置(我选的是code)中看到名为test的菜单选项了。如图
android studio 插件开发 入门篇

当然了,目前这个demo是什么功能也不具备,如果你是按照我前言那种方式去处理业务的话,现在我们只需要弹出一个窗口,让用户去输入对应的值就可以了

创建用户对话框

项目右键点击new -> dialog 按提示操作
完成后会得到一个对话框的布局文件和源码文件,接下来就是java swing的事情了,不会swing的没关系,拖控件就好了。把界面布局好,接下来看源码文件对布局文件进行处理就可以了,至于怎么弹出这个窗口可以直接参考里面的main方法就可以了。
在action的actionPerformed中调用这个窗口并显示

public class TempAction extends AnAction {

    @Override
    public void actionPerformed(AnActionEvent e) {
        // TODO: insert action logic here
        TempDialog dialog = new TempDialog();
        dialog.setSize(400,400);
        dialog.pack();
        dialog.setVisible(true);
    }
}

最后启动调试,点击code菜单栏下的test选项,如图:
android studio 插件开发 入门篇
其实,这个布局控件是可以单独运行的,直接运行main就可以了,刚刚的这种方式是模拟整个用户流程。

打包发布安装插件

这个很简单,点击菜单栏的build -> prepare plugin module ‘??’ for deployment 后会在当前项目的根目录生成一个项目名.jar的包,然后就可以对这个插件进行安装使用了。

相关标签: 插件 idea