[发明专利]一种Android端基于AOP和AspectJ的日志自动埋点方法及系统有效
申请号: | 201710130215.9 | 申请日: | 2017-03-07 |
公开(公告)号: | CN106970789B | 公开(公告)日: | 2020-06-16 |
发明(设计)人: | 杜文彬 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30 |
代理公司: | 湖北武汉永嘉专利代理有限公司 42102 | 代理人: | 许美红 |
地址: | 430073 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 android 基于 aop aspectj 日志 自动 方法 系统 | ||
本发明公开了一种Android端基于AOP和AspectJ的日志自动埋点方法及系统,该方法包括以下步骤:编写用于日志埋点的自定义注解;引用面向切面框架的AspectJ编译方式;编写AspectJ切面程序代码,对需要进行日志埋点的位置定义切入点匹配规则,切入点匹配规则包括多个用通配符或正则表达式表示的连接点,连接点为自定义注解注入的目标入口,在连接点上的相应位置执行自定义注解中的对日志进行自动埋点的动作;程序运行时向日志中自动插入埋点,并通过程序自动输出或使用自定义注解标注的方式查看日志输出。本发明实现了日志自动埋点,统一日志风格,使用注解方式提高开发量,将可以有效减少开发代码量和实现代码解耦提高开发效率。
技术领域
本发明涉及Android端软件编程技术领域,尤其涉及一种Android端基于AOP和AspectJ的日志自动埋点方法及系统。
背景技术
在目前Android客户端项目开发过程中,基本是多人合作开发模式,在开发过程中需要调试打印Log日志以便记录和观察功能模块执行是否有误,Log日志对于开发人员来说是极为重要的检测程序流程逻辑是否正确的检测手段,在多人合作开发过程中由于每个人开发习惯和行为可能不一致,这样会导致代码杂乱。
AspectJ的动机是发现那些使用传统的编程方法无法很好处理的问题。考虑一个要在某些应用中实施安全策略的问题。安全性是贯穿于系统所有模块间的问题,每个模块都需要应用安全机制才能保证整个系统的安全性,这里的安全策略的实施问题就是一个横切关注点,使用传统的编程解决此问题非常的困难而且容易产生差错。
传统的面向对象编程中,每个单元就是一个类,而类似于安全性这方面的问题,它们通常不能集中在一个类中处理因为它们横跨多个类,这就导致了代码无法重用,可维护性差而且产生了大量代码冗余。
发明内容
本发明要解决的技术问题在于针对现有技术中由于不同开发人员的不同开发习惯,导致日志代码杂乱,传统的面向对象编程可维护性差而且产生了大量代码冗余的缺陷,提供一种Android端基于AOP和AspectJ的日志自动埋点方法及系统。
本发明解决其技术问题所采用的技术方案是:
本发明提供一种Android端基于AOP和AspectJ的日志自动埋点方法,包括以下步骤:
编写用于日志埋点的自定义注解;
引用面向切面框架的AspectJ编译方式;
编写AspectJ切面程序代码,对需要进行日志埋点的位置定义切入点匹配规则,切入点匹配规则包括多个用通配符或正则表达式表示的连接点,连接点为自定义注解注入的目标入口,在连接点上的相应位置执行自定义注解中的对日志进行自动埋点的动作;
程序运行时向日志中自动插入埋点,并通过程序自动输出或使用自定义注解标注的方式查看日志输出。
进一步地,本发明的自定义注解的目标元素类型包括构造函数、方法和字段,注解的作用时段为运行时有效。
进一步地,本发明的引用AspectJ编译的方法包括:
通过在Gradle构建脚本中,定义任务来执行AspectJ编译;
使用第三方AspectJ集成插件执行AspectJ编译。
进一步地,本发明的定义的切入点匹配规则包括:
Activity和Fragment类的切入点,用于自动打印Activity和Fragment生命周期函数执行时间和时长;
函数方法切入点,用于自动打印目标函数的执行时长、传入参数和返回结果;
属性切入点,用于自动打印类中定义的属性值变化状况。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710130215.9/2.html,转载请声明来源钻瓜专利网。