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 , 歡迎關注


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM