一种Android应用性能监控统计方法及系统与流程

文档序号:17158274发布日期:2019-03-20 00:17阅读:732来源:国知局
一种Android应用性能监控统计方法及系统与流程

本发明涉及一种android应用性能监控统计方法及系统,属于android监控领域。



背景技术:

随着智能手机的普及和移动网络的高速发展,截至2018年6月30日,中国网民达到8.02亿,其中手机网民为7.88亿,占网民总数的98.3%。而在手机网民中,android用户占到了总用户的69.7%,由上可见android设备是国内联网的绝对主力。android系统自发布之初便奉行开放、开源、免费、可定制的原则,使得android系统能在短时间内吸引了广大的硬件厂商、软件厂商、开发者,随着google和广大开发商这些年的不断努力,android日趋完善。

由于移动应用都是安装在手机上,有可能因为系统版本、屏幕分辨率、手机品牌、手机型号等差异化的原因,造成卡顿、无响应、占用资源、闪退等非常影响用户体验的情况。同时由于是安装在手机上的移动应用,使用场景也比互联网时代的pc要更加复杂。即使是测试也未必能将所有情况都测试到,故针对android设备的应用性能监控势在必行。现在市面上没有一款覆盖较为全面的性能监控方案。



技术实现要素:

为了解决上述技术问题,本发明提供了一种android应用性能监控统计方法及系统。

为了达到上述目的,本发明所采用的技术方案是:

一种android应用性能监控统计方法,其特征在于:包括以下步骤,

响应于app启动,对系统进行自检;

响应于app运行,对网络和屏幕进行监控;

响应于app运行错误,收集系统抛出来的异常信息。

系统自检的过程为,

响应于app启动,开始启动计时,同时启动界面;

检测系统环境;

检测结束后停止启动计时,若检测信息无异常,则将检测信息记录到运行日志中,同时通知界面跳转到主界面;若检测信息有异常,则将检测信息记录到运行日志中,提示用户是否上传运行日志。

检测信息包括屏幕信息、网络信息、手机硬件信息、系统信息和权限信息。

网络监控的过程为,

响应于请求网络,开始网络监控计时,同时发出请求信息;

若在预设的时间内有返回值,则接收到返回值时停止网络监控计时,将网络连接类型、请求信息和返回时间记录到运行日志中;

若在预设的时间内有返回值,则将网络连接类型和请求信息记录到运行日志中,提示用户是否上传运行日志。

屏幕监控的过程为,

触发界面跳转;

响应于第一个界面onstop(),开始屏幕监控计时;

检测界面跳转过程中fps、sf丢帧和sm流畅度;

响应于第二个界面onresume(),停止屏幕监控计时,将两个界面名、总耗时、fps、sf丢帧、sm流畅度记录在运行日志中。

异常信息收集的过程为,

响应于接收到系统抛出来的异常信息,收集系统信息、网络信息和app信息;

将系统信息、网络信息、app信息和异常信息记录到异常日志中。

异常日志手动或自动上传后台,后台接收后,向开发人员发出处理提示信息。

一种android应用性能监控统计系统,包括,

自检模块:响应于app启动,对系统进行自检;

监控模块:响应于app运行,对网络和屏幕进行监控;

异常收集模块:响应于app运行错误,收集系统抛出来的异常信息。

一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行一种android应用性能监控统计方法。

一种计算设备,包括一个或多个处理器、存储器以及一个或多个程序,其中一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行一种android应用性能监控统计方法的指令。

本发明所达到的有益效果:1、本发明先对系统环境进行自检,在运行过程中,对网络和屏幕进行监控,运行错误时,对异常信息进行收集,相对于现有的监控方案监控更加全面;2、只在每次执行操作的时候才进行监测和记录,最大限度平衡了功耗和实时性;3、异常日志和运行日志分离,减少了日志上传时的网络流量,加快了问题定位的速度。

附图说明

图1为本发明流程图;

图2为自检流程图;

图3为网络监控流程图;

图4为屏幕监控流程图;

图5为vsync机制垂直同步机制示意图;

图6为vsync机制中跳帧示意图;

图7为异常信息收集流程图。

具体实施方式

下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。

如图1所示,一种android应用性能监控统计方法,包括以下步骤:

