原文地址:http://www.jianshu.com/p/be8a573f5810
相關文章:http://www.jianshu.com/p/dca3e2c8608a
大神要不是去了簡書要不就是有自己的博客,CSDN日不就已?
AOP是什麼這裏不多作解釋了,個人理解總結下來就是相對於各個垂直深入的業務邏輯,每個業務邏輯深度的某個層面他們有需要共同的特徵,此時對這種特徵進行統一的處理,也就是所謂的AOP(歡迎拍磚哈,技術在討論中提升)
主要應用場景:
- 權限檢查
- 日誌記錄
- 性能監控
- 埋點操作
Android 下一些可以進行AOP的工具
APT
在編譯時生成 .java 文件。
代表作品 ButterKnife 、 DataBinding、 EventBus3、Dagger2 等。
AspectJ
在.java編譯爲.class的時候,進行代碼注入。
代表作品: Hugo
Javassist
對已經編譯好的class文件進行操作。
代表作品: 各類熱修復框架(爲了解決類校驗問題)。
各個工具操作時機圖: