[发明专利]一种Android端基于AOP和AspectJ的日志自动埋点方法及系统有效
申请号: | 201710130215.9 | 申请日: | 2017-03-07 |
公开(公告)号: | CN106970789B | 公开(公告)日: | 2020-06-16 |
发明(设计)人: | 杜文彬 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30 |
代理公司: | 湖北武汉永嘉专利代理有限公司 42102 | 代理人: | 许美红 |
地址: | 430073 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 android 基于 aop aspectj 日志 自动 方法 系统 | ||
1.一种Android端基于AOP和AspectJ的日志自动埋点方法,其特征在于,包括以下步骤:
编写用于日志埋点的自定义注解;
引用面向切面框架的AspectJ编译方式;
编写AspectJ切面程序代码,对需要进行日志埋点的位置定义切入点匹配规则,切入点匹配规则包括多个用通配符或正则表达式表示的连接点,连接点为自定义注解注入的目标入口,在连接点上执行自定义注解中的对日志进行自动埋点的动作;
程序运行时向日志中自动插入埋点,并通过程序自动输出或使用自定义注解标注的方式查看日志输出。
2.根据权利要求1所述的Android端基于AOP和AspectJ的日志自动埋点方法,其特征在于,自定义注解的目标元素类型包括构造函数、方法和字段,注解的作用时段为运行时有效。
3.根据权利要求1所述的Android端基于AOP和AspectJ的日志自动埋点方法,其特征在于,引用AspectJ编译的方法包括:
通过在Gradle构建脚本中,定义任务来执行AspectJ编译;
使用第三方AspectJ集成插件执行AspectJ编译。
4.根据权利要求1所述的Android端基于AOP和AspectJ的日志自动埋点方法,其特征在于,定义的切入点匹配规则包括:
Activity和Fragment类的切入点,用于自动打印Activity和Fragment生命周期函数执行时间和时长;
函数方法切入点,用于自动打印目标函数的执行时长、传入参数和返回结果;
属性切入点,用于自动打印类中定义的属性值变化状况。
5.根据权利要求4所述的Android端基于AOP和AspectJ的日志自动埋点方法,其特征在于,实现Activity和Fragment生命周期函数执行时间和时长自动打印的方法为:
通过切入点函数表示所有继承自Activity和Fragment的类中前缀带有on的函数方法切入点,在对应的切入点函数中执行记录时间差和统计时长的目标方法,将执行结果按格式打印到日志中。
6.根据权利要求4所述的Android端基于AOP和AspectJ的日志自动埋点方法,其特征在于,实现目标函数的执行时长、传入参数和返回结果的自动打印的方法为:
通过切入点函数匹配自定义注解中的函数方法切入点,对所有匹配到的函数方法进行代码注入,通过API获取到该函数方法的参数值,参数值包括目标函数的执行时长、传入参数和返回结果,将执行结果按格式打印到日志中。
7.根据权利要求4所述的Android端基于AOP和AspectJ的日志自动埋点方法,其特征在于,实现类中定义的属性值变化状况的自动打印的方法为:
通过切入点函数匹配自定义注解中的属性切入点,对所有匹配到的属性进行代码注入,通过API获取到该属性值的变化状况,将执行结果按格式打印到日志中。
8.一种Android端基于AOP和AspectJ的日志自动埋点系统,其特征在于,包括:
自动注解单元,用于编写用于日志埋点的自定义注解;
AspectJ编译单元,用于引用面向切面框架的AspectJ编译方式;
切面程序单元,用于编写AspectJ切面程序代码,对需要进行日志埋点的位置定义切入点匹配规则,切入点匹配规则包括多个用通配符或正则表达式表示的连接点,连接点为自定义注解注入的目标入口,在连接点上执行自定义注解中的对日志进行自动埋点的动作;
日志输出单元,用于在程序运行时向日志中自动插入埋点,并通过程序自动输出或使用自定义注解标注的方式查看日志输出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710130215.9/1.html,转载请声明来源钻瓜专利网。