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

简介: 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78112003 本文出自【赵彦军的博客】 一:概述相信大家在使用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 + "!\n 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 , 欢迎关注

相关文章
|
17天前
|
搜索推荐 前端开发 API
探索安卓开发中的自定义视图:打造个性化用户界面
在安卓应用开发的广阔天地中,自定义视图是一块神奇的画布,让开发者能够突破标准控件的限制,绘制出独一无二的用户界面。本文将带你走进自定义视图的世界,从基础概念到实战技巧,逐步揭示如何在安卓平台上创建和运用自定义视图来提升用户体验。无论你是初学者还是有一定经验的开发者,这篇文章都将为你打开新的视野,让你的应用在众多同质化产品中脱颖而出。
40 19
|
17天前
|
JSON Java API
探索安卓开发:打造你的首个天气应用
在这篇技术指南中,我们将一起潜入安卓开发的海洋,学习如何从零开始构建一个简单的天气应用。通过这个实践项目,你将掌握安卓开发的核心概念、界面设计、网络编程以及数据解析等技能。无论你是初学者还是有一定基础的开发者,这篇文章都将为你提供一个清晰的路线图和实用的代码示例,帮助你在安卓开发的道路上迈出坚实的一步。让我们一起开始这段旅程,打造属于你自己的第一个安卓应用吧!
42 14
|
20天前
|
Java Linux 数据库
探索安卓开发:打造你的第一款应用
在数字时代的浪潮中,每个人都有机会成为创意的实现者。本文将带你走进安卓开发的奇妙世界,通过浅显易懂的语言和实际代码示例,引导你从零开始构建自己的第一款安卓应用。无论你是编程新手还是希望拓展技术的开发者,这篇文章都将为你打开一扇门,让你的创意和技术一起飞扬。
|
18天前
|
XML 存储 Java
探索安卓开发之旅:从新手到专家
在数字时代,掌握安卓应用开发技能是进入IT行业的关键。本文将引导读者从零基础开始,逐步深入安卓开发的世界,通过实际案例和代码示例,展示如何构建自己的第一个安卓应用。我们将探讨基本概念、开发工具设置、用户界面设计、数据处理以及发布应用的全过程。无论你是编程新手还是有一定基础的开发者,这篇文章都将为你提供宝贵的知识和技能,帮助你在安卓开发的道路上迈出坚实的步伐。
31 5
|
17天前
|
开发框架 Android开发 iOS开发
安卓与iOS开发中的跨平台策略:一次编码,多平台部署
在移动应用开发的广阔天地中,安卓和iOS两大阵营各占一方。随着技术的发展,跨平台开发框架应运而生,它们承诺着“一次编码,到处运行”的便捷。本文将深入探讨跨平台开发的现状、挑战以及未来趋势,同时通过代码示例揭示跨平台工具的实际运用。
|
18天前
|
XML 搜索推荐 前端开发
安卓开发中的自定义视图:打造个性化UI组件
在安卓应用开发中,自定义视图是一种强大的工具,它允许开发者创造独一无二的用户界面元素,从而提升应用的外观和用户体验。本文将通过一个简单的自定义视图示例,引导你了解如何在安卓项目中实现自定义组件,并探讨其背后的技术原理。我们将从基础的View类讲起,逐步深入到绘图、事件处理以及性能优化等方面。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。
|
18天前
|
搜索推荐 前端开发 测试技术
打造个性化安卓应用:从设计到开发的全面指南
在这个数字时代,拥有一个定制的移动应用不仅是一种趋势,更是个人或企业品牌的重要延伸。本文将引导你通过一系列简单易懂的步骤,从构思你的应用理念开始,直至实现一个功能齐全的安卓应用。无论你是编程新手还是希望拓展技能的开发者,这篇文章都将为你提供必要的工具和知识,帮助你将创意转化为现实。
|
21天前
|
Java 调度 Android开发
安卓与iOS开发中的线程管理差异解析
在移动应用开发的广阔天地中,安卓和iOS两大平台各自拥有独特的魅力。如同东西方文化的差异,它们在处理多线程任务时也展现出不同的哲学。本文将带你穿梭于这两个平台之间,比较它们在线程管理上的核心理念、实现方式及性能考量,助你成为跨平台的编程高手。
|
18天前
|
Java Android开发 开发者
探索安卓开发:构建你的第一个“Hello World”应用
在安卓开发的浩瀚海洋中,每个新手都渴望扬帆起航。本文将作为你的指南针,引领你通过创建一个简单的“Hello World”应用,迈出安卓开发的第一步。我们将一起搭建开发环境、了解基本概念,并编写第一行代码。就像印度圣雄甘地所说:“你必须成为你希望在世界上看到的改变。”让我们一起开始这段旅程,成为我们想要见到的开发者吧!
25 0
|
21天前
|
存储 监控 Java
探索安卓开发:从基础到进阶的旅程
在这个数字时代,移动应用已成为我们日常生活的一部分。对于开发者来说,掌握安卓开发不仅是技能的提升,更是通往创新世界的钥匙。本文将带你了解安卓开发的核心概念,从搭建开发环境到实现复杂功能,逐步深入安卓开发的奥秘。无论你是初学者还是有经验的开发者,这篇文章都将为你提供新的见解和技巧,帮助你在安卓开发的道路上更进一步。
20 0