IDEA外掛程式開發

2022-09-12 04:09:11 字數 3615 閱讀 8707

一、概述

相信大家在使用android studio的時候,或多或少的會使用一些外掛程式,適當的配合外掛程式可以幫助我們提公升一定的開發效率,更加快樂。例如:

可以幫助我們從gson轉化為實體類

可以幫助我們更加方便的使用butterknife

可以幫助在ide裡面完成英文->中文的翻譯

有句話叫做授人以魚不如授人以漁,不能一直跟隨著別人的腳步去使用外掛程式了,有必要去學習編寫外掛程式,當自己有好的創意的時候,就可以自己實現了。so,本文的內容是:

為了文章有一定的流暢性,決定以ectranslation作為編寫android studio外掛程式的例子。

我為什麼選這個呢?因為創意好,實用並且**簡單。

貼乙個今天這個外掛程式的最終效果圖:

二、準備工作

首先需要安裝intellij idea

然後安裝,執行,點選create new project:

image

按照上圖進行選擇,如果沒有sdk,則點選new新建乙個即可。

然後點選next,輸入專案名稱選擇位置,就可以點選finish了。

專案的結構如下:

image

src目錄下主要用於存放我們編寫的**。

這樣準備工作就結束了~~

三、編碼

(1) 關鍵知識

編碼實際上核心的乙個類叫做anaction,可以直接選擇new->action,如下圖:

image

需要填寫的屬性如下:

actionid:代表該action的唯一的id,一般的格式為:pluginname.id

classname:類名

name:就是最終外掛程式在選單上的名稱

description:對這個action的描述資訊

然後往下,選擇這個action即將存在的位置:

我們選擇的是editmenu,右側選擇為first,即editmenu下的第乙個,效果如圖:

image

再往下就是制定快捷鍵了~~

都填寫完成就可以點選ok了。

點選ok之後,可以看到為我們生成了下類:

public class translateaction extends anaction

}此外我們剛才填寫的資訊,也在plugin.xml中完成了註冊,大家可以進去看一眼,actions的標籤中,

當我們點選選單的時候,就回觸發actionperformed()方法。

那麼這麼看,我們在這個方法中只要完成三件事:

public void actionperformed(anactionevent event)

預期效果是點選tranlate選單,或者按快捷鍵會彈出乙個提示對話方塊。

那麼點選run:

image

然後它會預設啟動乙個新的intellij idea的介面,你可以隨便新建乙個專案,進入以後,你會發現edit下多了乙個translate選單,點選即可彈出我們設定的對話方塊:

image

ok,測試通過就放心了~

獲得當前選中的單詞

呼叫相關api得到單詞的意思

通過乙個類似於popupwindow來顯示

剩下的就是功能性的api了~

(2) 獲得當前選中的單詞

@override

public void actionperformed(anactionevent e)

selectionmodel model = meditor.getselectionmodel();

final string selectedtext = model.getselectedtext();

if (textutils.isempty(selectedtext))

}是不是覺得api很陌生,恩,我也覺得很陌生,關於api這裡介紹其實沒什麼意義,本文主要目的是讓大家對自定義外掛程式有個類helloworld的認識,至於外掛程式裡面的**涉及到的api等到大家需要編寫外掛程式的時候,再詳細學習就好了,現在就不要浪費精力記憶這些東西了。

上面的**就是獲得選中的文字,通過乙個editor,然後拿到selectionmodel,再拿到selectedtext,從字面上還是蠻好理解的。

拿到選中的文字之後,應該就是去查詢該單詞的意思了,查詢呢,ectranslation用的是youdao的open sdk,其實也很簡單,就是拼接乙個url,然後等著解析返回資料就好了。

大家如果想要做單詞翻譯,可以看下,非常簡單。

涉及到的**:

});httputils就不貼了,就是直接開了個執行緒,通過httpurlconnection去訪問網路,大家的專案中或者通過搜尋引擎,**一搜一堆。

baseurl就是有道的url,加上我們選中的單詞就是完整的url了,然後通過http訪問,callback**出返回的字串,這裡返回的是json型別的字串。

baseuri是:

name

我們根據返回的json字串生成了乙個類translation;

然後通過gson轉化為translation物件。

ps:拿著上面的baseurl後面跟乙個任何單詞,直接訪問瀏覽器就能看到返回的json資料了,這裡大家天天寫介面,類似的步驟比我肯定還熟悉。

好了,有了返回的資料以後,直接通過乙個類似popupwindow展現即可。

(4)通過乙個類似於popupwindow來顯示

涉及到的**:

簡單看一下,是通過建立乙個jbpopupfactory,然後通過它建立乙個htmltextballoonbuilder,通過這個builder去設定各種引數,最後show。

ok,對於乙個入門的例子,不要太強求對外掛程式中這些api的掌握,還是那句話,等需要寫了再去查,需要什麼功能,哪怕到對應的外掛程式中去copy原始碼都可以,當然也有文件:

這樣**寫完了,先測試一下,點選run,然後看效果~

我們這裡肯定是測試沒問題的,效果圖就是開始的那個gif.

如果沒有問題,就可以去部署和發布我們的外掛程式給別人去使用了。

這兩部也非常簡單。

image

在裡面填寫id,name,version等。。。記得隨便填一下~

然後,點選build->prepare plugin…,如下圖:

image

會在專案的根目錄生成乙個jar,如圖:

image

這個jar就可以用於安裝了。

(2)安裝外掛程式

開啟andorid studio,選擇preferences -> plugins -> install plugin from disk,選擇我們生成的jar即可,如圖:

image

點選安裝,然後重啟即可。

好了,重啟完成就可以在edit下看到translate選單了,選中單詞,點選選單或者快捷鍵都能實現翻譯了。

當然,還可以把我們的外掛程式發布到倉庫,支援在plugin中搜尋安裝,參考:

就是註冊賬號,提交jar,填寫資訊,等著審核就可以了。

五、總結

終於到了總結的環節,這麼長的文章其實編寫外掛程式總結起來就幾句話。

本文由部落格**一文多發等運營工具平台 openwrite 發布

idea 外掛程式開發

最近使用idea開開發了,所以閒的無聊研究一下idea裡面的外掛程式 public class codepintaction extends anaction 回到主線程執行 在網咯互動的時候 override public void run messages.showmessagedialog p...

idea 外掛程式開發 Dialogs

2.預設 dialog 總結dialogs 對話方塊 在圖形使用者介面中,對話方塊 又稱對話方塊 1 是一種特殊的視窗,用來在使用者介面中向使用者顯示資訊,或者在需要的時候獲得使用者的輸入響應。之所以稱之為 對話方塊 是因為它們使計算機和使用者之間構成了乙個對話 或者是通知使用者一些資訊,或者是請求...

idea 外掛程式推薦

外掛程式名稱 外掛程式介紹 官網位址 key promoter 快捷鍵提示 camelcase 駝峰式命名和下劃線命名交替變化 checkstyle idea 樣式檢查 findbugs idea bug 檢查 statistic 統計 jrebel plugin 熱部署codeglance 在編輯...