自己动手实现一个Android Studio插件

在使用Android Studio开发的时候,大部分人都会使用一些插件来提高开发效率,例如我们所熟知的butternife,selector,,GsonFormat等,这些分别从不同的原理来帮助我们提高开发效率,也美化了我们的代码结构。

既然插件有这么多好处,我们就来自己实现一个简单的吧,这里为了方便讲解我们,我们就以Android tintBar作为例子来讲解。Android Studio是基于Intellij IDEA,网上查找后发现好像可以在Intellij IDEA中进行插件开发,Android Studio中new project是没有plugin选项的。

软件环境:Java 8+intellij Idea(没有的请到Intellij IDEA下载),https://www.jetbrains.com/idea/#chooseYourEdition

1,新建一个项目,File->New Project,如果你是第一次创建的时候,需要为项目制定 sdk,点击右边的new按钮就好了,它会自己为你找到sdk的索引。

项目建好后如下:

说明:其中plugin.xml为项目的配置说明文件,相当于Android项目中的AndroidManifest.xml。

<idea-plugin version="2">
  <id>com.your.company.unique.plugin.id</id>
  <name>Plugin display name here</name>
  <version>1.0</version>
  <vendor email="[email protected]" 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>

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

</idea-plugin>

到此,我们的环境就 搭建完成了。接下来我们新建编写插件代码。

2,编写插件

在新建的包下建一个Action类。

说明:Action ID:标识ID,就像Android中xml的组件@+id 
           Class Name:生成的类名 
           Name、Description:菜单选项的名字和描述 
          Groups:定义这个菜单选项出现的位置,比如我图中设置的当点击菜单栏Edit时,第一项会出现test的选项,右边的Anchor是选择该选项出现的位置,默认First即最顶部。

系统为我们生成的Action代码:

public class PluginAction extends AnAction {

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

而在plugin.xml中也多了一段代码:

<action id="PluginID" class="PluginAction" text="PluginAction" description="PluginTest">
      <add-to-group group-id="CodeMenu" anchor="first"/>
      <keyboard-shortcut keymap="$default" first-keystroke="alt Q"/>
    </action>

这样就是实现当用户点击PluginAction菜单或者按快捷键alt +Q后的就能实现功能了。

3,创建Dialog

和Action的创建一样,Dialog也可以直接在在src或者包名下右键->new ->Dialog,新建好后是这样的。

然后我们点开图形化界面。

然后我们为当点击ok按钮的时候绑定事件。

