Android Studio插件開發之 基礎入門篇

###1.概述java


上一期咱們已經本身動手打造了一套IOC註解框架。如何才能像ButterKnife同樣自動給咱們生成代碼呢?因此咱們不得不去了解Android Studio的插件開發了。android

咱們在開發的過程當中對Android Studio的插件應該並不陌生,咱們也時經常使用到好比:   GsonFormat:如今大多數服務端api都以json數據格式返回,而客戶端須要根據api接口生成相應的實體類,這個插件把這個過程自動化了。   LeakCanary:強烈推薦,幫助你在開發階段方便的檢測出內存泄露的問題,使用起來更簡單方便。git

你們能夠本身上網去了解不少不少好用的插件,可是在咱們的實際開發過程當中咱們確定碰到過這種狀況。項目的不少類裏面某些代碼咱們可能在版本迭代的時候須要修改,而修改的內容基本一致,這個時候是否是能夠寫一個插件自動修改代碼。舉一個最簡單的例子,拿Log打印日誌來講咱們在上線的時候確定要關閉Log打印是否是能夠寫一個插件把全部Log打印註釋掉,固然在實際的開發過程當中會有Log開關。   上一期咱們是由於以爲ButterKnife插件生成的代碼怪怪的,又不能動態的檢測網絡因此本身才會動手打造一套IOC註解框架,既然是本身挖的坑說什麼也要填上,那麼這一期咱們就本身來寫一個Android Studio的IOC註解生成插件配套咱們上一期的IOC註解框架。github

全部分享大綱:2017Android進階之路與你同行json

視頻講解地址:http://pan.baidu.com/s/1gf40cV5     
###2.你好世界api


網上資料太多都是你好世界,找了好久也沒有視頻教程,估計不多有人本身寫大部分確定都是用的別人的。基於這個咱們仍是老老實實先來HelloWorld吧。   android studio的插件開發必須用IntelliJ IDEA,不能直接在android studio中直接開發,因此首先下載IntelliJ IDEA,(官網下載,直接下載社區版本就好。下載安裝就不講解了,一路下一步就ok。一樣,IntellJ IDEA 運行在java上,還須要在java sdk。固然你也能夠在視頻講解的雲盤裏面下載IntelliJ IDEA。bash

2.1 初次運行markdown

啓動 IntelliJ IDEA,首次啓動後出現以下界面,由於是新裝的IntelliJ IDEA,直接選擇最後一個,點擊Ok。我仍是貼個圖吧: 網絡

選擇界面風格,這個隨意了,我選擇白色,由於要視頻講解. 而後點擊Next:Default plugins。 框架

428839-42e59c45a957336a.png

點擊 Next:Featured plugins。

點擊 Start using IntelliJ IDEA

點擊Create New Project,進入你好我也好世界

2.2 初建項目

選擇IntelliJ Platform Plugin,而後點擊右邊的New...按鈕,這個是要配置IntelliJ 的SDK

   點擊New後,會彈出對話框,選擇OK,之後再新建項目就不要再幹這事了要否則提示你會蒙B

在彈出的目錄選擇框中通常會自動選擇到你的jdk目錄,若是不是,請本身選擇jdk目錄,建議jdk版本用1.8以上的。

上一步ok之後會彈出選擇IntelliJ Platform Plun SDK的對話框,通常也會自動選擇對,ok就好

接着彈出Java SDK版本選擇,選擇1.8

返回到項目建立窗口,下一步,建立HelloWorld

   點擊顏色不同的那個按鈕,若是很快能夠看到下面這個頁面說明你電腦很不錯,若是要等半天恭喜你該換電腦了,若是實在慢就耐心等一等。

###3.初次掃盲


下面咱們就逐個進行介紹,一進來自動就會打開plugin.xml這個文件咱們就從這個開始。      3.1 plugin.xml

  • **id:**插件的ID,保證插件的惟一性,若是上傳倉庫的話。
  • **name:**插件名稱。
  • **version:**版本號。
  • **description:**插件的簡介。
  • **change-notes:**版本更新信息。
  • **extensions:**擴展組件註冊 。
  • **actions:**Action註冊,好比在某個菜單下增長一個按鈕就要在這注冊,剛剛建的項目目前確定看不到Action.

3.1 新建Action      其餘目錄就沒什麼好解釋的了,能夠本身大概去瀏覽一下,plugin.xml其實也就是配置一些信息而已,下面這個就比較重要了,咱們的插件代碼都是在src中有一種體現形式就是Action。那麼咱們來新建Action,在src上單擊右鍵 彈出菜單選擇New ---Action,建立一個動做。

彈出New Action配置窗口,進行配置

  • **ActionID:**表明該Action的惟一的ID
  • **ClassName:**類名
  • **Name:**插件在菜單上的名稱
  • **Description:**對這個Action的描述信息
  • **Groups:**定義這個菜單選項出現的位置咱們選擇的是Code菜單,右邊的Anchor是選擇該選項出現的位置,默認First即最頂部。
  • **Keyboard Shortcts:**快鍵鍵,按住幾個組合鍵它自動會填好

點擊OK,能夠看到在plugin.xml的 action節,多了剛纔選擇和配置的內容,同時打開一個叫.java的文件,就是咱們動做的主文件,咱們暫時在文件中添加一個消息框顯示代碼(你好世界)

public class HelloWorld extends AnAction {

    @Override
    public void actionPerformed(AnActionEvent e) {
        // 獲取選中內容
        final Editor mEditor = e.getData(PlatformDataKeys.EDITOR);
        showPopupBalloon(mEditor, "你好世界", 5);
    }


    /**
     * 顯示dialog
     *
     * @param editor
     * @param result 內容
     * @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);
            }
        });
    }
}
複製代碼

如今千萬別糾結代碼,確定蒙B由於不少人估計看不懂,如今只須要知道他是彈出一個你好世界的框框就行。接下來咱們能夠點擊右上角的綠色三角run起來,大體的效果就是會從新啓動IDE在code菜單裏面會出現一個選項,點擊會彈出一個你好世界的框框。我這裏就直接生成插件算了,由於最終是要運行到Android Studio裏面。

3.2 生成插件Plugin      點擊Build選擇 Prepare Plugin Moudule....打包成jar

![T]ZZA3P{M~FY5@3$B]O0P8B.png](http://upload-images.jianshu.io/upload_images/4314397-8ef02c338126c1b5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

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

3.2 安裝插件   安裝插件其實沒什麼好講的了,可是你們平時安裝都是在線的插件,只不過這一次安裝的是本地插件而已。把生成的jar包插件複製出來放到桌面,而後選擇本地插件安裝:

     安裝後重啓Android Studio,能夠選擇Code菜單也能夠直接按咱們設置的快捷鍵都行,個人快捷鍵衝突了按不了,若是快捷鍵衝突了回過頭再去改一下。

GIF.gif

全部分享大綱:2017Android進階之路與你同行

視頻講解地址:http://pan.baidu.com/s/1gf40cV5

下一期咱們會講解Android Studio 插件開發實戰篇,像butterKnife的插件同樣配套咱們本身IOC註解框架

相關文章
相關標籤/搜索