Java Android与AspectJ并在Eclipse上用Ant构建它

Java Android与AspectJ并在Eclipse上用Ant构建它,java,android,eclipse,ant,aspectj,Java,Android,Eclipse,Ant,Aspectj,我是Android新手,希望使用AspectJ。 我在网上搜索了几篇文章,并按照说明进行操作: 但我想知道是否有可能将这些方面从Android项目中分离出来。在上面的教程链接中,它在同一个项目中包含Android应用程序和方面,但在许多情况下,我们希望Android项目在其隔离空间中保持不变 假设我的Eclipse工作区中有AndroidProject,我想为我的方面创建一个单独的项目,称为“AndroidSpectProject”,它只包含它的方面 我不确定这是否有效,因为在创建.dex文件

我是Android新手,希望使用AspectJ。 我在网上搜索了几篇文章,并按照说明进行操作:

但我想知道是否有可能将这些方面从Android项目中分离出来。在上面的教程链接中,它在同一个项目中包含Android应用程序和方面,但在许多情况下,我们希望Android项目在其隔离空间中保持不变

假设我的Eclipse工作区中有AndroidProject,我想为我的方面创建一个单独的项目,称为“AndroidSpectProject”,它只包含它的方面

我不确定这是否有效,因为在创建.dex文件之前,我们似乎需要让AspectJ编译器向.class文件注入切点和建议。从这个意义上讲,我可能无法在单独的项目中完成它

有人试过这个吗

另一个相关问题是: 有没有可能让Ant构建一个AndroidProject,有方面和没有方面?这可以在Eclipse之外完成吗


我正在寻找一种构建不同风格的方法,因为我只是在dev/debug构建时将切入点注入AndroidProject,但在发布构建时将保持不变。

是否执行编译时方面取决于是否运行aspectj。为AOP和非AOP构建分别设置目标或属性,或者基于目标名称或属性构建一个目标或属性,或者同时构建它们并更改工件名称


IIRC Eclipse允许您指定要在构建上运行的Ant目标。

在Eclipse内部,这很简单。只需将AndroidSpectProject添加到AndroidProject的方面路径


在ant内部,有几种方法可以做到这一点。但是,最简单的方法是定义两个目标。一个使用iajc,另一个使用javac编译源代码。然后,您需要在目标之间使用一个小小的ant魔法开关,这取决于您是为开发人员还是为生产人员而编译。

谢谢Dave。您是否介意分享一下如何将其设置为示例,这样我就可以看到它是如何完成的。我想我必须首先将“AndroidSpectProject”作为Eclipse中的Android项目,对吗?然后手动添加AspectJ特性。谢谢Andrew,他们可以选择将Android项目作为库,我应该用它来代替吗?这样行吗?我的最终目标是使我的一些方面类具有足够的通用性,成为团队中其他开发人员使用的库。谢谢将方面转换为库可能是一个很好的长期目标,但这使得开发和调试它们变得更加困难。因为每次你想使用它们的时候都需要把它们放进罐子里。嗨,安德鲁,所以在Android项目中使用AspectJ的最好方法就是把它们放在同一个项目中,并将Android项目转换为Aspect项目。那么,在构建调试(Eclipse)构建和发布(Ant)构建时,是否要创建一个构建风格?在我的团队中,我们有许多Android应用程序项目使用基本相同的API集,因此最好将其作为一个库,因为大多数调用的切入点都是通用的Android API调用。你有什么建议?谢谢你,我听从了你对Eclipse的建议,但还是没能让它发挥作用。我需要先将AndroidProject转换为AspectJ项目吗?