Android AOP编程学习与实践

本文介绍了Android中的AOP编程,主要用于登录权限控制。通过AspectJ和Lancet框架,实现了登录拦截功能,并详细阐述了面向切面编程的概念、特点及应用场景。文章包含案例演示,展示了如何在未登录状态下进行VIP登录校验并弹出提示,以及如何优化AOP处理,使外部能自定义未登录时的操作。
摘要由CSDN通过智能技术生成

AOP背景:

把我们某个方面的功能提出来与一批对象进行隔离,这样与一批对象之间的耦合度就降低了,就只需要对某个功能进行编程。例如android中的登陆权限问题,只需要在特定的方法加入我们的登陆切点,在不改变业务逻辑的情况下可以变更我们判断登录 的业务逻辑,这样就达到了松耦合的目的,在编译成.class时注入.

如果说,OOP是把问题划分到单个模块的话,那么AOP就是把涉及到众多模块的某一类问题进行统一管理.

Android AOP就是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,提高开发效率

 

什么是面向切面编程?

在运行期间,动态的将代码块切入到特定的类、代码块的编程思想就是面向切面编程

特点:1、针对同一类问题统一处理

            2、无侵入添加代码

AOP用途

AOP可用于日志埋点、性能监控、动态权限控制、甚至是代码调试等等

 

AOP应用之Java Aspect 

基础知识

AspectJ

是一个面向切面编程的框架,他扩展了java语言所以他有一个专门的编译器用来生成遵循java字节码规范的Class文件

Aspect:切面      [切入指定类、指定方法的代码块称为切面]

Pointcut:切点    [切入到那些类、哪些方法则称为切点]

Around:处理

joinPoint(连接点):[aspectJ中的ProceedingJoinPoint]和方法有关的前前后后都是连接点

Advice: 一种hook,要插入代码的位置

              Before pointcut之前;After pointCut之后; Around pointCut之前之后执行

exccution() 切入点函数

注解:

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}

 定义一个注解都要包含 @Target @Retention

@Target  标识运用在哪里(是方法/类/....)

public enum ElementType {
    /** Class, interface (including annotation type), or enum declaration */
    TYPE,

    /
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值