步骤1,响应于app启动,对系统进行自检。

自检是在app启动时(包括热启动和冷启动)做的一些有关系统环境的检测,具体过程如图2所示。

系统自检的过程:

11)响应于app启动,开始启动计时,同时启动界面;

12)检测系统环境;

检测信息包括屏幕信息、网络信息、手机硬件信息、系统信息和权限信息。

屏幕信息包括分辨率、密度;网络信息包括连接类型、支持连接类型;手机硬件信息包括生产厂商、手机型号和cpu信息,cpu信息包括型号、支持的abi;系统信息包括系统版本;

13)检测结束后停止启动计时,若检测信息无异常,则将检测信息记录到运行日志中,同时通知界面跳转到主界面;若检测信息有异常,则将检测信息记录到运行日志中,提示用户是否上传运行日志。

步骤2,响应于app运行,对网络和屏幕进行监控。

如图3所示,网络监控的过程:

211)响应于请求网络,开始网络监控计时,同时发出请求信息;

212)若在预设的时间内有返回值,则接收到返回值时停止网络监控计时,将网络连接类型、请求信息和返回时间记录到运行日志中;

213)若在预设的时间内有返回值,则将网络连接类型和请求信息记录到运行日志中,提示用户是否上传运行日志。

如图4所示,屏幕监控的过程:

221)触发界面跳转;

222)响应于第一个界面onstop()(该方法在界面即将从手机屏幕消失时触发,中文名称叫界面停止,是现有的方法),开始屏幕监控计时;

223)检测界面跳转过程中fps、sf丢帧和sm流畅度;

224)响应于第二个界面onresume()(该方法在界面即将在屏幕上显示时触发,中文名称叫界面恢复,是现有的方法),停止屏幕监控计时,将两个界面名、总耗时、fps、sf丢帧、sm流畅度记录在运行日志中。

如图5所示,android系统使用vsync(垂直同步)机制进行绘制,在vsync机制下的绘图过程,在每个vsync时间切片中,cpu先测量、计算要显示的内容,接着gpu接过内容在屏幕上进行渲染。当前fps为60帧,即cpu+gpu测量计算显示的时间不能超过1/60≈0.01666667s,约等于16ms。如果每帧都能在16ms内完成,则能确保60帧的帧率,即用户感知不到卡顿。但如果超过了16ms的时间切片,便会出现如图6的情况。图中b帧的gpu绘制时间过程比较长,使得b帧总体时间超过了vsync时间切片,造成第2帧的缺失,即丢帧。a帧由于cpu计算的时间过长,导致此帧也超过了16.6ms,同样带来了丢帧。丢帧越多,用户感知越明显,越是影响用户体验。通过该机制,我们可以得知,只要保持60帧的fps即可使应用流畅。

在android中我们可以通过官方的choreographer这个类来获取测量流畅度的相关数据,进而可以得出当前app的流畅度。

步骤3,响应于app运行错误,收集系统抛出来的异常信息。

如图7所示,异常信息收集的过程:

31)响应于接收到系统抛出来的异常信息,收集系统信息、网络信息和app信息;

32)将系统信息、网络信息、app信息和异常信息记录到异常日志中;

33)如果设置了异常信息自动上传,则将运行日志上传到后台;如果未设置,则提示用户上传异常日志;后台接收后,向开发人员发出处理提示信息(如邮件等)。

上述方法先对系统环境进行自检,在运行过程中,对网络和屏幕进行监控,运行错误时,对异常信息进行收集,相对于现有的监控方案监控更加全面;上述方法只在每次执行操作的时候才进行监测和记录,最大限度平衡了功耗和实时性;上述方法异常日志和运行日志分离,减少了日志上传时的网络流量,加快了问题定位的速度。

一种android应用性能监控统计系统,包括:

自检模块:响应于app启动,对系统进行自检。

监控模块:响应于app运行,对网络和屏幕进行监控。

异常收集模块:响应于app运行错误,收集系统抛出来的异常信息。

一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行android应用性能监控统计方法。

一种计算设备,包括一个或多个处理器、存储器以及一个或多个程序,其中一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行android应用性能监控统计方法的指令。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上仅为本发明的实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均包含在申请待批的本发明的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1