3

我正在迈出 Android 开发的第一步,并了解诸如 Fragment 的生命周期之类的事情,我正在使用将调用记录器作为第一行的方法,例如

@Override
public void onCreate(Bundle savedInstanceState) {
    logger.debug("> onCreate(" + savedInstanceState + ")");
    ...
}

这很好用,除了将这些消息添加到每个方法中相当麻烦,而且它使代码有点难以阅读。我发现使用AspectJ和其他工具(例如jcabi-aspects)可以使用类似这样的东西:

@Loggable(Loggable.DEBUG)
public String load(URL url) {
    return url.openConnection().getContent();
}

这将打印:

[DEBUG] #load('http://www.google.com'): returned "<html ..." in 23ms

这听起来很酷,但是我该如何将这个功能添加到 Android Studio 中呢?我可以找到Eclipse 的指南和这个IntelliJ 帮助页面(但不是提到的插件),但我不知所措。我欢迎一份关于如何开始使用 AspectJ(也许还有 jcabi-aspects)的迷你指南。

4

1 回答 1

1

IntelliJ 帮助页面上提到的插件可以在我的 IDEA 13 安装中轻松找到: IntelliJ IDEA 中的 AspectJ 插件

对于 Eclipse,AspectJ 支持比 IDEA 成熟得多,因为 AspectJ 本身就是一个 Eclipse 项目。尽管我在 95% 的开发用例中更喜欢 IDEA,但在涉及 AspectJ 支持时,我使用 Eclipse。您需要在那里安装AspectJ 开发工具 (AJDT)

最好的想法是为您的 Java + AspectJ 努力设置一个 Maven 项目,这样您就可以通过命令行构建或轻松地将 Maven 项目导入 IDEA 和 Eclipse。您想为此目的使用AspectJ Maven 插件

可以通过官方AspectJ 文档中的资源学习 AspectJ 本身。在那里你可以找到“入门”、“编程指南”、“快速参考”、“成语”、“陷阱”、“示例”和其他部分。

祝你好运!

PS:你可以使用你最喜欢的网络搜索引擎来找到我刚刚告诉你的内容。

于 2014-07-23T10:17:48.477 回答