Android Studio Plugin —— 插件开发的基本流程

前言

本篇文章将讲解如何通过 IntelliJ IDEA 工具来编写自定义插件,熟悉插件开发的流程,以及如何打包发布插件的流程。

一、配置SDK

打开 IntelliJ IDEA ,选择 File -> Project Structure,在弹出的配置窗口中点击 New... 新增SDK,然后选择 IntelliJ Platform Plugin SDK。如下图所示:

Android Studio Plugin —— 插件开发的基本流程_第1张图片

在弹出下面的对话框时,选择默认 IntelliJ IDEA 文件夹即可,然后点击OK,如下图所示:

Android Studio Plugin —— 插件开发的基本流程_第2张图片

最后会弹出选择插件的 Java 版本的窗口,选择默认配置即可,然后点击OK,如下图所示:

Android Studio Plugin —— 插件开发的基本流程_第3张图片

 

二、新建 Plugin Project

在打开的 IntelliJ IDEA 中选择 File -> New -> Project,在弹出的 New Project 窗口的左侧菜单选择 IntelliJ Platform Plugin 项目,Project SDK 选择刚才新建的配置,其中 Groovy、Scala等其他附加的内容无需勾选,然后选择 Next , 如下图所示:

Android Studio Plugin —— 插件开发的基本流程_第4张图片

输入项目名称和选择项目存放位置即可,点击 Finish 完成创建,如下图所示:

Android Studio Plugin —— 插件开发的基本流程_第5张图片

创建完插件项目之后,会默认生成一个 plugin.xml 的配置文件,其中可以修改该插件项目的相关配置信息,比如插件名称、插件版本号等,代码如下所示:


  com.your.company.unique.plugin.id
  Plugin display name here
  1.0
  YourCompany
      most HTML tags may be used
    ]]>
      most HTML tags may be used
    ]]>
  
  
  
    
  
    
  

各个标签的具体含义如下:

1. 插件id,类似于 Android 项目的包名,不能和其他插件项目重复,所以推荐使用 com.xxx.yyy 的格式。

2. 插件名称,别人在官方插件市场搜索你的插件时使用的名称。

3. 插件版本号。

4. 插件发布者信息,可以添加邮箱链接。

5. 插件描述信息,在这里可以介绍你的插件内容,支持HTML标签

6. 插件版本变更日志,支持HTML标签

7. 对 IntelliJ IDEA 软件支持本插件版本号, 分为 since-build 最低版本和 until-build 最高版本,两个属性可以任选一或者同时使用,官网有详细介绍 http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/build_number_ranges.html 大体规则为 since-build <= 支持版本 < until-build

8. 自定义扩展,暂时用不到。

9. 具体的插件动作,后面会介绍。

plugin.xml 中填写的配置信息,会在别人在插件库中搜索你的插件的时候展现出来。

 

三、编写插件代码

项目创建好时有一个 src 文件夹,在这个文件夹下写插件的主要代码,主要有以下几种针对插件的特殊文件类型:

  1. GUI Form:表单界面。

  2. Dialog:对话框。

  3. XXXComponent:作用域,其中有分为 Application、Project、Module 分别作用于不同的范围。

  4. Action:处理插件交互行为。

其中最主要的是 Action 类,当我们使用 Android Studio 生成类的 getter 和 setter 方法是也是使用的插件,而生成 getter 和 setter 方法的功能是在菜单栏中的 Code -> Generate -> Getter and Setter选择的。

那么我们自己创建的插件选项在哪里呢?属于哪个菜单呢?

这里在创建 Action 类的时候就可以指定操作入口,Action 的创建的对话框如下图所示:

Android Studio Plugin —— 插件开发的基本流程_第6张图片

然后在弹出的 New Action 界面配置 Action 相关的信息,如下图所示:

Android Studio Plugin —— 插件开发的基本流程_第7张图片

1. Action ID: 动作 ID,推荐用“插件名.XXAction”的格式。

2. Class Name:编写 Action 的类文件名。

3. Name:动作在菜单选项中展示的名字。

4. Description:Action 描述。

5. Groups:定义这个动作选项所属的组,比如 EditMenu 就对应 IDE 菜单栏上的 Edit,CodeMenu 就对应菜单栏上的 Code 。

6. Actions:是当前选中 Groups 下已有的 Action 动作,比如上图示如果我们选择 CodeMenu 就会展示 Code 中已有的几个选项 。

7. Anchor:用来指定动作选项在 Groups 中的位置,Frist 就是最上面、Last 是最下面,也可以设在某个选项的上/下方。

8. Keyboard Shortcuts:调用插件Action的快捷键,可以不填,要注意热键冲突。

创建好 Action 后,会自动在 plugin.xml 配置文件的 actions 标签中新增一个对应的 Action 动作信息,代码如下所示:


    
    
        
    

