/AspectPlugin

aspect 自动集成插件

Primary LanguageGroovyApache License 2.0Apache-2.0

AspectPlugin

aspect 自动集成插件(适用于 Android Studio 环境下,其它环境下未测试)

Release Version  

更新说明

2.5.1 修复 bug

2.5 适配 gradle 8.0

2.4 解决 Linux 和 mac 下编译出错的问题

2.3 解决 java 和 kotlin 混编时的缓存问题

2.0 支持 java 和 kotlin 混编

使用方法

在根目录的 build 中加入如下代码

buildscript {
    repositories {
       ...
       maven { url 'https://jitpack.io' }
    }
    dependencies {
        ...
        classpath 'com.github.2017398956:AspectPlugin:2.5.1'
    }
}

在需要的 module 中添加如下代码

apply plugin: 'AspectPlugin'
dependencies { api 'org.aspectj:aspectjrt:1.9.6'}

另外,如果使用了 kotlin 要把 apply plugin: 'AspectPlugin' 放在 apply plugin: 'kotlin-xxx' 后面

注意 :进行 AOP 操作的文件和 AOP 操作的对象要在一个 module 中。

关于跨 module 操作、 对 jar 或 aar 进行 aop 操作,等我有空再支持吧。

这里提供一个临时解决跨 module 的方案,例如:你需要在 B module 中对 A module 的 LogXXX.java 进行 aop 操作,那么你可以在 A module 中 写一个 AspForLogxxxx.java 的文件,并在这个 AspForLogxxxx.java 添加一个 listener (或者 一个 listener 集合);然后在 B moudle 中 通过实例化这个 listener 或者往这个集合中添加 listener 的方式来绕过跨 module 的问题。

一个简单的 Demo : AspectPluginDemo

应用示例:AbcPermission