国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android Studio插件開發(fā)之 - 入門篇

2019-11-09 17:51:01
字體:
供稿:網(wǎng)友

1.概述


  上一期我們已經(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)     

2.你好世界


  網(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。我還是貼個圖吧: 428839-f5d66baaeb1fb66d.png

  選擇界面風(fēng)格,這個隨意了,我選擇白色,因?yàn)橐曨l講解. 然后點(diǎn)擊Next:Default plugins。 428839-42e59c45a957336a.png

  點(diǎn)擊 Next:Featured plugins。 428839-220664771b89f6b2.png

  點(diǎn)擊 Start using IntelliJ IDEA

428839-4d6a322b3727e662.png

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

428839-92aa6d4ba9bb788a.png

2.2 初建項目

  選擇IntelliJ Platform Plugin,然后點(diǎn)擊右邊的New…按鈕,這個是要配置IntelliJ 的SDK 428839-551016209b90921f.png      點(diǎn)擊New后,會彈出對話框,選擇OK,以后再新建項目就不要再干這事了要不然提示你會蒙B 428839-3a42088ac4a02c98.png

  在彈出的目錄選擇框中一般會自動選擇到你的jdk目錄,如果不是,請自己選擇jdk目錄,建議jdk版本用1.8以上的。 428839-dd7aa7fdc6b7c1b5.png

  上一步ok以后會彈出選擇IntelliJ Platform Plun SDK的對話框,一般也會自動選擇對,ok就好 428839-13229052735560b6.png

  接著彈出Java SDK版本選擇,選擇1.8 428839-e3b7b48731f442a8.png

  返回到項目創(chuàng)建窗口,下一步,創(chuàng)建HelloWorld

9}9{JWISVA`@Z)EWX]E3QAR.png      點(diǎn)擊顏色不一樣的那個按鈕,如果很快可以看到下面這個頁面說明你電腦很不錯,如果要等半天恭喜你該換電腦了,如果實(shí)在慢就耐心等一等。 KO9SB_H1QT82){1_{I(8Q68.png

3.初次掃盲


  下面我們就逐個進(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)建一個動作。

A{W)_H8Y)YBP@T4T))VD)VV.png

  彈出New Action配置窗口,進(jìn)行配置

ActionID:代表該Action的唯一的IDClassName:類名Name:插件在菜單上的名稱Description:對這個Action的描述信息Groups:定義這個菜單選項出現(xiàn)的位置我們選擇的是Code菜單,右邊的Anchor是選擇該選項出現(xiàn)的位置,默認(rèn)First即最頂部。

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

  打包完成后,會在項目結(jié)構(gòu)中看見這個HelloWorld.jar文件。至此打包完畢,注意生成jar的目錄就好,下一步在android studio中安裝這個插件

3.2 安裝插件   安裝插件其實(shí)沒什么好講的了,但是大家平時安裝都是在線的插件,只不過這一次安裝的是本地插件而已。把生成的jar包插件復(fù)制出來放到桌面,然后選擇本地插件安裝:

QXQF094Y}G8VV47]Y`IZHR0.png      安裝后重啟Android Studio,可以選擇Code菜單也可以直接按我們設(shè)置的快捷鍵都行,我的快捷鍵沖突了按不了,如果快捷鍵沖突了回過頭再去改一下。

GIF.gif

所有分享大綱:2017Android進(jìn)階之路與你同行

視頻講解地址:周六晚上八點(diǎn)

下一期我們會講解Android Studio 插件開發(fā)實(shí)戰(zhàn)篇,像butterKnife的插件一樣配套我們自己IOC注解框架


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 巩义市| 林州市| 石门县| 鱼台县| 广宗县| 靖宇县| 微博| 梁平县| 泽普县| 尚义县| 上栗县| 商都县| 大邑县| 内江市| 福鼎市| 衡东县| 横山县| 大姚县| 丰顺县| 志丹县| 长宁县| 桐乡市| 邢台县| 武宁县| 布尔津县| 遂平县| 师宗县| 泾川县| 遵义市| 沂水县| 手游| 老河口市| 阿瓦提县| 岫岩| 沁水县| 嘉黎县| 平果县| 昌乐县| 平塘县| 荆州市| 淳化县|