Jaop

jaop is a gradle plugin base on javassist&asm for android aop
Alternatives To Jaop
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Kotlin45,8794,1725,7165 hours ago203July 05, 2023168Kotlin
The Kotlin Programming Language.
Androiddevtools7,621
a month ago8
收集整理Android开发所需的Android SDK、开发中用到的工具、Android开发教程、Android设计规范,免费的设计素材等。
Detekt5,6732811 hours ago30August 30, 2021161apache-2.0Kotlin
Static code analysis for Kotlin
Gradle Retrolambda5,3886834 years ago40April 21, 201974apache-2.0Java
A gradle plugin for getting java lambda support in java 6, 7 and android
Packer Ng Plugin4,796321a year ago12March 03, 201721apache-2.0Java
下一代Android打包工具(对Gradle 7.x的支持,欢迎提PR)
Gradle Versions Plugin3,689111311 days ago20May 31, 201784apache-2.0Kotlin
Gradle plugin to discover dependency updates
Gradle_plugin_android_aspectjx3,499
2 years ago145apache-2.0Groovy
A Android gradle plugin that effects AspectJ on Android project and can hook methods in Kotlin, aar and jar file.
Shadow3,384
3 days ago243apache-2.0Groovy
Gradle plugin to create fat/uber JARs, apply file transforms, and relocate packages for applications and libraries. Gradle version of Maven's Shade plugin.
Aboutlibraries3,32222 days ago103July 17, 20238apache-2.0Kotlin
AboutLibraries automatically collects all dependencies and licenses of any gradle project (Kotlin MultiPlatform), and provides easy to integrate UI components for Android and Compose-jb environments
Dokka3,039126 days ago21June 05, 2023451apache-2.0Kotlin
API documentation engine for Kotlin
Alternatives To Jaop
Select To Compare


Alternative Project Comparisons
Readme

jaop

jaop 是一个基于javassist和asm的gradle aop插件,可以在特定的方法调用处或方法体内 编程
javassist做简单的代码插入,asm做操作数栈分析和字节码的转录
不会新增任何方法,秒杀aspectj
兼容性更好
不支持instant run

配置

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'

用法

@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)); // 设置返回值
    }
}

详情请看sample

Popular Plugin Projects
Popular Gradle Projects
Popular Libraries Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Java
Plugin
Gradle
Asm
Gradle Plugin
Aspectj