Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Kotlin | 45,879 | 4,172 | 5,716 | 5 hours ago | 203 | July 05, 2023 | 168 | Kotlin | ||
The Kotlin Programming Language. | ||||||||||
Androiddevtools | 7,621 | a month ago | 8 | |||||||
收集整理Android开发所需的Android SDK、开发中用到的工具、Android开发教程、Android设计规范,免费的设计素材等。 | ||||||||||
Detekt | 5,673 | 28 | 11 hours ago | 30 | August 30, 2021 | 161 | apache-2.0 | Kotlin | ||
Static code analysis for Kotlin | ||||||||||
Gradle Retrolambda | 5,388 | 68 | 3 | 4 years ago | 40 | April 21, 2019 | 74 | apache-2.0 | Java | |
A gradle plugin for getting java lambda support in java 6, 7 and android | ||||||||||
Packer Ng Plugin | 4,796 | 32 | 1 | a year ago | 12 | March 03, 2017 | 21 | apache-2.0 | Java | |
下一代Android打包工具(对Gradle 7.x的支持,欢迎提PR) | ||||||||||
Gradle Versions Plugin | 3,689 | 11 | 13 | 11 days ago | 20 | May 31, 2017 | 84 | apache-2.0 | Kotlin | |
Gradle plugin to discover dependency updates | ||||||||||
Gradle_plugin_android_aspectjx | 3,499 | 2 years ago | 145 | apache-2.0 | Groovy | |||||
A Android gradle plugin that effects AspectJ on Android project and can hook methods in Kotlin, aar and jar file. | ||||||||||
Shadow | 3,384 | 3 days ago | 243 | apache-2.0 | Groovy | |||||
Gradle plugin to create fat/uber JARs, apply file transforms, and relocate packages for applications and libraries. Gradle version of Maven's Shade plugin. | ||||||||||
Aboutlibraries | 3,322 | 2 | 2 days ago | 103 | July 17, 2023 | 8 | apache-2.0 | Kotlin | ||
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 | ||||||||||
Dokka | 3,039 | 12 | 6 days ago | 21 | June 05, 2023 | 451 | apache-2.0 | Kotlin | ||
API documentation engine for Kotlin |
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