AOP(Aspect Oriented Programming),中文通常翻译成面向切面编程。在Java当中我们常常提及到的是OOP(Object Oriented Programming)面向对象编程。其实这些都只是编程中从不同的思考方向得出的一种编程思想、编程方法。
在开发过程中,对于很多场景可以借助AOP来完成,比如日志监控,异常处理,无侵入的在宿主中插入一些代码等。这里有一篇博文介绍的非常详细《深入理解Android之AOP》,感兴趣的可以深入阅读一下~
本文主要从实践层面来学习下AspectJ的使用,以及实际项目中中,可以给程序开发带来的方便。
AspectJ的配置
1、工程根目录build.gradle配置
2、app目录下build.gradle配置
代码编写
1、自定义切片,在People类的static静态代码块执行完成后,打印一句话。
2、自定义Pointcut && 组合Pointcut, 对MainActivity中的crash进行处理。
编译后MainActivity类和People类信息
1、MainActivity
2、People:
运行程序后日志
Demo地址
地址:https://github.com/xyzlf/AspectjDemo
参考资料
1、Android AOP学习之:AspectJ实践:https://juejin.im/post/58ad3944b123db00672cdeeb
2、看 AspectJ 在 Android 中的强势插入:https://juejin.im/post/587989f48d6d810058bbae01
3、深入理解Android之AOP:http://blog.csdn.net/innost/article/details/49387395