上一期我們已經(jīng)自己動手打造了一套IOC注解框架。如何才能像ButterKnife一樣自動給我們生成代碼呢?所以我們不得不去了解Android Studio的插件開發(fā)了。
我們在開發(fā)的過程中對Android Studio的插件應(yīng)該并不陌生,我們也時常用到比如: GsonFormat:現(xiàn)在大多數(shù)服務(wù)端api都以json數(shù)據(jù)格式返回,而客戶端需要根據(jù)api接口生成相應(yīng)的實(shí)體類,這個插件把這個過程自動化了。 LeakCanary:強(qiáng)烈推薦,幫助你在開發(fā)階段方便的檢測出內(nèi)存泄露的問題,使用起來更簡單方便。
大家可以自己上網(wǎng)去了解很多很多好用的插件,但是在我們的實(shí)際開發(fā)過程中我們肯定碰到過這種情況。項目的很多類里面某些代碼我們可能在版本迭代的時候需要修改,而修改的內(nèi)容基本一致,這個時候是不是可以寫一個插件自動修改代碼。舉一個最簡單的例子,拿Log打印日志來說我們在上線的時候肯定要關(guān)閉Log打印是不是可以寫一個插件把所有Log打印注釋掉,當(dāng)然在實(shí)際的開發(fā)過程中會有Log開關(guān)。 上一期我們是因?yàn)橛X得ButterKnife插件生成的代碼怪怪的,又不能動態(tài)的檢測網(wǎng)絡(luò)所以自己才會動手打造一套IOC注解框架,既然是自己挖的坑說什么也要填上,那么這一期我們就自己來寫一個Android Studio的IOC注解生成插件配套我們上一期的IOC注解框架。
所有分享大綱:2017Android進(jìn)階之路與你同行
視頻講解地址:周六晚上八點(diǎn)
網(wǎng)上資料太多都是你好世界,找了很久也沒有視頻教程,估計很少有人自己寫大部分肯定都是用的別人的。基于這個我們還是老老實(shí)實(shí)先來HelloWorld吧。 android studio的插件開發(fā)必須用IntelliJ IDEA,不能直接在android studio中直接開發(fā),所以首先下載IntelliJ IDEA,(官網(wǎng)下載,直接下載社區(qū)版本就好。下載安裝就不講解了,一路下一步就ok。同樣,IntellJ IDEA 運(yùn)行在java上,還需要在java sdk。當(dāng)然你也可以在視頻講解的云盤里面下載IntelliJ IDEA。
2.1 初次運(yùn)行
啟動 IntelliJ IDEA,首次啟動后出現(xiàn)如下界面,因?yàn)槭切卵b的IntelliJ IDEA,直接選擇最后一個,點(diǎn)擊Ok。我還是貼個圖吧: 
選擇界面風(fēng)格,這個隨意了,我選擇白色,因?yàn)橐曨l講解. 然后點(diǎn)擊Next:Default plugins。 
點(diǎn)擊 Next:Featured plugins。 
點(diǎn)擊 Start using IntelliJ IDEA

點(diǎn)擊Create New PRoject,進(jìn)入你好我也好世界

2.2 初建項目
選擇IntelliJ Platform Plugin,然后點(diǎn)擊右邊的New…按鈕,這個是要配置IntelliJ 的SDK
點(diǎn)擊New后,會彈出對話框,選擇OK,以后再新建項目就不要再干這事了要不然提示你會蒙B 
在彈出的目錄選擇框中一般會自動選擇到你的jdk目錄,如果不是,請自己選擇jdk目錄,建議jdk版本用1.8以上的。 
上一步ok以后會彈出選擇IntelliJ Platform Plun SDK的對話框,一般也會自動選擇對,ok就好 
接著彈出Java SDK版本選擇,選擇1.8 
返回到項目創(chuàng)建窗口,下一步,創(chuàng)建HelloWorld
點(diǎn)擊顏色不一樣的那個按鈕,如果很快可以看到下面這個頁面說明你電腦很不錯,如果要等半天恭喜你該換電腦了,如果實(shí)在慢就耐心等一等。 
下面我們就逐個進(jìn)行介紹,一進(jìn)來自動就會打開plugin.xml這個文件我們就從這個開始。 3.1 plugin.xml
id:插件的ID,保證插件的唯一性,如果上傳倉庫的話。name:插件名稱。version:版本號。description:插件的簡介。change-notes:版本更新信息。extensions:擴(kuò)展組件注冊 。**actions:**Action注冊,比如在某個菜單下增加一個按鈕就要在這注冊,剛剛建的項目目前肯定看不到Action.3.1 新建Action 其他目錄就沒什么好解釋的了,可以自己大概去瀏覽一下,plugin.xml其實(shí)也就是配置一些信息而已,下面這個就比較重要了,我們的插件代碼都是在src中有一種體現(xiàn)形式就是Action。那么我們來新建Action,在src上單擊右鍵 彈出菜單選擇New —Action,創(chuàng)建一個動作。

彈出New Action配置窗口,進(jìn)行配置 
Keyboard Shortcts:快鍵鍵,按住幾個組合鍵它自動會填好
點(diǎn)擊OK,可以看到在plugin.xml的 action節(jié),多了剛才選擇和配置的內(nèi)容,同時打開一個叫.java的文件,就是我們動作的主文件,我們暫時在文件中添加一個消息框顯示代碼(你好世界)
public class HelloWorld extends AnAction { @Override public void actionPerformed(AnActionEvent e) { // 獲取選中內(nèi)容 final Editor mEditor = e.getData(PlatformDataKeys.EDITOR); showPopupBalloon(mEditor, "你好世界", 5); } /** * 顯示dialog * * @param editor * @param result 內(nèi)容 * @param time 顯示時間,單位秒 */ public static void showPopupBalloon(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); } }); }}現(xiàn)在千萬別糾結(jié)代碼,肯定蒙B因?yàn)楹芏嗳斯烙嬁床欢F(xiàn)在只需要知道他是彈出一個你好世界的框框就行。接下來我們可以點(diǎn)擊右上角的綠色三角run起來,大致的效果就是會重新啟動IDE在code菜單里面會出現(xiàn)一個選項,點(diǎn)擊會彈出一個你好世界的框框。我這里就直接生成插件算了,因?yàn)樽罱K是要運(yùn)行到Android Studio里面。
3.2 生成插件Plugin 點(diǎn)擊Build選擇 Prepare Plugin Moudule….打包成jar
![T]ZZA3P{M~FY5@3$B]O0P8B.png](http://s1.VeVb.com/20170206/qvx2kgmtwb524.png)
打包完成后,會在項目結(jié)構(gòu)中看見這個HelloWorld.jar文件。至此打包完畢,注意生成jar的目錄就好,下一步在android studio中安裝這個插件

3.2 安裝插件 安裝插件其實(shí)沒什么好講的了,但是大家平時安裝都是在線的插件,只不過這一次安裝的是本地插件而已。把生成的jar包插件復(fù)制出來放到桌面,然后選擇本地插件安裝:
安裝后重啟Android Studio,可以選擇Code菜單也可以直接按我們設(shè)置的快捷鍵都行,我的快捷鍵沖突了按不了,如果快捷鍵沖突了回過頭再去改一下。

所有分享大綱:2017Android進(jìn)階之路與你同行
視頻講解地址:周六晚上八點(diǎn)
下一期我們會講解Android Studio 插件開發(fā)實(shí)戰(zhàn)篇,像butterKnife的插件一樣配套我們自己IOC注解框架
|
新聞熱點(diǎn)
疑難解答
圖片精選