Android中如何使用AbstractProcessor在編譯時生成代碼

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如圖

enter image description here

我們需要創建一個非Android的library,註意一定要選擇Java Library

enter image description here

enter image description here

3.兼容性配置

由於Android目前不是完全支持Java 8的語言特性,會導致編譯出錯。這裡將項目的源和目標兼容性值保留為 Java 7。
打開app模塊下的build.gradle

enter image description here

在android標簽下添加 compile options

gradle clean assembleDebug

既然我們已經啟動瞭守護線程,Remote Debugger將觸發斷點並掛起構建運行。
enter image description here

最後總結下本編文章,主要講瞭AbstractProcessor的使用,在Android Studio構建過程創建Java文件,同時使用他的例子,最後補充瞭一下如何調試Processor的方法。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *