程序的运行监控方法、装置及设备
文献发布时间:2023-06-19 11:08:20
技术领域
本申请涉及计算机技术领域,特别涉及一种程序的运行监控方法、装置及设备。
背景技术
在计算机技术快速发展的背景下,小程序逐渐兴起成为产业互联网的重要基础设施。随着小程序生态的逐步完善,小程序的应用场景也在不断扩展。车载工具、刷脸支付等都成了小程序新的服务场景。因此,为了优化小程序的使用体验、防止用户流失,对于小程序的运行监控显得尤为重要。
发明内容
本申请提供了一种程序的运行监控方法、装置及设备,能够解决相关技术中的问题。
一方面,提供了一种程序的运行监控方法,所述方法包括:
加载程序包,所述程序包包括业务代码与监控代码,所述业务代码与所述监控代码相互独立,所述监控代码用于监控所述业务代码的前端运行情况;
通过所述监控代码获取所述业务代码运行过程中的运行状态信息,所述运行状态信息包括所述业务代码运行过程中的全生命周期的运行状态信息;
将所述运行状态信息作为监控数据发送至后台服务器。
在一种可能的实施方式中,所述通过所述监控代码获取所述业务代码运行过程中的运行状态信息,包括:
通过所述监控代码对所述业务代码进行重写,得到注有钩子函数的业务代码,通过所述钩子函数获取所述业务代码运行过程中的运行状态信息,所述钩子函数被注入到所述业务代码的所有函数中。
在一种可能的实施方式中,所述将所述运行状态信息作为监控数据发送至后台服务器,包括:
响应于所述业务代码的运行环境为断网或弱网状态,将所述运行状态信息进行缓存;
响应于所述业务代码的运行环境为联网状态,将缓存的所述运行状态信息作为监控数据发送至后台服务器。
在一种可能的实施方式中,将所述运行状态信息作为监控数据发送至后台服务器之后,所述方法还包括:
通过所述后台服务器将所述监控数据生成后台报表,所述后台报表用于定位运行错误信息。
在一种可能的实施方式中,所述运行状态信息包括运行错误信息、运行环境信息和网络请求返回异常信息中的至少一种。
另一方面,提供了一种程序的运行监控装置,所述装置包括:
加载模块,用于加载程序包,所述程序包包括业务代码与监控代码,所述业务代码与所述监控代码相互独立,所述监控代码用于监控所述业务代码的前端运行情况;
获取模块,用于通过所述监控代码获取所述业务代码运行过程中的运行状态信息,所述运行状态信息包括所述业务代码运行过程中的全生命周期的运行状态信息;
发送模块,用于将所述运行状态信息作为监控数据发送至后台服务器。
在一种可能实现方式中,所述获取模块,用于通过所述监控代码对所述业务代码进行重写,得到注有钩子函数的业务代码,通过所述钩子函数获取所述业务代码运行过程中的运行状态信息,所述钩子函数被注入到所述业务代码的所有函数中。
在一种可能实现方式中,所述发送模块,用于响应于所述业务代码的运行环境为断网或弱网状态,将所述运行状态信息进行缓存;响应于所述业务代码的运行环境为联网状态,将缓存的所述运行状态信息作为监控数据发送至后台服务器。
在一种可能实现方式中,所述装置还包括:
生成模块,用于通过所述后台服务器将所述监控数据生成后台报表,所述后台报表用于定位运行错误信息。
在一种可能实现方式中,所述运行状态信息包括运行错误信息、运行环境信息和网络请求返回异常信息中的至少一种。
另一方面,还提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以使计算机设备实现上述任一项所述的程序的运行监控方法。
另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现上述任一项所述的程序的运行监控方法。
另一方面,还提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,处理器执行所述计算机指令,使得所述计算机设备执行上述任一所述的程序的运行监控方法。
本申请实施例提供的技术方案至少带来如下有益效果:
本申请实施例提供的技术方案通过引入独立的监控代码,对业务代码的前端运行进行全生命周期的监控,将运行状态信息作为监控数据上报给后台服务器。实现了监控代码与业务代码的解耦,方便了后期业务代码的修改,填补了对于前端运行错误监控的空缺,能够将程序全生命周期的运行监控信息及时的反馈给开发人员,及时的发现问题并解决问题,提高程序的运行监控的效率,同时提高用户的使用体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种程序的运行监控方法的实施环境的示意图;
图2是本申请实施例提供的一种程序的运行监控方法的流程图;
图3是本申请实施例提供的一种程序的运行监控装置的示意图;
图4是本申请实施例提供的一种程序的运行监控装置的示意图;
图5是本申请实施例提供的一种程序的运行监控设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请实施例提供了一种程序的运行监控方法,请参考图1,其示出了本申请实施例提供的程序的运行监控方法的实施环境的示意图。该实施环境包括:终端11和服务器12。
其中,终端11中运行有程序,该程序可以为小程序,且该小程序为被监控的小程序。小程序意为体积较小、功能相对单一的应用程序,具有无需关注、无需下载、即开即用的特性。服务器12与该小程序关联,为该小程序提供服务。终端11在运行小程序的过程中,服务器12通过在终端11的小程序包中加入监控代码,监控代码用于获取小程序包中的业务代码的全生命周期的运行状态信息,终端11将获取的运行状态信息发送至服务器12,从而实现了对终端11上的小程序的监控。
本申请实施例应用于对目标程序进行监控的场景下。例如,技术人员开发出某一程序后,可以将开发出的程序安装于某一终端上,终端采用本申请实施例提供的方法,对该程序的前端运行进行监控,将监控得到的运行状态信息上报给后台服务器,开发人员可根据上报的数据准确定位问题并及时解决。所监控的程序可以为小程序,小程序可以为商城型小程序、展示型小程序、预约类小程序等。
在一种可能实现方式中,终端11可以是任何一种可与用户通过键盘、触摸板、触摸屏、遥控器、语音交互或手写设备等一种或多种方式进行人机交互的电子产品,例如PC(Personal Computer,个人计算机)、手机、智能手机、PDA(Personal Digital Assistant,个人数字助手)、可穿戴设备、掌上电脑PPC(Pocket PC)、平板电脑、智能车机、智能电视、智能音箱等。服务器12可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端与服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
本领域技术人员应能理解上述终端11和服务器12仅为举例,其他现有的或今后可能出现的终端或服务器如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
基于上述图1所示的实施环境,本申请实施例提供一种程序的运行监控方法,该方法可以应用于图1所示的终端11中安装的程序。如图2所示,本申请实施例提供的方法包括如下步骤201至步骤203。
步骤201,加载程序包,程序包包括业务代码与监控代码,业务代码与监控代码是相互独立,监控代码用于监控业务代码的前端运行情况。
在一种可能的实施方式中,用户通过点击按键的方式启动应用程序,运行有该应用程序的终端设备加载程序包以运行该应用程序,其中,程序包包括业务代码与监控代码,业务代码与监控代码是相互独立的,业务代码包括运行该应用程序所需的代码数据,监控代码包括监控业务代码运行状态的代码数据,也就是说,监控代码用于监控该业务代码的前端运行情况。
在本申请实施例中,以程序包为小程序的程序包为例进行说明。小程序可以在终端中安装的某即时聊天类应用程序中运行,无需安装实际的产品应用程序,仅在某即时聊天类应用程序内部打开对应的小程序,即可完成针对该产品应用程序的相关操作。例如,执行购买、播放或者订阅等功能。其中,小程序自带的用于加载、编译和运行的代码数据为小程序的程序包,该代码数据称为业务代码。
在一种可能的实施方式中,为了监控小程序生产环境的运行状况,在小程序包中引入监控代码,监控代码与小程序自带的业务代码相互独立。可选地,监控代码由具体的编程语言编辑,监控代码可以为JS(Java Script)脚本文件,监控代码用于获取小程序的业务代码运行过程中的运行状态信息。本申请实施例不对监控代码的具体内容进行限定,能够实现监控业务代码的运行状态即可。
在本申请实施例中,业务代码与监控代码相互独立,实现了监控代码与原有的业务代码的解耦,使得开发人员能够方便的修改原有的业务代码,代码逻辑不受监控代码的影响,只需在开发的业务代码中引入一个脚本文件,即可实现对业务代码的前端运行状况的监控。
步骤202,通过监控代码获取业务代码运行过程中的运行状态信息,运行状态信息包括业务代码运行过程中的全生命周期的运行状态信息。
在一种可能的实施方式中,通过监控代码获取业务代码运行过程中的运行状态信息,包括:通过监控代码对业务代码进行重写,得到注有钩子函数的业务代码,通过钩子函数获取业务代码运行过程中的运行状态信息,其中,钩子函数被注入到业务代码的所有函数中。
在本申请实施例中,钩子(hook)机制是回调机制的一种,普通的回调是静态的,需提前写好回调接口;而hook机制在编程语言Java中可以利用反射,针对切入点采用替换的手段,使代码在运行时改变。因此,通过hook的方式对业务代码进行重写,无需改变原生的业务代码,使得监控代码能够运行于被hook的业务代码的进程中,实现了对业务代码全生命周期的运行监控。
在本申请实施例中,以小程序的运行监控为例进行说明,在小程序的开发生产中,小程序的程序包的生命周期函数主要包括应用程序(App)函数、页面(Page)函数和组件(Component)函数这三部分原生代码。其中,App函数就是小程序的框架,用来注册一个小程序,在小程序启动的时候调用,存在于整个小程序的生命周期中。Page函数就是小程序中的一个页面,用于实现小程序界面化操作功能。Component函数就是小程序中自定义的组件,用于灵活配置小程序样式增强特色功能。为方便起见,本申请实施例将小程序开发所需的三个主要部分统称为APC,即包括App、Page和Component的集合统称。此外,小程序在运行过程中常常需要发起网页请求,在小程序开发环境中体现为请求(request)函数,request是一个封装好的请求函数。
示例性地,在小程序的运行监控的过程中,加载完包括业务代码与监控代码的小程序包后,通过监控代码对APC与request进行重写,解开了request方法的保护,将hook函数注入到APC与request中,得到注有hook的APC与request,hook根据配置信息即可获取APC与request运行过程中的运行状态信息。
在一种可能的实施方式中,通过hook获取业务代码运行过程中的运行状态信息,包括:业务代码中的APC运行过程中自动执行try catch方法,catch到运行错误时获取相应的运行状态信息;业务代码中的request远程请求时,返回请求异常码时获取相应的运行状态信息。
在本申请实施例中,try catch方法能够获取运行过程中的错误信息,其原理为:try{有可能出现错误的代码写在这里},catch{出错后的处理},如果try中的代码没有出错,则程序正常运行try中的内容,不会执行catch中的内容,如果try中的代码出错,程序立即跳入catch中去执行代码。catch中的代码可通过后台配置信息获取,例如,可以配置需要获取的运行状态信息的内容、发送运行状态信息的频率与规则等。
可选地,运行状态信息包括运行错误信息、运行环境信息和网络请求返回异常信息中的至少一种。其中,运行错误信息包括但不限于错误类型、错误位置和错误次数等,运行环境信息包括但不限于操作时间、操作路径、网络信息、设备信息、版本信息和用户信息等,网络请求返回异常信息包括但不限于异常时的请求状态、请求时长和请求地址等。错误类型包括但不限于白屏、掉线、卡顿、页面异常或画面定格等。
示例性地,用户在A设备上的购物小程序中点击了立即购买,此时出现了页面卡顿现象。获取当下的运行状态信息包括运行错误类型为页面卡顿、卡顿时间为50秒、错误位置为立即购买的页面、点击时间为16:00、点击时的网络状态为WiFi(Wireless Fidelity,无线保真)网络、设备信息为A设备等。
在本申请实施例中,通过独立的监控代码能够获取小程序的前端运行状态,对于在使用过程中难免出现跳转慢、页面卡顿等的前端问题,能够做到即时的反馈,使得用户跳出率降低,有利于防止用户流失。并且,由于线上环境复杂,一些前端问题只会在特定网络环境或者设备上发生,对于这类问题,前端运行的异常信息的收集就显得格外重要。本申请实施例提供的方法不仅能够收集错误的堆栈信息,还能够收集用户操作流程和设备信息等,以便复现错误,能够提高小程序整体性能的体验要求。
步骤203,将运行状态信息作为监控数据发送至后台服务器。
在一种可能的实施方式中,将运行状态信息作为监控数据发送至后台服务器,包括:响应于业务代码的运行环境为断网或弱网状态,将运行状态信息进行缓存;响应于业务代码的运行环境为联网状态,将缓存的运行状态信息作为监控数据发送至后台服务器。其中,弱网状态一般表现为低于2G速率的数据网络,或者信号为弱信号的WiFi网络。
在本申请实施例中,由于小程序生态的逐步完善,小程序逐渐应用于车载工具、刷脸支付等新的服务场景。对于车载工具的使用,由于车辆行驶的过程中经常会发生断网、弱网等情况,此时的运行状态信息将会缓存在车载终端本地,等网络连接良好时再将缓存的运行状态信息作为监控数据发送至后台服务器。这样不会导致监控数据的丢失,使得获取的监控数据更全面。
在一种可能的实施方式中,将运行状态信息作为监控数据发送至后台服务器之后,该方法还包括:通过后台服务器将监控数据生成后台报表,其中,后台报表用于定位运行错误信息。可选地,生成后台报表的方式为将监控数据根据错误类别、错误的影响度和错误的次数等因素进行数据统计,以预先设置的统计规则进行处理生成后台报表,本申请不对生成后台报表的方式进行限定,能够定位运行错误信息即可。
在一种可能的实施方式中,后台服务器接收到终端发送的监控数据后,将该监控数据进行统计整理生成后台报表,该后台报表能够清晰的展示程序前端运行过程中的错误相关信息,能够快速精准的定位错误信息,以便于开发人员通过该后台报表能够即时判断问题发生的原因,即时解决出现的问题,实现对程序的前端运行的监控。
本申请实施例提供的方法,通过引入独立的监控代码,对业务代码的前端运行进行全生命周期的监控,将运行状态信息作为监控数据上报给后台服务器。实现了监控代码与业务代码的解耦,方便了后期业务代码的修改,填补了对于前端运行错误监控的空缺,能够将程序全生命周期的运行监控信息及时的反馈给开发人员,及时的发现问题并解决问题,提高程序的运行监控的效率,提高用户的使用体验。
本申请实施例提供了一种程序的运行监控装置,该装置可用于执行上述程序的运行监控方法。参见图3,该装置包括:
加载模块31,用于加载程序包,程序包包括业务代码与监控代码,业务代码与监控代码相互独立,监控代码用于监控业务代码的前端运行情况;
获取模块32,用于通过监控代码获取业务代码运行过程中的运行状态信息,运行状态信息包括业务代码运行过程中的全生命周期的运行状态信息;
发送模块33,用于将运行状态信息作为监控数据发送至后台服务器。
在一种可能实现方式中,获取模块32,用于通过监控代码对业务代码进行重写,得到注有钩子函数的业务代码,通过钩子函数获取业务代码运行过程中的运行状态信息,钩子函数被注入到业务代码的所有函数中。
在一种可能实现方式中,发送模块33,用于响应于业务代码的运行环境为断网或弱网状态,将运行状态信息进行缓存;响应于业务代码的运行环境为联网状态,将缓存的运行状态信息作为监控数据发送至后台服务器。
在一种可能实现方式中,参见图4,该装置还包括:
生成模块34,用于通过后台服务器将监控数据生成后台报表,后台报表用于定位运行错误信息。
在一种可能实现方式中,运行状态信息包括运行错误信息、运行环境信息和网络请求返回异常信息中的至少一种。
本申请实施例提供的装置,通过引入独立的监控代码,对业务代码的前端运行进行全生命周期的监控,将运行状态信息作为监控数据上报给后台服务器。实现了监控代码与业务代码的解耦,方便了后期业务代码的修改,填补了对于前端运行错误监控的空缺,能够将程序全生命周期的运行监控信息及时的反馈给开发人员,及时的发现问题并解决问题,提高程序的运行监控的效率,提高用户的使用体验。
应理解的是,上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图5,其示出了本申请一个实施例提供的程序的运行监控设备的结构示意图。该设备可以为终端,例如可以是:智能手机、平板电脑、车载终端、笔记本电脑或台式电脑。终端还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端包括有:处理器501和存储器502。
处理器501可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器501可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器501也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器501可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器501还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器502可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器502还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器502中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器501所执行以实现本申请中方法实施例提供的程序的运行监控方法。
在一些实施例中,终端还可选包括有:外围设备接口503和至少一个外围设备。处理器501、存储器502和外围设备接口503之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口503相连。具体地,外围设备包括:射频电路504、显示屏505、摄像头组件506、音频电路507、定位组件508和电源509中的至少一种。
外围设备接口503可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器501和存储器502。在一些实施例中,处理器501、存储器502和外围设备接口503被集成在同一芯片或电路板上;在一些其他实施例中,处理器501、存储器502和外围设备接口503中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路504用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路504通过电磁信号与通信网络以及其他通信设备进行通信。射频电路504将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路504包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路504可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi网络。在一些实施例中,射频电路504还可以包括NFC(Near FieldCommunication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏505用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏505是触摸显示屏时,显示屏505还具有采集在显示屏505的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器501进行处理。此时,显示屏505还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏505可以为一个,设置在终端的前面板;在另一些实施例中,显示屏505可以为至少两个,分别设置在终端的不同表面或呈折叠设计;在再一些实施例中,显示屏505可以是柔性显示屏,设置在终端的弯曲表面上或折叠面上。甚至,显示屏505还可以设置成非矩形的不规则图形,也即异形屏。显示屏505可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件506用于采集图像或视频。可选地,摄像头组件506包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件506还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路507可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器501进行处理,或者输入至射频电路504以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器501或射频电路504的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路507还可以包括耳机插孔。
定位组件508用于定位终端的当前地理位置,以实现导航或LBS(Location BasedService,基于位置的服务)。定位组件508可以是基于美国的GPS(Global PositioningSystem,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源509用于为终端中的各个组件进行供电。电源509可以是交流电、直流电、一次性电池或可充电电池。当电源509包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端还包括有一个或多个传感器510。该一个或多个传感器510包括但不限于:加速度传感器511、陀螺仪传感器512、压力传感器513、指纹传感器514、光学传感器515以及接近传感器516。
加速度传感器511可以检测以终端建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器511可以用于检测重力加速度在三个坐标轴上的分量。处理器501可以根据加速度传感器511采集的重力加速度信号,控制显示屏505以横向视图或纵向视图进行用户界面的显示。加速度传感器511还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器512可以检测终端的机体方向及转动角度,陀螺仪传感器512可以与加速度传感器511协同采集用户对终端的3D动作。处理器501根据陀螺仪传感器512采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器513可以设置在终端的侧边框和/或显示屏505的下层。当压力传感器513设置在终端的侧边框时,可以检测用户对终端的握持信号,由处理器501根据压力传感器513采集的握持信号进行左右手识别或快捷操作。当压力传感器513设置在显示屏505的下层时,由处理器501根据用户对显示屏505的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器514用于采集用户的指纹,由处理器501根据指纹传感器514采集到的指纹识别用户的身份,或者,由指纹传感器514根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器501授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器514可以被设置在终端的正面、背面或侧面。当终端上设置有物理按键或厂商Logo时,指纹传感器514可以与物理按键或厂商Logo集成在一起。
光学传感器515用于采集环境光强度。在一个实施例中,处理器501可以根据光学传感器515采集的环境光强度,控制显示屏505的显示亮度。具体地,当环境光强度较高时,调高显示屏505的显示亮度;当环境光强度较低时,调低显示屏505的显示亮度。在另一个实施例中,处理器501还可以根据光学传感器515采集的环境光强度,动态调整摄像头组件506的拍摄参数。
接近传感器516,也称距离传感器,通常设置在终端的前面板。接近传感器516用于采集用户与终端的正面之间的距离。在一个实施例中,当接近传感器516检测到用户与终端的正面之间的距离逐渐变小时,由处理器501控制显示屏505从亮屏状态切换为息屏状态;当接近传感器516检测到用户与终端的正面之间的距离逐渐变大时,由处理器501控制显示屏505从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图5中示出的结构并不构成对程序的运行监控设备的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条程序代码。该至少一条程序代码由一个或者一个以上处理器加载并执行,以实现上述任一种程序的运行监控方法。
在示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条程序代码,该至少一条程序代码由计算机设备的处理器加载并执行,以实现上述任一种程序的运行监控方法。
可选地,上述计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact Disc Read-OnlyMemory,CD-ROM)、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一种程序的运行监控方法。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
- 应用程序运行监控方法、装置、计算机设备和存储介质
- 程序的运行监控方法、装置及设备