Android中如何使用AbstractProcessor在編譯時生成代碼。
1.概述
在現階段的Android開發中,註解越來越流行起來,比如ButterKnife,Retrofit,Dragger,EventBus等等都選擇使用註解來配置。按照處理時期,註解又分為兩種類型,一種是運行時註解,另一種是編譯時註解,運行時註解由於性能問題被一些人所詬病。編譯時註解的核心依賴APT(Annotation Processing Tools)實現,原理是在某些代碼元素上(如類型、函數、字段等)添加註解,在編譯時編譯器會檢查AbstractProcessor的子類,並且調用該類型的process函數,然後將添加瞭註解的所有元素都傳遞到process函數中,使得開發人員可以在編譯器進行相應的處理,例如,根據註解生成新的Java類,這也就是EventBus,Retrofit,Dragger等開源庫的基本原理。
Java API已經提供瞭掃描源碼並解析註解的框架,你可以繼承AbstractProcessor類來提供實現自己的解析註解邏輯。下邊我們將學習如何在Android Studio中通過編譯時註解生成java文件。
2.創建名為processor的module
首先使用Android Studio創建一個Android的project。然後開始創建一個名為processor的java library。
點擊file->new->new module如圖
我們需要創建一個非Android的library,註意一定要選擇Java Library
3.兼容性配置
由於Android目前不是完全支持Java 8的語言特性,會導致編譯出錯。這裡將項目的源和目標兼容性值保留為 Java 7。
打開app模塊下的build.gradle
在android標簽下添加 compile options
gradle clean assembleDebug
既然我們已經啟動瞭守護線程,Remote Debugger將觸發斷點並掛起構建運行。
最後總結下本編文章,主要講瞭AbstractProcessor的使用,在Android Studio構建過程創建Java文件,同時使用他的例子,最後補充瞭一下如何調試Processor的方法。