Android Studio Plugin 插件開發教程(一) —— 開發你的第一個插件java
Android Studio Plugin 插件開發教程(二) —— 插件SDK中的經常使用對象介紹git
Android Studio Plugin 插件開發教程(三) —— 製做一個自動生成數據庫代碼的插件github
Android Studio Plugin 插件開發教程(四) —— 爲自動生成數據庫代碼的插件添加UIsql
本教程基於官方文檔編寫,原版地址以下
官方文檔 www.jetbrains.org/intellij/sd…數據庫
搭建環境:
下載IntelliJ Idea客戶端並安裝
www.jetbrains.com/idea/downlo…框架
打開IDE後,選擇 File | Project Structure
在配置窗口中點擊 New... 新增SDK,選擇 IntelliJ Platform Plugin SDK
(若是第一次打開IDE,選擇右下角 Configure | Project Defaults | Project Structure 打開配置窗口)
ide
在打開的IntelliJ IDEA 中選擇 File | New | Project,
左側菜單選擇IntelliJ Platform Plugin項目,SDK選擇剛纔新配置的,下一步
其中 Groovy、Python等啥其餘附加的內容無需勾選
最後輸入項目名稱肯定,完成建立
佈局
建立好的Plugin項目中,會默認生成一個 plugin.xml 的配置文件
其中能夠修改該插件項目的相關配置信息,好比插件名稱、插件版本號等,以下圖post
各標籤意義具體爲:
配置中填寫的信息,會在別人搜索你插件的時候展示介紹
在 File | Settings | Plugins 中查看已有插件,或者再點擊Browse respositories中瀏覽插件中內心其餘人發佈的插件
當選中一個插件時,右側就能夠看到plugin.xml中配置的信息了
一樣,這裏也能夠進行插件的刪除和添加安裝操做,每次操做都須要重啓軟件後才能生效
插件是依附於IDE的,爲其提供一些小功能,好比Android Studio中,
Code | Generate | Getter and Setter 這個自動生成get和set方法的,其實就算是個插件
項目建立好時有一個src文件夾,能夠在其中File | New ...新建文件,
主要有這麼幾種針對插件的特殊文件類型
其中最主要的是Action類
以前例子中提到了,生成getter setter方法的功能是在菜單欄中的Code | Generate | Getter and Setter選擇的
那麼咱們本身建立的插件選項在哪裏呢?屬於哪一個菜單呢?
這裏在建立Action類的時候就能夠指定操做入口,Action的建立的對話框以下
建立好Action後,會自動在plugin.xml配置文件的actions標籤中新增一個對應的Action動做信息
<actions>
<!-- Add your actions here -->
<action id="DatabaseGenerator.GenAction" class="DatabaseGenerateAction" text="Database Generator"
description="auto generate db code, such as Table / CRUD sql ...">
<add-to-group group-id="CodeMenu" anchor="last"/>
</action>
</actions>複製代碼
注意
src下建立好的Action類會默認繼承 AnAction,而後實現 actionPerformed 方法,
咱們仿造官方文檔中的例子,在方法中添加以下代碼,讓點擊這個Action的時候彈出一個輸入框
public class DatabaseGeneratorAction extends AnAction {
@Override
public void actionPerformed(AnActionEvent e) {
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項目,這個新項目裏就會包含咱們剛編寫的插件選項了
若是想調試Android代碼,能夠先在IntelliJ中的Project Structure裏配置好Android環境,而後run插件項目運行新的IntelliJ時建一個Android Project就行了
新運行起來的IDE中就能夠看到菜單欄裏的 Code 最底部就出現了一個Database Generator選項
點擊就會觸發咱們編寫的功能
若是你以爲你的插件很差找,也能夠自行在根目錄上新建一個和Code、Edit等同級的group,須要在配置文件裏新建一個group,而後
<actions>
<!-- Add your actions here -->
<group id="BoredreamPlugin.PluginSet" text="BdPlugin" description="the plugin set by boredream">
<add-to-group group-id="MainMenu" anchor="last" />
<action id="DatabaseGenerator.GenAction" class="DatabaseGenerateAction" text="Database Generator" description="A test menu item" />
</group>
</actions>複製代碼
這個時候再run插件就會發現它單獨創建了一個group
可是要慎用~ 畢竟每一個插件都加一個group那主菜單欄就亂死了,不像藏在二級菜單裏會低調的多
(這裏咱們先把整個流程介紹完,更復雜的插件開發會下一篇介紹)
比較簡單,直接在頂部主菜單欄中選擇 Build | Prepare Plugin Module XXX For Deployment便可
打包前要注意把 plugin.xml 配置文件中的相關信息填寫完整
當提示完成後,會在項目根目錄下生成一個 XXX.jar 的包
相似於安卓打包生產的apk,這個時候你就能夠把它丟給別人使用了
不過安卓的apk發佈,一般會有一個應用市場好比Google Play,應用寶啥的
IntelliJ的插件也有一個市場,是官方提供的,能夠在平臺上發佈本身的插件
地址:plugins.jetbrains.com/
打開插件中心,註冊好帳號,而後選擇Upload Plugin
將你生成的插件jar包上傳,而後選擇分類,最後確認完成上傳
此時雖然完成上傳,可是最好要完善一下Plugin Detail信息,方便別人對你的插件有更詳細的瞭解
還要再設置一下插件的支持IDE範圍,不然別人可能在Android Studio插件庫裏搜不到你的plugin!!!
IntelliJ開發的插件是針對全部IntelliJ旗下產品的,而他們之間的插件庫市場是非相通的
因此發佈插件的時候必定要指定你的插件是那些IDE可使用的,好比要支持AndroidStudio
完善Plugin Detail信息的時候,會有一個選項 Supported products 即支持產品範圍
默認是 勾選了「使用插件中的配置裏指定的產品範圍」
這種使用插件項目裏的配置方式,須要你在plugin.xml中添加
不過你也能夠取消勾選,直接在上傳中心這裏設置產品範圍,推薦這種方式~
IntelliJ的倆是默認的,而後咱們再勾選Android Studio,最後save保存更新
打開你經常使用的Android Studio開始安裝使用這些插件吧,方式有兩種
從插件中心直接下載安裝
IDE中選擇 File | Settings | Plugins ,彈出對話框中選 Browse respositories 瀏覽插件庫
搜索你本身發佈的插件,而後安裝~ 安裝完成後重啓Android Studio便可開始使用插件了
從本地安裝插件jar包
這種須要用到插件項目生成的jar包,
選擇Browse respositories選項旁邊的 Install plugin from disk,而後找到jar文件選中OK便可
注意,新發布到市場的插件可能暫時搜不到,有延遲~
好了,介紹結束~
#開始編寫你的第一個插件吧!!!
後續教程還會帶着你們一塊兒開發一個具體的實用插件,敬請期待~
最後安利下本身的插件,自動佈局文件的相關代碼,懶人必備!還不用引入第三方的注入框架!
github.com/boredream/B…
歡迎star和follow