 PluginDialog dialog = new PluginDialog();
        dialog.setVisible(true);

4,编写一个Configurable功能

当你的插件需要或允许用户自定义一些配置时,比如我的插件允许用户定义自己想要生成的代码风格,只需用户打开Settings->other settings就会看到一个配置界面。

由于版本差异,我也没找到,这个后面补上。

5,插件部署

打开项目中的plugin.xml文件,填写相关的信息,这些信息会展示在插件库中,如下图所示。

点击Bulid菜单下的Prepare Plugin按钮会在项目的根目录生成jar插件,如下图所示

6,安装插件

打开Android sutdion,File -> Settings -> Plugins -> Install plugin from disk。

7,发布插件

如果你想把你的插件提供给大家使用,还可以把插件发布到仓库,进入JetBrains官网,填写发布的相关信息,提交插件jar包,等待审核就可以了。

时间: 11-17

自己动手实现一个Android Studio插件的相关文章

学会编写Android Studio插件 别停留在用的程度了

本文为原创,授权公众号:hongyangAndroid独家代理原创发布. 转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/51548272: 本文出自:[张鸿洋的博客] 一.概述 相信大家在使用Android Studio的时候,或多或少的会使用一些插件,适当的配合插件可以帮助我们提升一定的开发效率,更加快乐.例如: https://github.com/zzz40500/GsonFormat 可以帮助我们从Gson转化为实体

优秀的 Android Studio 插件

转自:http://www.codeceo.com/article/8-android-studio-plugins.html Android Studio是目前Google官方设计的用于原生Android应用程序开发的IDE.基于JetBrains的IntelliJ IDEA,这是Google I/O 2013第一个宣布的作为Eclipse的继承者,深受广大Android社区的欢迎.在经过漫长的测试阶段后,最终版本于去年12月发布. Android Studio是一个功能全面的开发环境,装备了

Android Studio插件安装及使用Genymotion模拟器

Android Studio插件安装及使用Genymotion模拟器 Android Studio自带的模拟器速度已经比Eclipse插件的快一点了,但是还不够暴力,不够爽.现在来说说最暴力的Genymotion模拟器如何结合AS使用.首先上Genymotion官网下载安装Genymotion,同时你需要在Genymotion官网官网上注册一个账号,这样你才能正常的使用Genymotion. 进入AS的Settings界面左侧找到Plugins,点击下图箭头Button(也就是在线安装): 顺便

最完整Android Studio插件整理 (转)

转自:http://blog.csdn.net/alpha58/article/details/62881144 现在Android的开发者基本上都使用android Studio进行开发(如果你还在使用eclipse那也行,毕竟你乐意怎么样都行).使用好Android Studio插件能大量的减少我们的工作量. 1.GsonFormat 快速将json字符串转换成一个JavaBean,免去我们根据json字符串手写对应javaBean的过程. 使用方法:快捷键Alt+S也可以使用Alt+Ins

Android studio 插件之 GsonFormat (自己主动生成javabean)

概述 相信大家在做开发的过程中都写过非常多的javabean ,非常多情况下 都是一个列表数据就是一个单独的javabean.假设大家自己敲的话费时费力 还非常easy敲错. 今天给大家推荐一个插件 GsonFormat  这个插件就是能够让我们直接将服务端返回的json转化为实体类.Android studio和idea都有, eclipse我没有试过. 大家能够找找有没有. 操作步骤 第一步  下载插件 下载插件的过程我前面有一篇博客已经有具体步骤 Android Studio插件之sexy

推荐几款实用的Android Studio 插件

推荐几款实用的Android Studio 插件 泡在网上的日子 发表于 2015-10-09 10:47 第 17453 次阅读 插件,Android Studio 10 编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android知识.前端.后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过! 原文出处:http://www.jianshu.com/p/6f5f818afe4b 1.android-butterknife-ze

Android Studio插件整理

现在Android的开发者基本上都使用Android Studio进行开发(如果你还在使用eclipse那也行,毕竟你乐意怎么样都行).使用好Android Studio插件能大量的减少我们的工作量. 1.GsonFormat 快速将json字符串转换成一个Java Bean,免去我们根据json字符串手写对应Java Bean的过程. 使用方法:快捷键Alt+S也可以使用Alt+Insert选择GsonFormat 2.Android ButterKnife Zelezny 配合ButterK

Android studio 插件之 GsonFormat (自动生成javabean)

概述 相信大家在做开发的过程中都写过很多的javabean ,很多情况下 都是一个列表数据就是一个单独的javabean,如果大家自己敲的话费时费力 还很容易敲错. 今天给大家推荐一个插件 GsonFormat  这个插件就是可以让我们直接将服务端返回的json转化为实体类,Android studio和idea都有, eclipse我没有试过.大家可以找找有没有. 操作步骤 第一步  下载插件 下载插件的过程我前面有一篇博客已经有详细步骤 Android Studio插件之sexy edito

Android Studio 插件 Statistic

Android Studio插件的使用确实给我们的开发带来了很多便利,很多的插件也是应出不穷,下面主要介绍一个不经常使用的插件-Statistics. Android Studio 是没有提提供统计代码全部行数的功能的,但是对于开发者来说,这个功能确实必备的,Statistic统计代码行数非常方便,也很详细. 1,首先肯定是将插件下载下来,下载地址:https://plugins.jetbrains.com/plugin/4509 2,下载下来之后我们将插件安装到AS上面: 点击设置小按钮: 进