• Android Studio 插件开发详解一:入门练手


    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78112003
    本文出自【赵彦军的博客】

    一:概述

    相信大家在使用Android Studio的时候,或多或少的会使用一些插件,适当的配合插件可以帮助我们提升一定的开发效率,更加快乐。例如:

    https://github.com/zzz40500/GsonFormat 可以帮助我们从Gson转化为实体类
    https://github.com/avast/android-butterknife-zelezny 可以帮助我们更加方便的使用butterknife
    https://github.com/Skykai521/ECTranslation 可以帮助在IDE里面完成英文->中文的翻译

    其他更多好用的插件详见 Android Studio 常见插件收藏

    有句话叫做授人以鱼不如授人以渔,不能一直跟随着别人的脚步去使用插件了,有必要去学习编写插件,当自己有好的创意的时候,就可以自己实现了。今天的内容就是:自己编写一个Android Studio插件。

    二:前期准备

    在正式动工之前,我们需要做一些准备工作,否则后面的内容难以展开。

    1、 安装 jdk ,配置环境变量。安装过程这里不细说,直接搜索即可。

    2、 你需要了解 groovy 的相关知识,包括 groovy 环境搭建,groovy 开发工具了解,groovy 语法了解,这些不在这里细说,具体的知识点可以参考我的博客 Groovy 使用完全解析

    三:Android Studio Plugin 开发工具

    开发工具我们选择用 IntelliJ IDEA

    下载地址: https://www.jetbrains.com/idea/

    在官网中 IntelliJ IDEA 有两个版本 Ultimate 、Community。Ultimate 是收费版,Community 是免费版。对于收费版有经济能力的可以考虑,但是我们的插件开发用免费版 Community 就可以了。

    IntelliJ IDEA 的安装过程,这里不细说。

    四、新建Plugin Project

    在打开的IntelliJ IDEA 中选择 File | New | Project

    这里写图片描述

    groovy 我们暂时不勾选,点击 Next

    这里写图片描述

    最后输入项目名称确定,点击 finish 完成创建

    五、配置插件项目

    创建好的 Plugin 项目中,会默认生成一个 plugin.xml 的配置文件
    其中可以修改该插件项目的相关配置信息,比如插件名称、插件版本号等,如下图

    这里写图片描述

    各标签意义具体为:

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

    • [ name ] 插件名称,别人在官方插件库搜索你的插件时使用的名称

    • [ version ] 插件版本号

    • [ vendor ] 插件发布者信息,可以添加邮箱链接

    • [ description ] 插件描述信息,在这里可以介绍你的插件内容,支持HTML标签

    • [ change-notes ] 插件版本变更日志,支持HTML标签

    • [ idea-version ] 对IntelliJ IDEA软件支持本插件版本号
      分为since-build最低版本 和 until-build最高版本,两个属性可以任选一或者同时使用
      官网有详细介绍 www.jetbrains.org/intellij/sd…
      大体规则为 since-build <= 支持版本 < until-build

    • [ extensions ] 自定义扩展,暂时用不到

    • [ actions ] 具体的插件动作,后面会介绍

    配置中填写的信息,会在别人搜索你插件的时候展现介绍,在 File | Settings | Plugins 中查看已有插件,或者再点击 Browse respositories 中浏览插件中心里其他人发布的插件。当选中一个插件时,右侧就可以看到plugin.xml中配置的信息了,同样这里也可以进行插件的删除和添加安装操作,每次操作都需要重启软件后才能生效。

    这里写图片描述

    六、开始编写插件

    项目创建好时有一个src文件夹,可以在其中File | New ...新建文件,
    主要有这么几种针对插件的特殊文件类型

    • GUI Form:表单界面
    • Dialog:对话框
    • XXXComponent:作用域类,其中又分为Application、Project、Module 分为作用于不同范围
    • Action:处理插件交互行为的类

    在项目中的 src 目录中,New | Plugin Devkit | Action

    这里写图片描述

    Action的创建的对话框如下:

    这里写图片描述

    • Action ID: 动作ID,推荐用“插件名.XXAction”的格式
    • Class Name:编写Action的类文件名
    • Name:动作在菜单选项中展示的名字
    • Description:动作描述
    • Groups:定义这个动作选项所属的组,比如EditMenu就对应IDE菜单栏上的Edit,CodeMenu就对应菜单栏上的Code
    • Actions:是当前选中Groups下已有的Action动作,比如上图示如果我们选择CodeMenu就会展示Code中已有的几个选项
    • Anchor:用来指定动作选项在Groups中的位置,Frist就是最上面、Last是最下面,也可以设在某个选项的上/下方
    • Keyboard Shortcuts:调用插件Action的快捷键,可以不填,要注意热键冲突

    创建好Action后,会自动在plugin.xml配置文件的actions标签中新增一个对应的Action动作信息。

      <actions>
        <!-- Add your actions here -->
        <action id="TestID" class="com.Test" text="Test" description="Test">
          <add-to-group group-id="EditMenu" anchor="first"/>
          <keyboard-shortcut keymap="$default" first-keystroke="ctrl Q"/>
        </action>
      </actions>
    
    

    注意

    • 这里的信息我们都可以再次修改,但是 class name 修改时要注意和类文件名匹配
    • 可以修改添加多个,即在不同菜单中都可以选择使用
    • 同一个 group下多个 action 的 id 不能重复.

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

    import com.intellij.openapi.actionSystem.AnAction;
    import com.intellij.openapi.actionSystem.AnActionEvent;
    import com.intellij.openapi.actionSystem.PlatformDataKeys;
    import com.intellij.openapi.project.Project;
    import com.intellij.openapi.ui.Messages;
    
    public class Test extends AnAction {
    
        @Override
        public void actionPerformed(AnActionEvent e) {
            // TODO: insert action logic here
            Project project = e.getData(PlatformDataKeys.PROJECT);
            String txt = Messages.showInputDialog(project,
                    "What is your name?",
                    "Input your name",
                    Messages.getQuestionIcon());
            Messages.showMessageDialog(project,
                    "Hello, " + txt + "!
     I am glad to see you.",
                    "Information",
                    Messages.getInformationIcon());
        }
    }
    
    

    写好代码后,run运行项目,此时会自动启动一个新的IntelliJ IDEA项目,这个新项目里就会包含我们刚编写的插件选项了。

    这里写图片描述

    七、打包

    比较简单,直接在顶部主菜单栏中选择 Build | Prepare Plugin Module XXX For Deployment 即可。

    这里写图片描述

    打包前要注意把 plugin.xml 配置文件中的相关信息填写完整。

    这里写图片描述

    打完包后,将会生成 .Jar 包

    这里写图片描述

    类似于安卓打包生产的apk,这个时候你就可以把它丢给别人使用了

    八、Android Studio 测试插件

    在上一章中,我们已经打包好插件 Plugin.jar ,现在我们在 Android Studion 测试一下。

    8.1 安装插件

    File --> Settings --> Plugins --> Install plugin from disk

    这里写图片描述

    8.2 测试插件

    这里写图片描述

    或者按快捷键 Ctrl + Q 启动插件。

    九、上传插件

    IntelliJ的插件也有一个市场,是官方提供的,可以在平台上发布自己的插件
    地址:https://plugins.jetbrains.com/

    打开插件中心,注册好账号,然后选择 Upload Plugin
    将你生成的插件jar包上传,然后选择分类,最后确认完成上传。

    这里写图片描述

    十、参考资料

    【Android Studio Plugin 插件开发教程】https://juejin.im/post/599f7f546fb9a0248c2de496

    下一篇:Android Studio 插件开发详解二:工具类


    个人微信号:zhaoyanjun125 , 欢迎关注

  • 相关阅读:
    2014 I/O归来:Google连接一切
    Android漫游记(4)---.so文件动态调试一例
    Python笔记之面向对象
    Caffe —— Deep learning in Practice
    JAVA学习笔记 -- 数据结构
    UICollectionView——整体总结
    一些优秀的学习网站(Android)
    10个很棒的学习Android 开发的网站
    Android圆形图片不求人,自定义View实现(BitmapShader使用)
    Android图像处理之冰冻效果
  • 原文地址:https://www.cnblogs.com/zhaoyanjun/p/7800696.html
Copyright © 2020-2023  润新知