Android中的面向切面编程

17

如何在Android应用中实现面向切面编程(AOP)是最佳的方式?

这种方法对于移动电池是否高效?


2
AOP与电池有什么关系?虽然AOP可能在方法中注入代码来实现技术,但对电池的影响肯定与以其他方式运行该代码的影响相同吧? - bzlm
我想这只是效率问题。如果AOP是实现代码更有效的方式,那么会对电池更加友好。然而,这将是一件非常难以衡量的事情,而且影响可能非常微小。 - fredley
Fernando Cejas撰写了一篇关于Android中AOP的博客文章。基本上,您可以使用两种方法:1.使用AspectJ 2.使用动态代理。https://fernandocejas.com/2014/08/03/aspect-oriented-programming-in-android/ - aldok
1个回答

17

这取决于它的实现方式。

例如,AspectJ的编译时织入在Android上可以工作,但运行时织入则不行。 Android不支持字节码生成。

请查看Guice wiki

在幕后,方法拦截是通过在运行时生成字节码来实现的。Guice动态创建一个子类,通过覆盖方法应用拦截器。如果您使用的平台不支持字节码生成(如Android),则应该使用不带AOP支持的Guice。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接