Skip to content

概述

🔥🔥🔥帮助 Android App 改造成AOP架构的框架 AndroidAOP

Build Downloads Python Package Index Docker Pulls Sponsors

简述

        这是一个帮助 Android App 改造成AOP架构的框架,只需一个注解就可以请求权限、切换线程、禁止多点、一次监测所有点击事件、监测生命周期等等,没有使用 AspectJ,也可以定制出属于你的 Aop 代码

特色功能

1、本库内置了开发中常用的一些切面注解供你使用

2、本库支持让你自己做切面,语法简单易上手

3、本库同步支持 Java项目 和 Kotlin项目

4、本库支持切入三方库

5、本库支持切点方法为 Lambda 表达式的情况

6、本库支持切点方法为 suspend 修饰的协程函数

7、本库支持生成所有切点信息Json文件,方便一览所有切点位置在此配置

8、本库支持 debug 快速开发模式,让你打包速度几乎不变在此配置

9、本库支持 组件化开发在此配置

10、本库是纯静态织入AOP代码

11、本库不是基于 AspectJ 实现的,织入代码量极少,侵入性极低

12、丰富完善的使用文档助你完全理解本库的使用规则点此前往wiki文档

13、更有帮助你生成切面代码的插件助手供你使用点此前往下载

点此下载apk,也可扫下边二维码下载

show

Star趋势图

Stargazers over time


欢迎使用 AndroidAOP wiki文档,点击左侧导航栏看你想看的内容👈👈👈

建议您先通过浏览入门来快速了解本库的使用方法,形成大致思路,然后再阅读其他内容。

选择合适的方式可以写出优美的代码,遇到问题请优先通过浏览wiki文档解决,解决不了的再去首页加群交流

本库提供的切面方式分别如下

  • @AndroidAopPointCut 是注解切面,设置的注解加到任意一个方法上即可,当所加方法被调用时即可进入切面处理类
  • @AndroidAopMatchClassMethod 是匹配切面,匹配到某个类的某些方法,当所在类的方法被调用时即可进入切面处理类
  • @AndroidAopReplaceClass 是替换切面,会把设置的类的方法的所有调用处替换成替换切面类的方法
  • @AndroidAopModifyExtendsClass 是修改继承类,会将目标类的继承类换成所注解的类
  • @AndroidAopCollectMethod 是收集继承类

除了 @AndroidAopPointCut 都可以利用 “AOP 代码生成助手”辅助你使用本库

其区别如下:

  • @AndroidAopMatchClassMethod 和 @AndroidAopPointCut 关注的是方法的执行(Method execution)

  • @AndroidAopReplaceClass 关注的是方法的调用(Method call)

  • 注意@AndroidAopReplaceClass 和其他两种的有着本质的区别,前两种关注的是方法的执行,并且会自动保留可以执行原有逻辑的方法(即ProceedJoinPoint);

  • @AndroidAopReplaceClass 关注的是方法的调用,是将所有调用的地方替换为您设置的类的静态方法,并且不会自动保留执行原有逻辑的方法

  • @AndroidAopReplaceClass 的优点在于“相当于”可以监测到某些系统方法(android.jar里的代码)的调用,前两者不具备这个特点,所以如果不是基于此种需求,建议使用 @AndroidAopMatchClassMethod

赞赏

都看到这里了,如果您喜欢 AndroidAOP,或感觉 AndroidAOP 帮助到了您,可以点右上角“Star”支持一下,您的支持就是我的动力,谢谢~ 😃

如果感觉 AndroidAOP 为您节约了大量开发时间、为您的项目增光添彩,您也可以扫描下面的二维码,请作者喝杯咖啡 ☕

捐赠列表

如果在捐赠留言中备注名称,将会被记录到列表中~ 如果你也是github开源作者,捐赠时可以留下github项目地址或者个人主页地址,链接将会被添加到列表中

联系方式