JAOP Gradle 插件使用教程
1. 项目目录结构及介绍
jaop/
├── domain/
│ └── ...
├── gradle-plugin/
│ └── ...
├── sample/
│ └── ...
├── .gitignore
├── LICENSE
└── README.md
- domain/:包含项目的核心逻辑和业务代码。
- gradle-plugin/:包含Gradle插件的实现代码。
- sample/:包含示例代码,展示如何使用JAOP插件。
- .gitignore:Git忽略文件,指定哪些文件或目录不需要被Git管理。
- LICENSE:项目许可证文件,本项目使用Apache-2.0许可证。
- README.md:项目说明文件,包含项目的概述、使用方法等信息。
2. 项目的启动文件介绍
JAOP项目没有传统意义上的“启动文件”,因为它是一个Gradle插件,主要通过Gradle构建脚本来启动和配置。以下是主要的启动和配置步骤:
2.1 在build.gradle
中应用插件
在项目的build.gradle
文件中,添加以下配置以应用JAOP插件:
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0' // 需要1.5及以上的plugin
classpath 'jaop.gradle.plugin:gradle-plugin:1.0.4'
}
apply plugin: 'jaop'
2.2 配置插件
在代码中使用@Jaop
注解来配置插件的行为。例如:
@Jaop // 配置文件的开关
public class JaopDemo {
@After("demo.jaop.sample.MainActivity.onCreate") // hook 掉onCreate 方法的方法体
public void replace1(MethodBodyHook hook) {
Button button = (Button) ((Activity) hook.getTarget()).findViewById(R.id.button);
button.setText("text replace by jaop");
}
@Replace("android.widget.Toast.makeText") // hook Toast makeText 方法的调用处 替换toast的文本
public void replace2(MethodCallHook hook) {
Object[] args = hook.getArgs();
hook.setResult(Toast.makeText((Context)args[0], "hook toast", Toast.LENGTH_LONG)); // 设置返回值
}
}
3. 项目的配置文件介绍
3.1 build.gradle
build.gradle
文件是Gradle构建脚本的核心配置文件,用于配置项目的依赖、插件、任务等。在JAOP项目中,build.gradle
文件主要用于配置插件的依赖和应用插件。
3.2 settings.gradle
settings.gradle
文件用于配置项目的模块和子项目。对于JAOP项目,通常不需要特别配置,除非项目包含多个模块。
3.3 gradle.properties
gradle.properties
文件用于配置Gradle构建的属性,例如JVM参数、构建缓存路径等。对于JAOP项目,通常不需要特别配置。
3.4 local.properties
local.properties
文件用于配置本地环境相关的属性,例如Android SDK路径。对于JAOP项目,通常不需要特别配置。
通过以上配置,您可以成功应用JAOP插件并进行AOP编程。