Android studio外掛開發
前言
使用Android studio或者idea開發的朋友肯定都安裝了許多外掛,比如我們常用的GsonFormat、ButterKnife等,那麼我們如何編寫自己的外掛呢,當然也可以釋出到官網所有人都可以查詢到你開發的外掛,那麼我們這邊文章為大家講解Android studio外掛開發之外掛開發helloworld。
1.下載開發工具
開發studio外掛我們使用的工具是idea,還沒有idea的朋友,可移步之idea官網http://www.jetbrains.com/,下載完成直接安裝即可。
2.新建專案
開啟idea,新建專案,選擇IntelliJ Platform Plugin,第一次新建需要設定sdk的位置,選擇位置即可
點選Next,輸入專案名稱,點選finish等待專案建立完成
專案建立完成後,目錄結構如下所示
接下來,我們主要看plugin.xml中的內容
id即為外掛的id
name為外掛的名稱
version為外掛的版本號
vendor中的內容為你的郵箱以及公司名稱、官網等
這些資訊在使用者下載外掛時都會展示給使用者的
第二部分 如圖
description即為外掛的描述,也就是外掛時幹什麼的,change-notes時產檢更新說明
第三部分 如圖
extensions即為產檢的擴充套件註冊
action就是動作註冊,也就是說我們安裝完這個外掛後,在哪裡使用快捷鍵是什麼,在哪個選單下
3.新建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這個外掛就測試成功了,圖下圖所示:
4.生成jar外掛
我們可以將外掛生成jar
點選build,選中生成外掛,如下圖所示
之後我們可以看到專案目錄下生成了hello.jar,我們在android中選擇plugins選單,選擇本地安裝外掛選擇生成的jar,就可以在android studio中使用我們的外掛了。
那麼我們釋出我們的外掛讓所有使用者都可以使用呢,我們繼續往下看。
5.釋出外掛
釋出外掛可以參照官方文件
http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/publishing_plugin.html
此外,大家肯定也好奇為什麼彈出框那樣寫,其實他也是有自己的一套開發api的,可根據自己需求自行檢視
像一些翻譯或者是已經有的外掛就沒必要按部就班的模仿了,如果大家在開發途中,突然想到如果該有一款**外掛該多好啊,那麼可以和我取得聯絡,讓我們一起創造更加便捷的外掛。
歡迎關注技術公眾號,微訊號搜尋ColorfulCode 程式碼男人
分享技術文章,投稿分享,不限技術種類,不限技術深度,讓更多人因為分享而受益。