本文轉載地址:http://jiajixin.cn/2015/10/11/android-studio-plugin-dev/?url_type=39&object_type=webpage&pos=1html
很早就想開發個Android Studio的插件了,原本想擼個清理無用資源的,但Android項目使用Gradle構建後,Lint檢測出來的內容有所變化,不是很好判斷要清理的資源,而且開啓shrinkResources選項能夠輕鬆的完成,因此放棄了。正好最近公司有個需求,能夠作成個插件一鍵搞定,花了一天半的時間就搞定了。android
Android Studio基於IntelliJ IDEA開發,而IntelliJ IDEA是捷克軟件公司JetBrains的做品,JetBrains成立十五年,作了不少語言的IDE,碩果累累,甚至還設計了Kotlin語言。web
Android Studio自身不具有開發插件的功能,因爲Android Studio基於IntelliJ IDEA,因此能夠爲IntelliJ IDEA開發插件,一樣能夠用在Android Studio上。android-studio
IntelliJ IDEA插件開發的官方文檔能夠看這裏(http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started.html),須要下載IntelliJ IDEA,在IntelliJ IDEA上開發,方便調試的話須要下載源代碼。大多數插件可能添加個action,再加點圖形界面就差很少了,界面就是Swing那一套,當年寫了那麼多Swing程序,沒想到如今還用的上。IntelliJ IDEA的API不少,可能很難都去讀,用到什麼現查吧,大多數直接用JDK就能夠了。若是有些地方不太清楚的話,能夠去Github上看看一些開源的插件是怎麼搞的,比着葫蘆畫瓢估計也夠用了。url
插件開發中遇到一些瑣碎的東西搞不清楚,文檔也不是很全,最終基本上也都找到解決方案,列幾個Tips吧:spa
Toolbar圖標插件
plugin.xml中的action能夠設置icon屬性,但若把圖片放在普通路徑下會提示找不到,看到文檔說放在固定目錄下,但貌似也不起做用,最終放在out>production>project
下才能夠,要知道這個目錄下都是一些編譯好的class文件,直接放在這也是醉了。設計
Dialog居中顯示調試
setLocationRelativeTo(null)
能夠使其屏幕居中,但若是IDE不全屏,顯示的效果就很差看了,想使Dialog在IDE窗口居中顯示,能夠這樣設置:code
setLocationRelativeTo(WindowManager.getInstance().getFrame(actionEvent.getProject()) |
Android SDK
你要用Lint,那要找到Android SDK的目錄,用下面這段代碼:
public static Sdk findAndroidSDK() { |
狀態欄顯示信息
StatusBar statusBar = WindowManager.getInstance().getStatusBar((Project) DataKeys.PROJECT.getData(actionEvent.getDataContext())); |