美文网首页
Android炒菜现炒现卖之-------- AOP 环境搭建

Android炒菜现炒现卖之-------- AOP 环境搭建

作者: violet小咔咔 | 来源:发表于2017-06-21 23:05 被阅读0次

之前我们通过炒菜的方式简单介绍了AOP的一些应用范畴,下面我简单的笼络一下我在其他资料上查找出的一些结论:日志记录、业务埋点、持久化、性能监控、性能日志、数据校验、方法的参数校验、缓存、内存缓存和持久缓存、权限检查、业务权限(如登陆,或用户等级)、系统权限(如拍照定位)、异常处理等等多种作用。
常用的工具和库AspectJ:一个 JavaTM 语言的面向切面编程的无缝扩展(适用Android)。Javassist for Android:用于字节码操作的知名 java 类库 Javassist 的 Android 平台移植版。DexMaker:Dalvik 虚拟机上,在编译期或者运行时生成代码的 Java API。ASMDEX:一个类似 ASM 的字节码操作库,运行在Android平台,操作Dex字节码。
今天我来给大家讲解这么叼的东西怎么用。长话短说,请跟我飞完全程,我再一一细细说明。目前使用的比较多的是AspectJ,完全兼容java,也是领导推荐的,我就用它了哈哈。
首先第一步:要想使得扩展性好,使得很多人都可以用上我们使用AOP思想编出来的库,那么首先我们自然要建立一个android lib。
第二步:然后在build.gradle文件上加入依赖org.aspectj:aspectjtools:1.8.9,然后在导入org.aspectj.tools.ajc.Main、org.aspectj.bridge.MessageHandler、org.aspectj.bridge.IMessage

加入依赖
导入AspectJ tools

第三步:非常关键的一步
<pre>
android.libraryVariants.all { variant ->
JavaCompile javaCompile = variant.javaCompile
javaCompile.doLast {
String[] args = ["-showWeaveInfo",
"-1.5",
"-inpath", javaCompile.destinationDir.toString(),
"-aspectpath", javaCompile.classpath.asPath,
"-d", javaCompile.destinationDir.toString(),
"-classpath", javaCompile.classpath.asPath,
]

    MessageHandler handler = new MessageHandler(true);
    new Main().run(args, handler)

    def log = project.logger
    for (IMessage message : handler.getMessages(null, true)) {
        switch (message.getKind()) {
            case IMessage.ABORT:
            case IMessage.ERROR:
            case IMessage.FAIL:
                log.error message.message, message.thrown
                break;
            case IMessage.WARNING:
            case IMessage.INFO:
                log.info message.message, message.thrown
                break;
            case IMessage.DEBUG:
                log.debug message.message, message.thrown
                break;
        }
    }
}

}
</pre>
哈哈,我们导入依赖的配置工作基本就完成啦。接下来我们就把上一篇文章Android炒菜现炒现卖之-------- AOP 环境搭建的内容写入就可以完美的实现炒菜的内容啦
基本流程图可以用下图解释,也是从网上找的,比较流行的图

功能划分图

相关文章

网友评论

      本文标题:Android炒菜现炒现卖之-------- AOP 环境搭建

      本文链接:https://www.haomeiwen.com/subject/nqhxcxtx.html