android studio 插件开发 入门篇
前言
首先声明~其实插件开发挺简单的,基本就和你开发一个jar程序差不多,区别就是在于多了一个图形化界面进行交互,所以,当你打算开发一个插件的时候,你可以事先将所有需要用户提供的值进行预设,然后直接编写逻辑代码,最后测试通过后,嵌入图形操作界面即可。
创建插件工程
如果你的idea不是非官方渠道购买的话,是不能进行插件开发的,单是官方也提供了一个免费的可用的插件开发IDEA,能提供的功能很少,但是仅开发插件的话是足够了,下载如图所述的IDEA并安装
接下来打开刚刚安装的简易版IDEA,点击创建插件工程create new project -> intellij Platform plugin ,如图
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,如图
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的菜单选项了。如图
当然了,目前这个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选项,如图:
其实,这个布局控件是可以单独运行的,直接运行main就可以了,刚刚的这种方式是模拟整个用户流程。
打包发布安装插件
这个很简单,点击菜单栏的build -> prepare plugin module ‘??’ for deployment 后会在当前项目的根目录生成一个项目名.jar的包,然后就可以对这个插件进行安装使用了。
推荐阅读
-
Android Studio配置Kotlin开发环境详细步骤
-
解析离线安装Eclipse的Android ADT开发插件的具体操作(图文)
-
Android Studio开发之 JNI 篇的简单示例
-
使用Android Studio 开发自己的SDK教程
-
Android Studio gradle插件版本和gradle版本对应关系
-
Android Studio常用设置(设置ide主题、安装插件、设置编码区字体、自定义sdk位置)
-
Android Studio怎么下载并安装插件?
-
Visual Studio 2010 前端开发工具/扩展/插件推荐
-
Android Studio配置Kotlin开发环境详细步骤
-
谷歌android apk开发工具Android Studio安装使用图文教程