ButterKnife 源碼解析 (三) -- 手寫 ButterKnife 實現無性能損耗的編譯時框架

2. ButterKnife 爲什麼執行效率爲什麼比其他注入框架高?

ButterKnife 使用了註解處理技術,可以自動生成相應代碼,一是爲了提高編碼的效率,二是避免在運行期大量使用反射,通過在編譯期利用反射生成輔助類和方法以供運行時使用。

3. 自定義註解處理器

瞭解了基本的知識點後,我們應該嘗試去使用這些技巧。 接下來是實踐時間,我們來開發一個簡單的例子,利用註解處理器來自動產生隨機數字和隨機字符串。

  • 1.首先創建一個 project
  • 2.創建 lib_annotations, 這是一個純 javamodule,不包含任何 android 代碼,只用於存放註解
  • 3.創建 lib_compiler, 這同樣是一個純 javamodule。該 module 依賴於步驟2創建的 module_annotation, 處理註解的代碼都在這裏,該 moduule 最終不會被打包進 apk,所以你可以在這裏導入任何你想要的任意大小依賴庫
  • 4.創建 lib_api, 對該 module 不做要求,可以是 android library 或者 java library 或者其他的。該 module 用於調用步驟3生成的輔助類方法。

自定義註解處理的使用可參考完整的demo地址

參考鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章