俗話說得好,工欲善其事,必先利其器。做開發時間長了,總想找一些快捷方法,只有擁有好用的工具,才能節省開發時間,提高工作效率。我就是一個 追(喜)求(歡)高(偷)效(懶) 的開發人員,正好趁著國慶假期,把平日用到的一些 Android Studio開發外掛 整理了一下,分享給大家。
本文最早釋出在簡書部落格 www.jianshu.com/p/269a48d75…
有人會問了,網上也有很多部落格在講Android Studio的外掛總結,為什麼你還要弄一篇部落格呢?我可以告訴大家,網上講的那些很多都是文字,要麼就是給你一個連結,有些還是過時的,有些部落格講的比較全面,可是並沒有分門別類去區分,很雜亂;有的部落格做了分類,但是都是文字和連結,開啟某些連結只是一些簡單的圖片,很簡單。
簡單看幾個圖就知道網上的部落格寫的大概是什麼樣的(我並沒有針對誰,只是說我們寫部落格給別人看一定要注意一目瞭然):
- 有這樣的:標題是連結,介紹就一句話,沒有具體用法,圖片看不到。
- 有這樣的:介紹就一句話,沒有具體用法,但是有下載地址和文件地址(我還要去開啟文件去看,有些是英文的,還需要去翻譯)。
- 有這樣的:標題是連結,點進去有的連結已經失效,介紹用法是全英文的,我還要去翻譯。
- 有這樣的:這個稍好一些,標題是連結,有介紹,沒有圖片講解,需要點選標題連結進去。
- 有這樣的:全部是文字,沒圖片,雜亂,型別不知道,哪個好用也不知道,還要自己一個一個的去下載試試看。
我是一個 追(自)求(娛)極(自)致(樂) 的技術宅,那些部落格看的我想砸了電腦,為啥不講清楚一些,讓人可以知道是幹嘛用的?這也是我整理這篇部落格的原因。
首先,我分門別類,按型別把功能類似的的都放在一起。
其次,我對每一個外掛做了一個很精確的講解,圖文並茂。另外把一些注意事項,以及優缺點都寫的清清楚楚,這是我自己使用中總結出來的(極個別的除外)。
再次,製作對比圖片,以及截圖補充說明。網上的有些動圖要麼太模糊,要麼版本太舊,要麼就是速度太快看不清。所以我把很多外掛的用法自己做了一個錄屏,做成gif動圖。另外自己也做了一些圖片對比圖,方便別人檢視外掛使用前後的區別。(有些圖片用的是網上的或者官方的,在此感到抱歉,因為那些圖片能夠解決問題,也沒什麼大的問題,所以暫時借用了。)
好了,言歸正傳,下面看一下今天的 目錄。
一、生成java檔案,xml佈局和生成資原始檔有關:
1.SmartFindViewById 2.GenerateFindViewById(很完美的一個外掛) 3.LayoutCreator 4.Android Code Generator 5.Android Studio Prettify 6.AndroidAccessors 7.Android Layout ID Converter 8.BorePlugin 9.Exynap 10.MVPHelper 11.InnerBuilder 複製程式碼
二、資原始檔的管理和自動生成有關:
1.svgtoandroid 2.Android Holo Colors Generator 3.Android Drawable Importer(36M,有點大) 快速批量匯入不同大小的drawable檔案 4.Android Material Design Icon Generator 是一個可以生成【Material Design圖示】的外掛。 5.Android Styler 根據xml自動生成style樣式(有點複雜,不實用) 6.android-strings-search-plugin 7.color-manager 8.AndroidPixelDimenGenerator 9.android-selector-intellij-plugin 下面這幾個不常用,作為了解: DimenGenerator 命令列生成dimen android-selector-chapek Strings-xml-tools 複製程式碼
三、格式化xml佈局工具:
1.LayoutFormatter 2.LayoutFormat 複製程式碼
四、許可權有關:
PermissionsDispatcher plugin 複製程式碼
五、序列化工具:
1.Android Parcelable code generator自動生成Parcelable序列化 2.Android Parcelable code generator(for kotlin)使用kotlin開發時自動生成Parcelable序列化。 3.GenerateSerialVersionUID自動生成Serializable序列化。 4.SerializableParcelable Generator自動生成Serializable序列化 複製程式碼
六、翻譯有關:
1.ECTranslation 2.AndroidLocalizationer 3.TranslationPlugin 4.ReciteWords 複製程式碼
七、第三方註解,事件和依賴注入庫視覺化工具:
1.Android ButterKnife Plugin Plus 2.Android ButterKnife Zelezny 3.Remove ButterKnife 4.eventbus3-intellij-plugin 5.dagger-intellij-plugin dagger 6.otto-intellij-plugin otto 7.databinding-support 複製程式碼
八、程式碼補全工具:
1.Android Postfix Completion 2.GradleDependenciesHelperPlugin 3..ignore 複製程式碼
九、輔助工具
1.CodeGlance 程式碼預覽和快速定位 2.IconViewer圖示預覽外掛 3.GsonFormat 快速生成json實體類的外掛 4.JsonToKotlinClass 能將 Json 資料直接對映生成 Kotlin Data Class 程式碼。 5.android-studio-proteus-plugin 將xml轉化為json。 6.Lifecycle Sorter 按生命週期排序 7.Android Methods Count 統計第三方依賴庫的方法數。 8.dexcount-gradle-plugin 統計方法數 9.Android-Resource-Usage-Count 顯示每個資原始檔的引用次數 10.Statistic 統計程式碼行數 11.SingletonTest 生成單例模式的類 12.TemplateBuilder是一款能夠幫助我們快速生成Android Studio Template的Android Studio外掛 13.Markdown Navigator是一個能在IDE編輯markdown語法的外掛。 14.idea-markdown 15.instapk-studio-plugin 分享apk檔案 複製程式碼
十、UI優化有關:
1.TinyPic 壓縮圖片資源 2.lint-cleaner-plugin 刪除未使用的資源 3.folding-plugin 佈局檔案分組的外掛 複製程式碼
十一、Android Studio主題相關:
1.Material Theme UI 新增Material主題到你的Android Studio 2.Android Studio外掛之sexy editor(設定AS程式碼編輯區的背景圖) 複製程式碼
十二、UML工具有關
1.Code Iris快速分析佈局以及程式碼包結構關係,並生成UML圖 2.SimpleUML 生成UML圖 複製程式碼
十三、打包、加固、混淆、Gradle編譯、搜尋程式碼有關:
1.AndroidProguardPlugin一鍵生成專案混淆程式碼外掛(不過目前可能有些第三方專案的混淆還未新增完全) 2.ApkMultiChannelPlugin 一個為了方便 Android 多渠道打包的 Android Studio / IDEA 外掛 3.Codota 搜尋最好的Android程式碼 4.intellij-java2smali將Java & Kotlin編譯成smali 5.gradle-cleaner-intellij-plugin強制清除延遲,不再需要Gradle任務。 6.freeline Android 平臺上的秒級編譯方案,Instant Run 的替代品 複製程式碼
十四、檢測、Code Review、測試和除錯相關:
1.LeakCanary 幫助你在開發階段方便的檢測出記憶體洩露的問題。 2.JVM Debugger Memory View Android Studio和IDEA中一個很有用的記憶體除錯外掛。 3.reVu 程式碼review神器,這個外掛比較輕量,review記錄儲存在xml檔案中,直接提交到git 4.findBugs-IDEA 幫你一起找bug的一個外掛,很老的一個外掛了。 5.CheckStyle-IDEA(49M,有點大)檢查程式碼風格的外掛。 6.JSONOnlineViewer 在android studio中除錯介面資料 7.ADB WIFI 無需root就能wifi除錯 8.adb-idea 可以一鍵清理快取並重啟APP 9.SQL Scout (SQLite Support) 在 Android Studio 上除錯資料庫 ( SQLite ) 10.Robotium Recorder一個自動化測試框架。 複製程式碼
一、生成java檔案,xml佈局和生成資原始檔有關:
1.SmartFindViewById
-
作用: 重構了GenerateFindViewById 專案的所有程式碼,使得在一定程度上可以更方便地進行後期擴充套件。並在GenerateFindViewById 專案基礎上新增了智慧查詢佈局檔案,優化了展示介面,增加了 I18N 國際化支援等功能。SmartFindViewById外掛github地址
-
說明: 該外掛可以依次通過以下6種方式來逐一嘗試獲取目標佈局檔名,優先順序從高到低,一旦有一個方法獲取到了有效的佈局檔名, 就會展示對應佈局檔案的所有擁有 id 的 View 控制元件,然後可以選擇生成對應的 findViewById 和 onClick 點選事件程式碼。
1.選中佈局檔名,如選中程式碼段 setContentView(R.layout.activity_main); 中的 activity_main 2.檢測當前游標所在行是否包含佈局檔名(通過 R.layout. 字首判斷) 3.Activity setContentView(R.layout.xxx) 方法佈局檔案引數 4.Fragment(包括 support_v4 fragment) 中 onCreateView 方法中 inflate(R.layout.xxx... 佈局引數 5.RecyclerViewAdapter 中 onCreateViewHolder 方法中 inflate(R.layout.xxx... 佈局引數 6.彈輸入框提示手動輸入
-
注意事項:如果是Activity,必須要有oncreate方法,如果是fragment,必須要有onCreateView方法,如果是介面卡裡面的佈局,必須要有onCreateViewHolder 方法。也就說,必須要有佈局引數。
-
快捷鍵: Ctrl + Alt + S
-
用法:
1.在一個 Activity, Fragment, RecyclerViewAdapter(包含直接或間接子類)甚至一個一般的類檔案中,如果對應程式碼中已存在佈局檔名, 可以對著類檔案右鍵選擇Generate,選擇 SmartFindViewById 選單(或是 Ctrl + Alt + S, 或者 點選選單欄Code 選擇 SmartFindViewById ), 這時就會自動查詢佈局檔案,然後彈出一個展示目標佈局 檔案下的所有有 id 的 View 控制元件列表,如果你的佈局檔案不是寫在 setContentView(R.layout.xxx) 等常見程式碼中, 你可以手動選定目標佈局檔名或將游標定位到目標佈局檔名所在的程式碼行, 最後還可以手動輸入。
2.在彈出的 View 控制元件列表彈框中,預設選中還沒有編寫 findViewById 程式碼的 View 控制元件,當然也可以手動選中或取消。
3.可以根據 View 控制元件是否有 android:clickable=true 屬性或是 Button 類控制元件,自動勾選自動生成 onClick 點選事件程式碼。
4.可以編輯 View 控制元件生成類成員變數的變數名,View 成員變數名生成預設規則類似於: android:id="@+id/btn_submit_info" 對應的成員變數名為 mSubmitInfoBtn
5.對於 Fragment 等需要 rootView.findViewById, 可以勾選 RootView 選項,同時可以設定該 RootView 的變數名,預設為 itemView, 對於非 Activity 類該選項預設勾選
6.點選確認生成
-
演示圖如下:
這是無佈局引數生成的效果(看看有多麻煩就知道了):
這是有佈局引數生成的效果:
2.GenerateFindViewById(很完美的一個外掛)
-
快捷鍵:Ctrl+Alt+E
-
作用:
1)可輸入佈局欄位、可選中佈局檔案欄位,自動生成有id控制元件相應的程式碼(如果滑鼠只是放在佈局上,按下快捷鍵,會彈出輸入框,提示輸入佈局; 滑鼠雙擊佈局,就不會有彈窗讓你輸入佈局了) 2)自動生成onCreate/onCreateView方法 3)可編輯變數名 4)可選擇是否生成OnClick程式碼 5)可選擇是否LayoutInflater型別 6)支援ButterKnife用法(跟ButterKnife原始用法有區別,慎用)
-
用法(用途很多,下面就簡單的來幾張圖演示一下):
Activity如果沒有onCreate方法,會先生成onCreate方法,再重新操作一次才生成有id控制元件相應的程式碼。如下圖所示:
Fragment如果沒有onCreateView方法,會先生成onCreateView方法,再重新操作一次才生成有id控制元件相應的程式碼。如下圖所示:
3.LayoutCreator
-
作用:可以讓你在Activity/Fragment中自動生成findViewById等佈局相關初始化程式碼,或者在Adapter中自動生成ViewHolder程式碼。
-
用法:滑鼠放在佈局檔案上,按快捷鍵alt + Insert(或點右鍵選擇Generate / 或點選選單Code → Generate ),右鍵選擇LayoutCreator,選擇要生成的變數以及其他設定,點選confirm就可以了。
下面這個圖是以Activity生成程式碼作為演示:
【缺點】
1) 控制元件id是什麼,用這個外掛生成的控制元件命名就是什麼,命名不規範。
2) EditText之類的可以編輯的控制元件,獲取資料的時候,用的是id名字獲取的,要手動改一下。(請看示例圖上有一處報錯的,那個就是。)
複製程式碼
4.Android Code Generator
- 用法: 找到佈局檔名稱,右鍵,選擇Generate Android Code → 選擇要生成的型別(預設是6種型別可供選擇), 選擇生成的程式碼存放的路徑以及包名,如果有多個module或者lib,預設的包名是第一個module的包名(比如我的第一個module是app,包名是 com.lzw.logutilsdemo )
- 使用圖解如下:
-
【優點】根據佈局檔案快速生成對應的Activity,Fragment,Adapter,Menu類,點選Android Studio選單的file --> setting--> Android Code Generator,可以快速生成檔案,也可以複製程式碼到剪下板,很方便。
-
【缺點】
(1) 生成的menu需要自己複製貼上,很麻煩。 (2) 每次都要手動設定路徑和包名,很麻煩。 (3) 生成的點選事件需要自己去導包,很麻煩。 (4) 生成的控制元件如果是button之類的,是這種格式 findViewById(R.id.btn).setOnClickListener(this); 其他的都是很標準的, 看起來很不美觀,建議改善。 (5) 生成的類名不規範,比如我的xml是activity_main2.xml,生成的Activity名字是ActivityMain2Activity,這顯然是多此一舉, 應該把前面那個Activity去掉,並且調整一下順序,如果是MainActivity2就對了。
5.Android Studio Prettify
-
作用:
- 可以將程式碼中的字串寫在string.xml檔案中,選中字串滑鼠右鍵選擇Extract String resource
2. 從佈局檔案中生成對View的宣告,這個外掛幫助我們自動生成findViewById這種程式碼。
(有兩種提示,一個是View Variables ,一個是View Fields,如下圖所示:)
複製程式碼
兩者的區別:View Variables是直接生成區域性變數,而且是排成一排;View Fields是生成全域性變數並引用。
-
【缺點】
-
多個Module擁有同名的xml佈局檔案,有可能會設定到別的Module的xml佈局檔案中。
-
生成的程式碼都在onCreate或者onCreateView中,可讀性差。
-
生成的全域性變數的導包是在變數型別上的,而不是在類外面導包,很不規範。
-
- AndroidAccessors 快速生成get set方法,用法: 在程式碼中寫完Java Bean物件後,按下Alt+Insert後選擇AndroidAccessors即可
- 使用圖解如下:(圖裡面第一次用的是AndroidAccessors 演示的,第二次用的系統自帶的演示的)
- 【缺點】Android Studio自帶有這個功能,沒必要下載這個外掛
- Android Layout ID Converter(這個最麻煩,不推薦使用,僅作為了解)
- 使用:滑鼠在佈局檔案右鍵,在彈出來的選單當中選擇Convert Android layout xml,然後它會彈出一個皮膚,如下所示。選擇要生成的程式碼的格式,按OK,這時它已經把生成的程式碼複製在你的貼上板中,然後你在使用這個佈局檔案的Activity或Fragment中,按Ctrl + V 把程式碼貼上出來就可以了。
- 【缺點】需要手動貼上,麻煩;另外只能設定m字首,_字首或者無任何字首,擴充套件性不好。
- Android Studio 自動生成程式碼外掛(Android Studio外掛搜尋LayoutCreator就可以下載,具體講解請檢視LayoutCreator)
- Exynap Exynap 一個幫助開發者自動生成樣板程式碼的 AndroidStudio 外掛。只需要一個快捷方式(Ctrl + Shift + D),輸入命令就可以生成程式碼了。
- MVPHelper 一款Intellj IDEA 和Android Studio的外掛,可以為MVP生成介面以及實現類,解放雙手。具體請檢視 Android Studio外掛之MVPHelper,一鍵生成MVP程式碼一文
- 使用圖如下:
- innerbuilder InnerBuilder 一款Intellj IDEA 和Android Studio自動生成內部類Builder程式碼的外掛。
-
使用:使用Shift + Alt + B 或 Alt + Insert並選擇Builder ....選擇要包括的欄位,然後按OK。 當構建器已存在時生成構建器時,外掛將嘗試更新它。 它將新增缺少的欄位和構建器方法,但不會刪除任何欄位或方法。
-
示意圖:
二、資原始檔的管理和自動生成有關:
-
通過它可以完成從svg檔案到Android VectorDrawable的自動化轉換,傳統做法是網上招一個工具生成一張svg圖,然後匯入到Android Studio。
-
新版Android Studio自帶的svg轉VectorDrawable功能:
- 下面一張圖演示一下這個外掛的用法:
- Android Holo Colors Generator
- 通過自定義Holo主題顏色生成對應的【Drawable】和【佈局檔案】,點選導航欄的藍色的 H 符號,就可以了。各種右鍵,各種選單欄都找了,找不到使用方式,找了半天最後在導航欄有個藍色的H符號,太坑了,官方也沒有講解怎麼使用。
- Android Drawable Importer(36M,有點大) 快速批量匯入不同大小的drawable檔案。
-
它匯入Android圖示與Material圖示的Drawable ,批量匯入Drawable,多源匯入Drawable(即匯入某張圖片不同解析度的圖片到對應的drawable目錄下)它可以減少匯入影像到Android專案所需的工作量。
-
下面看幾張截圖: 點選任意一個檔案,右鍵New,然後看最後4 個選項,這就是該外掛的4個功能
每個功能的具體演示
- Android Material Design Icon Generator(14M,這個外掛比較大) 是一個可以生成【Material Design圖示】的外掛 ,使用方式,右鍵專案,選擇Material Design Icon,可以選擇icon圖示,大小,路徑等
*點選任意一個檔案,右鍵New,選擇Material design icon,示意圖如下:
- 選擇設定要生成的內容,點OK
- Android Styler 根據xml自動生成style樣式(有點複雜,不實用)
*用法:選中要生成樣式的內容,複製到styles.xml裡面,右鍵Paste Style或按快捷鍵 Ctrl + Shift + D,然後輸入一個style的名字,最後在xml裡面引用這個樣式。
- android-strings-search-plugin 一個可以通過輸入文字找到strings.xml資源的外掛
- 官方的示意圖如下:
- 【缺點】不能輸入中文,即使是values-cn裡面的strings.xml裡面的中文也不能識別
- color-manager 顏色管理
-
使用也很簡單:選擇要放置的檔案,從顏色皮膚選一個顏色,拖動到您要複製顏色名稱/標籤的位置。
-
示例圖:
1.在xml中使用顏色
2.不在xml中使用顏色
- AndroidPixelDimenGenerator 根據輸入的畫素來自動生成Android專案的dimen.xml檔案,主要是為了適配國產Android TV盒子的各種解析度。 這個外掛參考自 DimenGenerator
-
用法:
1.點選Tools選單 → AndroidPixelDimenGenerator 2.根據提示輸入解析度的取值範圍和解析度 3.檔案生成路徑預設在當前專案的res,如果有多個module一般會在第一個的res中,如果遍歷不到res資料夾,檔案生成路徑為當前專案的根目錄。
-
示意圖:
- android-selector-intellij-plugin 外掛生成normal,press和按下水波紋顏色
-
使用方式:
1.首先在 res/values/colors.xml新增顏色 2.res目錄中右鍵選擇New → 選擇 Android Selector(或Ctrl+ N快捷鍵)。 3.選擇檔名,顏色,press按下顏色和按下水波紋(pressed-v21 )的顏色。
-
示例圖:
下面這幾個不常用,作為了解:
DimenGenerator 命令列生成dimen
- 通過資原始檔命名自動生成 Selector 檔案,已經4年沒更新,使用過程會報錯。按照慣例,還是來一張效果圖:
Strings-xml-tools 管理Android專案中的字串資源,它提供了排序Android本地檔案和新增缺少的字串的基本操作。(3年沒更新了,這個工具對Android Studio1.2+以上的都不支援,不推薦使用,僅作了解)
三、格式化xml佈局工具:
- LayoutFormatter 一鍵格式化你的 XML 檔案,並且調整Android佈局XML檔案屬性順序,並且會將預設屬性調整到前面,並在行的末尾使用自定義屬性。
用法入下:
1. 選擇佈局檔案右鍵,或者直接在佈局檔案裡面右鍵 -> Refactor -> Reformat Layout XML.
2. 快捷鍵: ctrl+alt+F
複製程式碼
使用效果對比圖如下所示:
- LayoutFormat 快速格式化xml程式碼(因為快捷鍵和LayoutFormatter 一樣,不建議同時安裝這兩個外掛)
功能有兩個:
- 1.批量去格式化layout.xml,點選layout目錄,右鍵Refactor,選擇LayoutFormat(快捷鍵Ctrl +Alt + F)
2.修改某一個layout.xml硬編碼,點選佈局名字右鍵Refactor(或者開啟佈局,滑鼠放在佈局內容任意地方
右鍵Refactor),選擇LayoutFormat(快捷鍵Ctrl +Alt + F)
複製程式碼
-
使用中可能會遇到的問題,在匯入外掛時,windows下可能會出現外掛載入失敗的情況。會報下面的錯誤:
cannot create class "com.shang.layoutformat.LayoutFormat" [Plugin: com.shang.android.layoutformat] com.intellij.diagnostic.PluginException: cannot create class "com.shang.layoutformat.LayoutFormat" [Plugin: com.shang.android.layoutformat]...後面還有一大串,在此省略
這是使用的android studio 的執行時的jdk版本低於外掛的jdk,換成最新的jre1.8就OK了 ( 檢視android studio 的 java 版本是在:選單欄 > Help > About)
四、許可權有關:
PermissionsDispatcher plugin 自動生成動態許可權的程式碼
-
用法:
-
第1步.開啟專案modle裡面的build.gradle 右鍵 Generate -> Add PermissionsDispatcher dependencies,新增依賴
-
第2步.開啟 Activity/Fragment,右鍵 Generate -> Generate Runtime Permissions... 選擇要設定的許可權, 輸入註解的方法名,點選Generate 按鈕
-
-
示範圖如下:
五、序列化工具:
- Android Parcelable code generator 自動生成Parcelable序列化
- Android Parcelable code generator(for kotlin) 使用kotlin開發時自動生成Parcelable序列化,用法和上述類似。
- GenerateSerialVersionUID 自動生成Serializable序列化。
【注意】預設情況下Intellij IDEA是關閉了繼承了java.io.Serializable的類生成serialVersionUID的警告。如果需要ide提示生成serialVersionUID,那麼需要做以下設定:
1、setting -> Inspections -> Serialization issues,將其展開後將 serialzable class without "serialVersionUID"打上勾;
複製程式碼
2、將游標放到類名上,按 atl+enter 鍵,就會提示生成serialVersionUID了
複製程式碼
- SerializableParcelable Generator 自動生成Serializable序列化
六、翻譯有關:
-
這是一個可以對AndroidStudio中的英文進行翻譯的一個外掛,以後看原始碼的時候,就不用再去查字典了,方便多了,也可自定義快捷鍵,具體的可檢視其使用說明。
-
使用:選擇 Edit -> Translate或者按下Alt + I,即可翻譯。(預設的是Meta + I ,windows上沒有這個快捷鍵,我就改成了Alt + I, 點選選單欄File -> Settinigs -> Keymap -> 搜尋Translate - > 右鍵 add Keyboard Shortcut. 輸入你想要的快捷鍵即可 )
- AndroidLocalizationer 可用於將專案中的 string 資源自動翻譯為其他語言
- TranslationPlugin 又一翻譯外掛,可中英互譯
- 說明:需要註冊申請有道智雲翻譯服務,有一定的使用期限,如帳號到期或欠費,將無法使用。
- 這是一個androidStudio翻譯與陌生單詞記錄外掛,你所翻譯的單詞會被記錄在你當前使用者目錄下的ReciteWords.md檔案中(如:C:\Users\Bolex\ReciteWords.md)。可以通過Markdown編輯器開啟它進行學習。
- 使用很簡單,選中程式碼,按下 Alt+Q(也可以自己設定)。即可翻譯。效果如下:
- 翻譯的單詞會被記錄在當前專案的根目錄下的翻譯歷史記錄.md檔案中(如:\xxxProject\翻譯歷史記錄.md)。可以通過Markdown開啟它。as翻譯後切換Project模式可以在專案資料夾中直接看到。效果如下:
七、第三方註解,事件和依賴注入庫視覺化工具:
- Android ButterKnife Plugin Plus 它是基於android-butterknife-zelezny 1.6開發的,並在此基礎上新增了以下功能。
- 1)可以自由選擇是否在當前類中對ButterKnife進行初始化,避免了原版本只要使用外掛初始化控制元件會自動在onCreate中進行ButterKnife.bind(this)的尷尬。
這樣就可以在基類中進行ButterKnife的初始化,不必要每個類中都要初始化,對開發框架的搭建更加方便。
- 2)在Android Studio的設定介面,對在當前類中是否強制初始化提供了預設值設定,這樣就可以讓外掛使用更符合自己的操作習慣。
- Android ButterKnife Zelezny 配合ButterKnife實現註解,從此不用寫findViewById,想著就爽啊。在Activity,Fragment,Adapter中選中佈局xml的資源id自動生成butterknife註解。
使用方式:在佈局右鍵Generate --> Generate ButterKnife Injections --> 選擇要命的名(或者快捷鍵Ctrl+Shift+B)
複製程式碼
- Remove ButterKnife 把使用ButterKnife的註解快速批量切換成正常findViewbyId
平時使用ButterKnife的困擾:
1.ButterKnife這個第三方庫每次更新之後,繫結view的註解都會改變,從bind,到inject,再到bindview,
搞得很多人都不敢升級,一旦升級,就會有巨量的程式碼需要手動修改,非常痛苦
2.當我們有一些非常棒的程式碼需要拿到其他專案使用,但是我們發現,那個專案對第三方庫的使用是
有限制的,我們不能使用butterknife,這時候,我們又得從註解改回findviewbyid
針對上面的兩種情況,如果view比較少還好說,如果有幾十個view,那麼我們一個個的手動刪除註解,
寫findviewbyid語句,簡直是一場噩夢(別問我為什麼知道這是噩夢)
所以,這種有規律又重複簡單的工作為什麼不能用一個外掛來實現呢?於是就有大神寫了RemoveButterKnife這個外掛幫你解決這些煩惱。
複製程式碼
- 使用很簡單: 點選選單欄 Edit → RemoveButterKnife
- eventbus3-intellij-plugin EventBus 導航外掛,引導 EventBus 的 post 和 event,是在eventbus-intellij-plugin基礎上修改的,支援EventBus 3.X,並且修復了原外掛eventbus-intellij-plugin的bug,使用起來更方便。
- dagger-intellij-plugin dagger視覺化輔助工具,有了它可以讓@Inject物件與建立它的@Provides方法之間有一個很清晰的視覺化過程。【具體能不能相容最新的dagger2,還沒研究,博主對這個用的少,有興趣的小夥伴歡迎去嘗試,有結果之後別忘了在部落格下面留言告訴我一聲,感謝大家。】
- otto-intellij-plugin otto事件導航工具
- 從 @Produce 跳轉到 @Subscribe 過程
- 從 Event 跳轉到 @Subscribe
- databinding-support 一個可以快速實現databinding的外掛,自從谷歌推出databinding框架以來,有不少人都在使用這個框架開發,一般情況下在xml裡面手寫一些程式碼很麻煩,有了這個外掛就要方便很多了,並且可以快速跳轉到具體類。
快捷鍵:alt + enter
具體功能如下所示:
-
雙擊根佈局,按alt + enter,選擇 Convert to databinding layout ,佈局就被包裹在 標籤裡面
-
滑鼠放在名稱空間上,按alt + enter,選擇Add tag, 即:新增標記
-
雙擊一個屬性值,按alt + enter,右鍵選擇Wrap with@{} , 即:包裹在@{}裡面
-
雙擊一個屬性值,按alt + enter,右鍵選擇Wrap with@={} , 即:包裹在@{}裡面
-
雙擊一個屬性值,按alt + enter,選擇 Switch to...,在 @{} 和 @={} 之間切換(字母太多,不打了,選擇最後一個就是的,具體的請看圖),
-
在 標籤裡面,按alt + enter,右鍵選擇Add tag,就可以新增 標籤
-
在 標籤裡面,按alt + enter,右鍵選擇Add tag,就可以新增 標籤
-
從類跳轉到layout佈局,這個很通用,一看就知道。
八、程式碼補全工具:
- Android Postfix Completion 可根據字尾快速完成程式碼,這個外掛在Android Studio原有的基礎上增添了一些新的功能 。
-
github地址:github.com/takahirom/a…
-
JetBrains plugin地址:plugins.jetbrains.com/plugin/7775…
有這些語句可以操作: .toast .log .logd .find .isemp .vg .vsb .invsb .gone .snack .snackaction 複製程式碼
-
部分示例圖如下:
- Gradle Dependencies And Plugins Helper gradle依賴支援自動補全
1. gradle依賴支援自動補全,
2. 預設使用jcenter API搜尋dependencies,使用Gradle Plugins搜尋plugins,
3. 可選使用Nexus API搜尋或使用Maven Index本地搜尋加速,
4. 支援Gradle groovy指令碼(.build)及kotlin指令碼(.build.kts)。
複製程式碼
*示例圖:
- jetbrains下載地址:plugins.jetbrains.com/plugin/1003…
- github地址:github.com/bestwu/grad…
- 中文文件:bestwu.cn/2017/09/01/…
- 過濾掉一些不想提交的檔案,把相應的過濾檔名(或路徑)新增到.gitignore 中;根據不同的語言來選擇模板;而且還有自動補全功能。(它是Android Studio自帶的.gitignore功能的增強和擴充套件)
九、輔助工具
- CodeGlance
- 安裝這個外掛就可以在右邊可以預覽程式碼,佈局,檔案等,還可以實現快速定位,可以左右拖動設定預覽邊界大小。只要是檔案,都可以快速預覽。比自帶的那個滾動條方便多了。(有點類似sublime的那個預覽效果)
- IconViewer 圖示預覽外掛,在瀏覽目錄結構時,開啟帶圖片的目錄,圖片前面會顯示預覽圖。
- 示範圖:
- GsonFormat 快速生成json實體類的外掛
-
GsonFormat的好處:快速將json字串轉換成一個Java Bean,免去我們根據json字串手寫對應Java Bean的過程.
方式1 :快捷鍵:點選選單欄的 Code --> Generate --> GsonFormat 或者按 Alt + Insert 鍵
方式2: 寫一個Javabean 右鍵 Generate -->GsonFormat ,把json資料貼上進來 可以修改欄位,
可以選擇是否public, 可以修改欄位名等,最後點OK 搞定
複製程式碼
- 具體用法請看演示圖:
在github也只有找到文字介紹,點選Tools選單
- JsonToKotlinClass 能將 Json 資料直接對映生成 Kotlin Data Class 程式碼,免去手動編寫資料物件結構宣告
- android-studio-proteus-plugin 將xml轉化為json(這個貌似在Android Studio搜尋外掛找不到,只能去github下載jar包,然後安裝到Android Studio上。下載地址)github也只有簡單的文字介紹,沒有圖片說明,我也嘗試過,沒找到生成的json在哪裡。貌似自定義的xml不生效。有興趣研究的可以去github看看怎麼操作,學會了之後別忘了在部落格下面留言。
1.開啟一個XML資原始檔
2.點選選單欄Tools → Proteus → XML to JSON
複製程式碼
- Lifecycle Sorter 可以根據Activity或者fragment的生命週期對其生命週期方法位置進行先後排序。
-
用法: 游標放在Activity裡面,然後點選選單欄Code → Sort Lifecycle Methods,然後有兩種選擇,一種是排放在類的前面(如果有很多方法,生命週期方法優先放前面,其他方法放後面),Place at Start of Class(快捷鍵 Ctrl + alt + K);另一種是排放在類的後面(與前者相反),Place at End of Class(快捷鍵 Ctrl + Shift + alt + K)
-
使用示意圖如下:
- Android Methods Count 統計第三方依賴庫的方法數。
開啟專案module裡面的build.gradle,發現裡面行號後面多了幾個小藍色圓圈,滑鼠放上面就會顯示方法數資訊。你會發現依賴庫變成了灰色,後面中括號裡面就是方法數以及相關依賴資訊等,點一下就顯示正常的依賴內容 【缺點】專案裡面的modle依賴了一個自己寫的lib,不能統計lib裡的方法數
- dexcount-gradle-plugin 統計方法數
- Android-Resource-Usage-Count 顯示每個資原始檔的引用次數
- Statistic 統計程式碼行數
首次安裝在AS的View→Tool Windows→Statistic,選擇之後會在AS的左下角出現statistic按鈕:
一開始裡面的內容是空白的,我們點選Refresh,如果還是空白,就點選Settings來新增需要統計行數的專案。
點選Settings後,會出現設定視窗,點選add,新增要統計程式碼的專案就可以了。
這裡重點講一下設定裡面每一項的意思:
最後效果如下圖所示,這裡的4張圖表示的是4個不同的操作步驟:
- SingletonTest 快速生成單例模式的預設,單例的六種生成方式:LazyUnSafe,LazySafe,Hungry,DoubleCheck,StaticInner,Enum。(有個bug: 類名不輸入也會生成一個類。)
- 用法:滑鼠點選要生成類的包名,右鍵 New → SingletonGenerate,然後有一個彈窗,填寫類名,選擇要生成的型別,點選OK,就生成了。(一般這個外掛我很少用,我自定義的一個快捷鍵live template,自動生成單例程式碼的。)
*示意圖如下:
- TemplateBuilder TemplateBuilder是一款能夠幫助我們快速生成Android Studio Template的Android Studio外掛,將通過逐個檔案去配置模板的方式改進為通過外掛來實現,對於簡單的模板製作,只需要一鍵即可生成。
-
匯出模板
-
匯入模板
-
Markdown Navigator 是一個能在IDE編輯markdown語法的外掛,全面支援markdown語法,是目前IDE上最好用的Markdown外掛。可以實時預覽,拖放檔案和影像以快速連結形式插入,支援導航和查詢功能,將HTML貼上到Markdown文件中自動轉換為Markdown,可以匯出為HTML或PDF分享給別人。
-
下面幾張圖是來源於該外掛在jetbrains釋出的簡介圖:
-
這個外掛3年前已經停止維護,它已經從Jetbrains外掛庫中刪除。 Jetbrains正式支援Markdown外掛。
-
來一張github上關於這個外掛的截圖:
- instapk-studio-plugin 分享apk檔案
- 示例圖:
十、UI優化有關:
-
使用說明:在開發者頁面下申請api key。對於一個key,每月有500次的免費壓縮額度,如果壓縮超過了 500張圖片,就不能使用了。需要另外付費。但是申請這個api特別簡單,填下郵箱,使用者名稱就行,多申請 兩個郵箱。1000張圖片也妥妥夠了。 這裡推薦google個十分鐘郵箱,不需要註冊,只能使用十分鐘,用來收一下驗證碼很方便。
-
使用步驟:
1.Tools目錄下找到TinyPic
2.輸入在 https://tinypng.com/developers 申請的api key
複製程式碼
3..選擇圖片,可以選擇圖片,或者選擇資料夾或者同時選中,反正是遍歷資料夾下的圖片,篩選jpg和png ,key的剩餘次數
複製程式碼
4.檢視壓縮排度
複製程式碼
5.超過500次的提示
複製程式碼
- lint-cleaner-plugin 刪除未使用的資源,包括String字串,顏色和尺寸。 這是一個Gradle外掛,所以如何配置可以去github的原始碼上看。 外掛原始碼地址:github.com/marcoRS/lin…
- folding-plugin
- 佈局檔案分組的外掛,該外掛可自動將字首相同的檔案歸類顯示到同一檔案目錄下,但不會因此而移動檔案或建立資料夾。
演示圖如下:
十一、Android Studio主題相關:
1.Material Theme UI 新增Material主題到你的Android Studio
- 示意圖:
2.Android Studio外掛之sexy editor (設定AS程式碼編輯區的背景圖)
- 進入設定介面 選擇other Setting 下的Sexy Editor , 右側 insert 一張或多張圖片即可,上面的其他設定可以設定方位 間隔時間 透明度等等,設定完成後,要關閉開啟的檔案,重新開啟專案檔案即可在程式碼編輯區顯示插入的圖片,作為程式碼編輯區的背景圖。
十二、UML工具有關
- Code Iris 快速分析佈局以及程式碼包結構關係,並生成UML圖
-
用法:選擇module → 右鍵 → Create Code graph,然後右面工具欄會出現Code iris視窗,放大,點選視窗左下角圖示可以選擇要生成uml的包,下方有個滑動條,可以設定按包、類生成uml,並且有儲存。
-
示意圖:
十三、打包、加固、混淆、Gradle編譯、搜尋程式碼有關:
- 一鍵生成專案混淆程式碼外掛(不過目前可能有些第三方專案的混淆還未新增完全)
- ApkMultiChannelPlugin 這是一個為了方便 Android 多渠道打包的 Android Studio / IDEA 外掛
使用方式:
- 1). 選擇一個 apk 然後右鍵,點選 Build MultiChannel
- 2). 配置簽名資訊,打包方式和渠道等
配置說明: Key Store Path: 簽名檔案的路徑 Key Store Password: 簽名檔案的密碼 Key Alias: 金鑰別名 Key Password: 金鑰密碼 Zipalign Path: zipalign檔案的路徑(用於優化 apk;zipalign 可以確保所有未壓縮的資料均是以相對於檔案開始部分的特定位元組對齊開始,這樣可減少應用消耗的 RAM 量。) Signer Version: 選擇簽名版本:apksigner 和 jarsigner Build Type: 打包方式 Channels: 渠道列表,每行一個,最前面可加 > 或不加(儲存資訊的時候,程式會自行加上)
- 3). 開始打包 配置完成之後按 OK 就會開始進行渠道打包,檔案會輸出在選中的apk的當前目錄下的channels目錄中
- Codota 搜尋最好的Android程式碼。(Studio外掛庫搜尋裡面Codota直接下載)。它的搜尋源,不僅只有Github,而且還有知名部落格和開發者網站,讓你搜尋一個東西,不用在找上半天。
Codota官方介紹:
最好的程式碼例項,我們的抓取工具從大量的程式碼專案中抓取了大量的程式碼模式,你可以從這裡搜尋超過七百萬精品程式碼例項。
複製程式碼
- 使用示例圖:
- intellij-java2smali 將Java & Kotlin編譯成smali
-
使用很簡單:點選選單欄Build → 然後點選 Compile to smali,OK了。
-
示例圖:
- gradle-cleaner-intellij-plugin 強制清除延遲,不再需要Gradle任務。
- 使用很簡單,點選選單欄的那個gradle的logo就可以了。
- freeline Freeline 是 Android 平臺上的秒級編譯方案,Instant Run 的替代品
- 用法和很簡單:點選導航欄的那個藍底白色雙摺線圓形圖示,就可以了。編譯速度比Android Studio自帶Instant Run快很多。
十四、檢測、Code Review、測試和除錯相關:
- LeakCanary 幫助你在開發階段方便的檢測出記憶體洩露的問題,使用起來更簡單方便。
- LeakCanary中文使用說明請參考:www.liaohuqiu.net/cn/posts/le…
- JVM Debugger Memory View Android Studio和IDEA中一個很有用的記憶體除錯外掛,對檢測記憶體洩漏很有幫助。
-
示意圖:
-
程式碼review神器,這個外掛比較輕量,review記錄儲存在xml檔案中,直接提交到git。這個外掛比reviewclipse功能要好一些,使用很方便,比較輕,可以review任何文字檔案,實現10以下的小團隊用。
-
使用截圖如下:
-
幫你一起找bug的一個外掛,很老的一個外掛了,具體的沒用過。因為Android Studio也提供了程式碼審查的功能,點選選單欄的Analyze → Inspect Code。
-
使用圖解:
- CheckStyle-IDEA(49M,有點大)
-
檢查程式碼風格的外掛,比如像命名約定,Javadoc,類設計等方面進行程式碼規範和風格的檢查,你們可以遵從像Google Oracle 的Java 程式碼指南 ,當然也可以按照自己的規則來設定配置檔案,從而有效約束你自己更好地遵循程式碼編寫規範。
-
【tips】Android Studio自帶有一個分析工具,點選選單Analyze,裡面有很多分析工具,比如Inspect Code這個功能就比CheckStyle強大很多。貌似一次只能開啟一個類去分析。
-
可實現直接在android studio中除錯介面資料,可以選擇請求型別,自定義請求頭及請求體,json資料格式化後展示(2015年最後一次更新,2年沒更新了,不推薦使用)。
-
借用JSONOnlineViewer官方介紹的截圖:
- ADB WIFI 無需root就能wifi除錯
- adb-idea 可以一鍵清理快取並重啟APP
- 在 Android Studio 上除錯資料庫 ( SQLite )
- 詳細使用參考:在 Android Studio 上除錯資料庫 ( SQLite )
- 使用示意圖:
-
一個自動化測試框架,用於測試在模擬器和Android裝置上原生的和混合的移動應用程式。Robotium Recorder可以讓你記錄測試案例和使用者操作。你也可以檢視不同Android活動時的系統功能和使用者測試場景。(貌似現在是收費的,這個沒用過,有興趣朋友可以寫一下心得體會,歡迎留言)
-
具體文件請檢視:Robotium Recorder文件
一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一
本文部分內容參考文章如下: