使用Android studio或者idea開發的朋友確定都安裝了許多插件,好比咱們經常使用的GsonFormat、ButterKnife等,那麼咱們如何編寫本身的插件呢,固然也能夠發佈到官網全部人均可以查找到你開發的插件,那麼咱們這邊文章爲你們講解Android studio插件開發之插件開發helloworld。html
開發studio插件咱們使用的工具是idea,尚未idea的朋友,可移步之idea官網http://www.jetbrains.com/,下載完成直接安裝便可。 android
打開idea,新建項目,選擇IntelliJ Platform Plugin,第一次新建須要設置sdk的位置,選擇位置便可
api
點擊Next,輸入項目名稱,點擊finish等待項目建立完成
bash
項目建立完成後,目錄結構以下所示
ide
接下來,咱們主要看plugin.xml中的內容
工具
id即爲插件的id開發工具
name爲插件的名稱測試
version爲插件的版本號ui
vendor中的內容爲你的郵箱以及公司名稱、官網等idea
這些信息在用戶下載插件時都會展現給用戶的
description即爲插件的描述,也就是插件時幹什麼的,change-notes時產檢更新說明
extensions即爲產檢的擴展註冊 action就是動做註冊,也就是說咱們安裝完這個插件後,在哪裏使用快捷鍵是什麼,在哪一個菜單下
右擊src目錄選擇新建(建議先新建包在包內新建action避免出現null的錯誤),選中action(idea版本不一樣action的位置可能不一樣),我使用的是2016,以下圖:
以後填寫先關配置信息,groups這裏選擇的是code,也就是插件出如今code菜單下
設置快捷鍵的時候,儘量不和經常使用的快捷鍵衝突,個人設置以下圖所示:
設置完成後點擊ok
咱們首先在Action中的代碼中編寫以下代碼,讓選中文字以後彈出dialo,代碼以下:
@Override
public void actionPerformed(AnActionEvent e) {
// TODO: insert action logic here
// 獲取選中內容
final Editor mEditor = e.getData(PlatformDataKeys.EDITOR);
showDialog(mEditor, "這是一個測試插件", 5);
}
public static void showDialog(final Editor editor, final String result, final int time) {
ApplicationManager.getApplication().invokeLater(new Runnable() {
public void run() {
JBPopupFactory factory = JBPopupFactory.getInstance();
factory.createHtmlTextBalloonBuilder(result, null, new JBColor(new Color(116, 214, 238), new Color(76, 112, 117)), null)
.setFadeoutTime(time * 1000)
.createBalloon()
.show(factory.guessBestPopupLocation(editor), Balloon.Position.below);
}
});
}
複製代碼
接下來咱們點擊run按鈕,會自動打開一個新的idea窗口,咱們在生成的新的idea窗口中,選中code菜單,咱們看到在第一行有一個hello的按鈕就是咱們的插件。 咱們選中點擊hello,能夠看到彈出一個小框框,顯示出了信息,那麼說明helloworld這個插件就測試成功了,圖下圖所示:
咱們能夠將插件生成jar
點擊build,選中生成插件,以下圖所示
以後咱們能夠看到項目目錄下生成了hello.jar,咱們在android中選擇plugins菜單,選擇本地安裝插件選擇生成的jar,就能夠在android studio中使用咱們的插件了。 那麼咱們發佈咱們的插件讓全部用戶均可以使用呢,咱們繼續往下看。
發佈插件能夠參照官方文檔
www.jetbrains.org/intellij/sdk/docs/basics/getting_started/publishing_plugin.html
此外,你們確定也好奇爲何彈出框那樣寫,其實他也是有本身的一套開發api的,可根據本身需求自行查看 www.jetbrains.org/intellij/sd…
像一些翻譯或者是已經有的插件就不必循序漸進的模仿了,若是你們在開發途中,忽然想到若是該有一款**插件該多好啊,那麼能夠和我取得聯繫,讓咱們一塊兒創造更加便捷的插件。