注意:

  1. 这里的信息我们都可以再次修改,但是 class name 修改时要注意和类文件名匹配。

  2. 可以修改添加多个,即在不同菜单中都可以选择使用。

  3. 同一个 group 下多个 action 的 id 不能重复。

创建好的 Action 类会默认继承抽象类 AnAction,然后实现 actionPerformed 抽象方法,在方法中添加如下代码,让点击这个 Action 的时候弹出一个输入框,代码如下所示:

public class DatabaseGeneratorAction extends AnAction {
​
    @Override
    public void actionPerformed(AnActionEvent e) {
        Project project = e.getData(PlatformDataKeys.PROJECT);
        String text = Messages.showInputDialog(project,
                "Please enter the user name.",
                "Title",
                Messages.getQuestionIcon());
        Messages.showMessageDialog(project,
                "What you have entered is:" + text,
                "Information",
                Messages.getInformationIcon());
    }
}

写好代码后,run 运行项目,此时会自动启动一个新的 IntelliJ IDEA 项目,新运行起来的 IntelliJ IDEA 中就可以看到菜单栏里的 Code 最底部就出现了一个 Database Generator 选项,如下图所示:

Android Studio Plugin —— 插件开发的基本流程_第8张图片

点击 " Database Generator" 就会触发我们编写的功能,如下图所示:

Android Studio Plugin —— 插件开发的基本流程_第9张图片

Android Studio Plugin —— 插件开发的基本流程_第10张图片

为了更加方法的找到插件我们插件的入口,也可以在根目录上新建一个和 Code、Edit 等同级别的 Group ,需要在配置文件里新建一个group,然后指定其添加到 MainMenu 主菜单上,代码如下所示:


    
    
        
        
        
    

这个时候再 run 插件就会发现它单独建立了一个 group,如下图所示:

Android Studio Plugin —— 插件开发的基本流程_第11张图片

但是不建议这样使用,因为如果每一个插件都添加一个 group 在主菜单栏的话,那么主菜单栏就会非常杂乱,所以还是隐藏在二级菜单中比较好一点。

 

五、打包发布

5.1 打包

在 IntelliJ IDEA 顶部主菜单中选择 build -> Prepare Plugin Module "xxx" For Deployment 即可,如下图所示:

Android Studio Plugin —— 插件开发的基本流程_第12张图片

当提示完成后,会在项目根目录下生成一个 XXX.jar 的包,如下图所示:

Android Studio Plugin —— 插件开发的基本流程_第13张图片

这个 jar 包就可以提供给别人使用了。

5.2 发布

IntelliJ 的插件也有一个市场,是官方提供的,可以在平台上发布自己的插件,地址:https://plugins.jetbrains.com/,如果没有账号的请先注册账号,发布插件如下图所示:

Android Studio Plugin —— 插件开发的基本流程_第14张图片

Android Studio Plugin —— 插件开发的基本流程_第15张图片

上传成功将会出现如下页面。

Android Studio Plugin —— 插件开发的基本流程_第16张图片

发布插件需要两个工作日审核时间。

说明: 在打包的时候 plugin.xml 中的内容不能有默认值,而且必须要有标签,实例代码如下:


    com.lx.plugin.database
    Database Generator
    1.0
    lx
    auto generator db code
    initial version 1.0
​
    
    
​
    
    
​
    com.intellij.modules.lang
​
​
    
        
    
​
    
        
        
            
        
    

 

六、安装插件

打开 Android Studio 开始安装插件,安装插件入口为 File -> Settings -> Plugins 有两种方式:

1. 从本地安装插件

这种需要用到插件项目生成的 jar 包,选择 Installed 选项旁边的设置小图标,点击之后在选择 Install plugin from disk ,然后找到jar文件选中OK即可。

Android Studio Plugin —— 插件开发的基本流程_第17张图片

Android Studio Plugin —— 插件开发的基本流程_第18张图片

2. 从插件市场安装

弹出对话框中选 Marketplace ,搜索你自己发布的插件,然后安装即可。

Android Studio Plugin —— 插件开发的基本流程_第19张图片

这里由于我刚刚发布的插件还没有通过审核,所以搜索不出来。

说明:由于插件内容过于简单,有可能通不过审核,所以这里就不在继续跟踪审核结果了。这里重点是将插件开发与打包发布流程描述清楚。

验证结果

我们在 Android Studio 中成功安装好插件之后,在 Code 菜单栏下面成功显示了 Database Generator 了。如下图所示:

Android Studio Plugin —— 插件开发的基本流程_第20张图片

点击 ”Database Generator“ 之后弹出如下页面:

Android Studio Plugin —— 插件开发的基本流程_第21张图片

输入内容之后点击 "OK",弹出如下结果页面:

Android Studio Plugin —— 插件开发的基本流程_第22张图片

到此,说明插件正常在 Android Studio 中使用。

扫描下方二维码关注公众号,获取更多技术干货。

Android Studio Plugin —— 插件开发的基本流程_第23张图片

 

你可能感兴趣的:(android,plugin)