返回

AndroidStudio插件开发入门

2022-12-05 by 符乃辉

环境配置

在开发插件之前,要先下载正确的开发工具,需要在JetBrain官网中下载Intellij IDEA下载地址

这里使用的开发工具是IntelliJ IDEA而不是Android Studio,因为AS是基于IntelliJ为模版开发的,IDE插件必须通过IntelliJ开发、发布,再安装到Android Studio中才能使用。

创建工程

创建工程有两种方式

通过IDEA直接创建

  1. 通过File—>New—>Project

    image

  2. 配置项目信息

    image

完成上面两步就生成了IDEA的插件项目

这种方式创建的项目比较干净,里面没有多余的东西。同时,因为没有其他的东西,也就意味着我们要自己一点点的添加我们需要的库或则其他的东西。

导入GitHub模版

  1. 打开github模版地址

  2. 点击Use this template,然后选择“Create a new template”

    image

    会将模板项目保存在你的GitHub仓库中

  3. clone项目到本地,导入IDEA中即可。

  4. 解决运行报错(不一定会出现)

    image

    解决方式,注释掉build.gradle.kts内部分代码

    image

这种方式导入的项目会帮我们把一些基础的库添加进来,但不止基础库,还有一些其他的乱七八糟的,没有插件开发基础的话,看起来会比较懵,还有最难受的一点就是,导入的项目你直接运行不一定能跑起来,解决报错问题,可能会浪费不少时间。

所以,没有基础的话,建议选择第一种方式,直接在IDEA中新建项目,自己一点点的加依赖,基础也会打的牢固点。

项目配置

这里就以第一种方式创建的项目来介绍配置文件,主要的配置文件是build.gradle + plugin.xml

build.gradle

因为build.gradle和Android工程中的构建文件非常类似,这里只解释Android中没有的配置。

1
2
3
4
5
intellij {
version '2020.1.4' // 版本和localPath只能设置一个,否则会报错
localPath '/Applications/Android Studio.app/Contents'
plugins = ['Kotlin','android','git4idea']
}

注意:localPath '/Applications/Android Studio.app/Contents'在Mac上运行会报错,需要在设置中为IDEA打开“完全的磁盘访问权限”,如下图

image

plugin.xml

在resource文件夹下可以找到plugin.xml文件,这个文件中可以配置我们插件的各项属性,核心功能是注册我们插件包含的components和service(功能类实现后还需要在这里进行注册才能使用,类似在AndroidManifest.xml中声明Activity和Service)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<idea-plugin>
...
<depends>com.intellij.modules.platform</depends>
<depends>org.jetbrains.android</depends>
<depends>com.intellij.modules.androidstudio</depends>

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

<actions>
<!-- Add your actions here -->
</actions>

</idea-plugin>

IDE插件常用功能介绍

Action

Actions官方介绍: The system of actions allows plugins to add their own items to IDEA menus and toolbars. An action is a class, derived from the AnAction.

Actions是用户调用插件功能最常见的方式,如下图的工具目录是开发者经常用到的,里面所有的可选项都是一个Action,可以进一步展开的则是Action Group。

image

如何创建Action
运行插件

运行的时候可能会遇到一些错误,可能遇到的问题: Caused by: java.lang.ClassNotFoundException: xxx  PluginClassLoade。这种错误出现的原因有两种:

  1. 项目Java版本和环境变量的版本不匹配。解决方式就是在gradle中指定版本

    1
    2
    3
    4
    java {
    sourceCompatibility = JavaVersion.VERSION_11
    targetCompatibility = JavaVersion.VERSION_11
    }
  2. Java文件放在了Kotlin文件夹内。解决方式就是放在Java文件夹。

运行成功后,就可以看到我们Action显示在指定的位置了

image

更多

Action只是插件中的一小部分,作为讲解插件入门的部分再合适不过了,除了Action还有向导程序WizardTool WindowsUI创建工具、数据持久化等。

插件打包与安装

参考资料