1.一种基于AspectJ的移动端性能指标监控方法,其特征在于:该方法在不修改源代码的情况下给程序动态添加功能,实现对移动端App的启动指标、交互指标、内存指标、进程指标、卡顿指标、文件指标、网络指标、APN/VPN指标进行性能监控,包括以下步骤:(1)将实现的SDK集成到相应的APP内;(2)用户使用终端操作该移动APP;(3)APP启动时,加载sdk方法,初始化RPC框架和采集的关键类信息;(4)在程序调用okHttp底层发送数据请求时,AspectJ针对okHttp方法进行切入拦截,获取请求的相关信息;在APP切换时调用Activity,AspectJ针对Activity方法进行切入拦截采集性能数据;当SDK内发生异常时,AspectJ针对全局异常进行捕获处理,确保不影响第三方app应用正常运行,从而实现无侵入式移动端监控;(5)创建定时任务,将采集的数据,通过RPC发送给链路监控平台,从而更直观地查看移动端的监控信息;步骤(1)具体包括:(1-1)在Android工程中修改build.gradle配置,增加AspectJ的类引用来引入AspectJ,从而实现在字节码层次上非侵入式地监控目标应用运行中的各类指标系数;(1-2)在切面类上使用@Aspect注解标明此类为切面类,切面类包括对目标应用的各类指标进行监控、对全局未捕获异常进行处理操作,实现对Activity、OkHttp或基类的监控以及全局异常处理,保证抛出未捕获异常后不会影响目标应用正常运行;(1-3)在已声明的切面类中通过@PointCut声明切点,切点通过类的全限定名或包名指定需要操作的类或方法作为切点,通过下一步中的处理方法在编译期织入添加的代码逻辑,实现对目标应用的监控;(1-4)使用@Before、@Around、@After、@AfterThrowing注解声明处理方法,注解中参数为上一步声明的切点,由切点定位监控类或方法;其中:@Before在切点方法前执行处理方法中的逻辑代码;@Around在切点方法前后都要执行处理方法中的逻辑代码;@After在切点方法后执行处理方法中的逻辑代码;@AfterThrowing在抛出异常后执行处理方法中的逻辑代码;此处代码对所有未捕获异常进行处理,确保在抛出异常后,不会对目标应用产生影响;(1-5) 当切点中配置的类或方法被调用时,记录被监控指标的各种参数信息,缓存至数据库;由定时任务,每隔一段时间将监控采集的数据发送给链路监控平台,完成对目标应用各类指标的监控。
2.根据权利要求1所述的基于AspectJ的移动端性能指标监控方法,其特征在于:步骤(2)中用户使用终端操作该移动APP,正常操作业务数据,与不接入SDK无区别,用户无感知。