本发明涉及android(安卓)游戏手机技术领域,特别是涉及一种适用于android系统的检测设备卡顿的方法。
背景技术:
当前手机游戏得到越来越多人的青睐,“绝地求生”、“王者荣耀”等大型游戏对手机性能要求较高。当android系统在运行过程中受到cpu(centralprocessingunit;中央处理器)、内存、存储、网络等因素的影响,一旦某个或者多个因素出现性能不足或者没有发挥出应有性能时,对终端用户最直接的影响就是系统卡顿。
对终端用户而言,获悉卡顿的原因后可以采取一定的措施迅速提升设备性能;对终端厂商而言,获悉卡顿的根因可以优化对设备的cpu、内存、存储、网络等管理策略,从源头提升设备性能。
因此,对性能的提升,使终端用户在游戏过程有更好的体验,提升终端厂商的竞争力而言具有意义。
技术实现要素:
为了解决现有技术存在的不足,本发明的目的在于提供一种检测设备卡顿的方法及系统,可以根据终端需求进行检测,并且准确地确定卡顿的原因,能够迅速提升设备性能。
为实现上述目的,本发明提供的检测设备卡顿的方法,包括以下步骤:
应用层设置检测项,并向系统层发送状态监控请求;
系统层根据请求执行状态监控,采集监控数据;以及
对采集的监控数据进行分析,并将分析结果发送至应用层。
进一步地,所述检测项,包括:处理器运行状态检测、物理内存使用状态检测、物理内存与虚拟内存交换状态检测、存储状态检测、以及网络信号质量状态检测中的至少一个。
进一步地,所述系统层根据请求执行状态监控,采集监控数据的步骤,进一步包括:
系统层开启常驻内存的服务,接收应用层的状态监控请求;
判断当前屏幕是否处于开启状态;
如果屏幕处于关闭状态,则当前服务进入入眠状态,并等待再次被唤醒,否则开始执行监控。
进一步地,所述系统层根据请求执行状态监控,采集监控数据,进一步包括:采集单位时间内的使用cpu的进程数目、单位时间内的物理内存的剩余空间大小、单位时间内的从物理存转移到虚拟内存的数据大小和从虚拟内存转移到物理内存的数据大小、单位时间内的cpu等待存储io的时间、以及单位时间内的sim卡网络信号质量和/或wifi网络信号质量中的至少一种数据。
进一步地,所述对采集的监控数据进行分析,并将分析结果发送至应用层的步骤,进一步包括:
将所收集的数据与预设比较条件进行比较;
根据比较结果判断是否出现卡顿;
将分析结果及原因发送至应用层。
进一步地,所述根据比较结果判断是否出现卡顿的步骤,包括,如果判断为所采集到的cpu的进程数目比cpu核数的记录个数大于20条、所采集到的物理内存剩余空间大小除于物理内存总大小的百分比大于10%且小于15%、从物理存转移到虚拟内存的数据大小或从虚拟内存转移到物理内存的数据大小为0的记录条数大于5条、cpu等待存储io的时间大于5的记录个数除于d的百分比大于20%、以及sim卡信号强度小于-105dbm的记录条数或wifi信号强度小于-75dbm的记录条数除以单位时间内采集总条数的百分比大于25%中的至少一种,则认为出现卡顿。
进一步地,包括:使系统层休眠规定时间。
更进一步地,包括:应用层根据分析结果进行提示。
为实现上述目的,本发明提供的检测设备卡顿的系统,包括应用层和系统层,
所述应用层包括:检测项开关单元,其根据需要开启或关闭检测项;和发送接受单元,其将状态监控请求传递至所述系统层,并接收所述系统层的分析结果,
所述系统层包括:发送接收单元,其接收所述应用层的状态监控请求,并向所述应用层发送所述分析结果;判断单元,其判断当前手机屏幕是否处于开启状态;如果手机屏幕处于关闭状态,则当前服务进入入眠状态,并等待再次被唤醒,否则开始执行监控;检测单元,其根据状态监控请求进行检测;和数据采集分析单元,其采集检测数据,并将其与预设比较条件进行比较,并且根据比较结果分析判断是否出现卡顿。
更进一步地,所述应用层进一步包括,提示单元,其根据所述分析结果提醒用户与分析结果相应的处理,
所述系统层进一步包括控制单元,其控制所述系统层进行休眠。
本发明检测设备卡顿的方法及系统,按照用户需要对检测项进行选择,并对其进行检测。由此,用户或厂商能够根据终端需求进行检测,能够准确地确定卡顿的原因。
本发明检测设备卡顿的方法及系统,应用层通过向用户或厂商提供出现卡顿的原因及相应的对应方法。由此,能够采取一定的措施迅速提升设备性能,能够迅速提升设备性能。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的检测设备卡顿的方法流程图;
图2为根据本发明的检测设备卡顿的系统架构图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
检测设备卡顿的方法
实施例一
图1为根据本发明的检测设备卡顿的方法流程图,下面将参考图1,对本发明的适用于android系统的检测设备卡顿的方法进行详细描述。
在步骤101,应用层设置检测项,并向系统层发送状态监控请求。在步骤101中,根据需要开启或关闭检测项;将状态监控请求传递至系统层。在本实施例中,检测项包括:处理器运行状态检测、物理内存使用状态检测、物理内存与虚拟内存交换状态检测、存储io(input/output;输入/输出)状态检测和网络信号质量状态检测,但不限于此。
在步骤102,系统层根据请求执行状态监控,采集监控数据。在步骤102中,系统层开启常驻内存的服务,接收应用层的状态监控请求;判断当前手机屏幕是否处于开启状态;如果手机屏幕处于关闭状态,则当前服务进入入眠状态,并等待再次被唤醒,否则开始执行监控。在本实施例中,在执行处理器运行状态检测时,获取单位时间a内的使用cpu的进程数目(processnum)、在执行物理内存使用状态检测时,获取单位时间b内的物理内存的剩余空间大小(memfreesize)、在执行物理内存与虚拟内存交换状态检测时,获取单位时间c内的从物理存转移到虚拟内存的数据大小(swapoutput)和从虚拟内存转移到物理内存的数据大小(swapinput)、在执行存储io状态检测时,获取单位时间d内的cpu等待存储io的时间(iowait)、在执行网络信号质量状态检测时,获取单位时间e内的sim(subscriberidentificationmodule)卡网络信号质量(sim_dbm)和/或wifi(wirelessfidelity)网络信号质量(wifi_dbm);将获取的数据进行存储。在本实施例中,单位时间a、b、c、d、e可以根据用户需要设定,也可以事先确定,且这些单位时间可以相同,也可以互不相同。
在步骤103,根据采集数据进行分析,并将分析结果发送至应用层。在步骤103中,将所收集的数据与预设比较条件进行比较;根据比较结果判断是否出现卡顿;将分析结果及原因发送至应用层。在本实施例中,分析所采集到的与当前时间最近的a条处理器运行状态记录中,如果cpu的进程数目比cpu核数的记录个数大于20条(processnum-cpu核数的记录个数>20条),则认为因cpu导致卡顿;分析所采集到的与当前时间最近的b条物理内存使用状态记录中,如果物理内存剩余空间大小除于物理内存总大小的百分比大于10%且小于15%(10%<memfreesize/物理内存总大小<15%),则认为因内存不足导致卡顿;分析所采集到的与当前时间最近的c条物理内存使用状态记录中,如果从物理存转移到虚拟内存的数据大小或从虚拟内存转移到物理内存的数据大小为0的记录条数大于5条(swapoutput或swapinput为0的条数>5条),则认为因内存不足导致卡顿;分析所采集到的与当前时间最近的d条存储io状态记录中,如果cpu等待存储io的时间大于5的记录个数除于d的百分比大于20%(iowait为5的个数/d>20%),则认为因存储io任务繁忙导致卡顿;分析所采集到的与当前时间最近的e条网络信号质量记录中,如果sim卡信号强度小于-105dbm的记录条数或wifi信号强度小于-75dbm的记录条数除于e的百分比大于25%(sim_dbm小于-105dbm的记录条数或wifi_dbm小于-75dbm的记录条数/e>25%),则认为因网络信号不良导致卡顿。系统层将监测到的卡顿类型上报到应用层,由应用层通知终端用户或由应用层进行管理。
在步骤104,使系统层休眠规定时间后返回步骤101以循环进行卡顿检测。在本实施例中系统层休眠1秒。
实施例二
本实施例进一步包括步骤105,应用层根据分析结果进行提示。在本实施例中,如果收到因cpu导致卡顿,则提醒用户开启cpu的游戏加速模式;如果收到因内存不足导致卡顿,则提醒用户关闭部分应用;如果收到因存储io任务繁忙导致卡顿,则提醒用户关闭后台下载应用;如果收到因网络信号质量不良导致卡顿,则提醒用户检测网络设置。
检测设备卡顿的系统
图2为根据本发明的适用于android系统的检测设备卡顿的系统200的框图,如图2所示,本发明的检测设备卡顿的系统200包括应用层201和系统层202,其中,应用层201包括:检测项开关单元203,其根据需要开启或关闭检测项;发送接受单元204,其将状态监控请求传递至系统层202,并接收系统层202的分析结果;和提示单元205,其根据分析结果提醒用户与分析结果相应的处理。系统层202包括:发送接收单元206,其接收应用层201的状态监控请求,并向应用层201发送分析结果;判断单元207,其判断当前手机屏幕是否处于开启状态;如果手机屏幕处于关闭状态,则当前服务进入入眠状态,并等待再次被唤醒,否则开始执行监控;检测单元208,其根据状态监控请求进行检测;数据采集分析单元209,其采集检测数据,并将其与预设比较条件进行比较,并且根据比较结果分析判断是否出现卡顿;和控制单元210,其控制系统层202进行休眠,并控制系统层202的各单元。
在本实施例中,检测单元208可以由多个具体的与检测项对应的单元。
根据本发明,按照用户需要对检测项进行选择,并对其进行检测。由此,用户或厂商能够根据终端需求进行检测,能够准确地确定卡顿的原因。
根据本发明,应用层通过向用户或厂商提供出现卡顿的原因及相应的对应方法。由此,能够采取一定的措施迅速提升设备性能,能够迅速提升设备性能。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。