一种监测应用使用数据的方法及装置与流程

文档序号:21318353发布日期:2020-06-30 20:48阅读:236来源:国知局
一种监测应用使用数据的方法及装置与流程

本发明涉及移动互联网技术领域,尤其涉及一种监测应用使用数据的方法及装置。



背景技术:

目前,随着移动互联网的发展,用户生活中越来越依赖于智能终端中的各种应用,并且也出现了统计并告知用户在智能终端上对不同种类应用的使用情况的需求,例如可以根据使用情况,控制用户沉迷于某种应用等。

现有技术中,统计应用使用数据的方法,主要是直接基于智能终端系统的内部统计接口,从而获得应用的使用时长和频次等使用数据,并可以以系统应用的形式展示给用户。

但是,现有技术中的这种方式,通过系统的内部统计接口获取使用时长和使用频次,不能自定义,具有一定的局限性,并且该统计接口为hide方法,需反射方式调用,可能会由于限制第三方应用反射调用该方法,无法正常统计,并且通过该统计接口返回的使用数据可能会因系统异常而导致不可靠。



技术实现要素:

本发明实施例提供一种监测应用使用数据的方法及装置,以解决现有技术中调用系统的统计接口来获取应用使用数据,不能自定义,具有局限性并可能不可靠的问题。

本发明实施例提供的具体技术方案如下:

一种监测应用使用数据的方法,包括:

按照预设获取周期,获取当前运行的应用的应用名称;

按照预设判断周期,判断当前获取的应用名称和上一获取周期获取的应用名称是否相同;

根据判断结果,更新当前获取的应用的使用数据。

可选的,进一步包括:

调用预先声明的应用使用数据访问权限,当确定用户授权后,确定开始执行所述按照预设获取周期,获取当前运行的应用的应用名称的步骤。

可选的,所述使用数据至少包括使用时长、使用频次、使用日期;

则根据判断结果,更新当前获取的应用的使用数据,具体包括:

若确定当前获取的应用名称和上一获取周期获取的应用名称相同,则进一步判断当前系统日期与上一获取周期对应的系统日期是否相同,若确定系统日期相同,则将所述当前获取的应用的使用时长增加所述预设判断周期对应的时长,若确定系统日期不相同,则确定使用日期为所述当前系统日期,并重新统计所述当前应用的使用数据,将所述当前获取的应用的使用时长增加所述预设判断周期对应的时长、使用频次增加1次;

若确定当前获取的应用名称和上一获取周期获取的应用名称不相同,则将所述当前获取的应用的使用时长增加所述预设判断周期对应的时长、使用频次增加1次。

可选的,进一步包括:将更新后的当前获取的应用的使用数据,更新到内存相应的变量中。

可选的,进一步包括:按照预设更新周期,获取内存中存储的各应用的使用数据,并根据内存中存储的各应用的使用数据,更新到本地预设的数据库中。

一种监测应用使用数据的装置,包括:

获取模块,用于按照预设获取周期,获取当前运行的应用的应用名称;

判断模块,用于按照预设判断周期,判断当前获取的应用名称和上一获取周期获取的应用名称是否相同;

更新模块,用于根据判断结果,更新当前获取的应用的使用数据。

可选的,所述使用数据至少包括使用时长、使用频次、使用日期;

则根据判断结果,更新当前获取的应用的使用数据时,更新模块具体用于:

若确定当前获取的应用名称和上一获取周期获取的应用名称相同,则进一步判断当前系统日期与上一获取周期对应的系统日期是否相同,若确定系统日期相同,则将所述当前获取的应用的使用时长增加所述预设判断周期对应的时长,若确定系统日期不相同,则确定使用日期为所述当前系统日期,并重新统计所述当前应用的使用数据,将所述当前获取的应用的使用时长增加所述预设判断周期对应的时长、使用频次增加1次;

若确定当前获取的应用名称和上一获取周期获取的应用名称不相同,则将所述当前获取的应用的使用时长增加所述预设判断周期对应的时长、使用频次增加1次。

一种电子设备,包括:

至少一个存储器,用于存储计算机程序;

至少一个处理器,用于执行存储器中存储的计算机程序时实现上述任一种监测应用使用数据的方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种监测应用使用数据的方法的步骤。

本发明实施例中,按照预设获取周期,获取当前运行的应用的应用名称;按照预设判断周期,判断当前获取的应用名称和上一获取周期获取的应用名称是否相同;根据判断结果,更新当前获取的应用的使用数据,这样,不需要反射调用系统的统计接口,可以根据自定义统计参数和方式,统计应用的使用数据,适用性和移植性更好,并且不依赖于系统本身,统计更加准确可靠。

附图说明

图1为本发明实施例中一种监测应用使用数据的方法流程图;

图2为本发明实施例中另一种监测应用使用数据的方法流程图;

图3为本发明实施例中监测应用使用数据的装置结构示意图;

图4为本发明实施例中电子设备结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

目前,随着移动互联网的发展,用户生活中越来越依赖于智能终端中的各种应用,例如,各种视频应用程序(application,app)、游戏app、购物app等,虽然极大便利了用户生活,但是也可能使得用户沉迷于某种应用,因此有统计并告知用户在智能终端上对不同种类应用的使用情况需求,从而以便能够控制用户使用。

现有技术中,统计应用使用数据的方法,主要是直接根据智能终端系统的内部统计接口,但是,现有技术中的这种方式,使用系统的统计接口获取应用使用时长,只能获取指定时间段的使用时长,不能自定义,并且使用系统的统计接口获取应用使用频次时,由于该接口为隐藏(hide)方法,需反射方式调用,可能会限制第三方应用反射调用该方法,无法正常统计,例如,android9.0系统以后,会限制第三方应用反射调用软件开发工具包(softwaredevelopmentkit,sdk)中hide方法,具有局限性,并且还可能会因系统异常而导致获得的使用数据不可靠。

因此,针对上述问题,本发明实施例中,提供了一种监测应用使用数据的方法,自定义一个继承自系统服务(service)类的后台服务,该后台服务用于执行本发明实施例中的监测应用使用数据的方法,并定义了执行的方法过程,周期性获取当前运行的应用的应用名称,并判断是否和上一获取周期的应用名称是否相同,从而更新当前运行的应用名称的使用数据,不需要反射调用hide方法,可以准确统计各应用在前台运行的使用数据,适用于所有智能终端。

需要说明的是,本发明实施例中的监测应用使用数据的方法,可以应用于任何有统计应用使用数据需求的app中,可移植性强,并且可以应用于android系统平台下,但并不仅限于android系统平台,本发明实施例中仅以android系统平台为例进行说明。

参阅图1所示,本发明实施例中,监测应用使用数据的方法的具体流程如下:

步骤100:按照预设获取周期,获取当前运行的应用的应用名称。

本发明实施例中,预先创建了一个服务,该服务用于执行该监测应用使用数据的方法,该服务继承自系统service类,并在androidmanifest中声明。

则执行步骤100之前,本发明实施例中还包括:确定启动执行该方法的服务。

进一步地,为更加满足用户需求,本发明实施例中还可以先获得用户授权,这时,在创建该服务时,还同时需要声明应用使用数据访问权限,即"android.permission.package_usage_stats",这样,集成该服务的app安装并启动时,可以动态申请android应用使用数据访问权限,具体地提供了一种可能的实施方式,调用预先声明的应用使用数据访问权限,当确定用户授权后,确定开始执行上述步骤100。

例如,申请应用使用数据访问权限时,弹出供用户点击选择的弹框,当用户点击确认后,确定用户授权,则具备了该应用使用数据访问权限。

并且,服务声明和接口调用均为android系统提供的原生功能,可以适用于所有android智能设备。

其中,申请应用使用数据访问权限的方式,可以在首次启动该服务时,申请授权,用户一次点击授权即可,后续无需用户再次点击授权,也可以在每次触发启动该服务时,申请授权并确定用户点击授权,对此本发明实施例中并不进行限制。

步骤110:按照预设判断周期,判断当前获取的应用名称和上一获取周期获取的应用名称是否相同。

其中,预设判断周期不小于预设获取周期,并不大于2倍的预设获取周期,例如预设获取周期为500ms,预设判断周期为1s。

本发明实施例中,可以通过获取周期不断获取当前栈顶应用的应用名称,即前台当前运行的应用,记录当前运行的应用名称,并且按照判断周期,判断当前获取的应用名称和上一获取周期的应用名称是否相同,由于判断周期不大于2倍的预设获取周期,因此,这时判断的当前获取的应用名称,即是本获取周期获取的应用名称,可以判断当前运行的应用是否发生了变化。

步骤120:根据判断结果,更新当前获取的应用的使用数据。

其中,使用数据至少包括使用时长、使用频次、使用日期,当然还可以包括其它使用数据,本发明实施例中并不进行限制,例如还可以包括同一使用日期的初次使用时间和最后使用时间等。

执行步骤120时,可以分为以下两种情况:

第一种情况:若确定当前获取的应用名称和上一获取周期获取的应用名称相同。

则具体包括:进一步判断当前系统日期与上一获取周期对应的系统日期是否相同,若确定系统日期相同,则将当前获取的应用的使用时长增加预设判断周期对应的时长,若确定系统日期不相同,则确定使用日期为当前系统日期,并重新统计当前应用的使用数据,将当前获取的应用的使用时长增加预设判断周期对应的时长、使用频次增加1次。

也就是说,本发明实施例中在确定当前运行的应用未发生变化时,说明该应用在持续使用,则还需要进一步判断系统日期是否发生了变化,这样因为,本发明实施例中主要是按照每天分别统计各应用的使用数据,即可以每一个日期对应一行使用数据的记录,这样,可以更加清楚方便统计各应用每天的使用情况,因此,需要判断系统日期是否发生了变化,即确定使用数据是归属于同一天内的统计数据,还是归属于第二天的统计数据,若归属于同一天,则进行累加即可,若归属于第二天,则需要从零开始重新统计和累加,将重新统计的使用数据记录到第二天的使用日期下。

例如,若当前系统日期为2018.10.2,上一获取周期对应的系统日期为2018.10.1,确定发生了变化,则将该应用的使用日期确定为2018.10.2,重新统计使用时长和使用频次,即从0开始统计,使用时长增加判断周期对应的时长,使用频次增加1次,这时,虽然该应用在持续使用,但是进入了第二天,因此对于第二天日期而言,使用频次需要加1,并重新统计的使用时长和使用频次均记录在2018.10.2日期下。

又例如,系统日期未发生变化,该应用在持续使用,使用日期和使用频次不发生变化,只需要增加使用时长。

第二种情况:若确定当前获取的应用名称和上一获取周期获取的应用名称不相同。

则具体包括:将当前获取的应用的使用时长增加预设判断周期对应的时长、使用频次增加1次。

本发明实施例中,若确定应用名称发生了变化,则说明当前运行的应用发生了切换,例如,从应用a切换到了应用b,当前运行的应用为应用b,则将应用b的使用时长增加预设判断周期对应的时长,使用频次增加1次。

进一步地,执行步骤120之后,确定出更新后的应用的使用数据,则还包括:将更新后的当前获取的应用的使用数据,更新到内存相应的变量中。

即本发明实施例中,可以将各应用的使用数据,保存到内存变量中,例如为内存映射(map)变量,内存变量更新更加快速,效率更高,但是通常内存变量的取值不能持久保存,因此,本发明实施例中还提供了一种可能的实施方式,按照预设更新周期,获取内存中存储的各应用的使用数据,并根据内存中存储的各应用的使用数据,更新到本地预设的数据库中。

其中,预设更新周期,例如为30s,本发明实施例中并不进行限制,可以根据实际情况和需求进行设置。

这样,本发明实施例中,在本地建立使用数据统计的数据库,可以周期性地将内存中阶段性统计的使用数据更新到本地数据库中,可以持久保存。

并且,本发明实施例中数据库中可以创建应用使用数据实体统计表,该统计表可以包括但不限于以下信息:应用名称、使用日期、使用时长、使用次数、当天初始使用时间、当天最后使用时间。

进一步地,还可以根据本地预设的数据库中存储的各应用的使用数据,供应用界面层展示、上传远程等业务场景进行使用。

本发明实施例中,按照预设获取周期,获取当前运行的应用的应用名称,并按照预设判断周期,判断当前获取的应用名称和上一获取周期获取的应用名称是否相同,从而可以根据判断结果,更新当前获取的应用的使用数据,并可以周期性更新内存变量和本地数据库中各应用的使用数据,不需要反射调用系统统计接口,可以自定义统计参数,适用性更广,并且不依赖于系统本身,可以准确统计应用的使用数据,更加准确。

下面采用具体的应用场景进行具体说明,基于上述实施例,具体参阅图2所示,为本发明实施例中另一种监测应用使用数据的方法流程图,具体包括:

步骤200:声明应用使用数据访问权限。

步骤201:调用并动态申请应用使用数据访问权限。

步骤202:启动定时任务。

即在确定用户授权后,开始执行本发明实施例中监测应用使用数据的方法,周期性获取当前运行的应用名称。

其中,该定时任务即包括:周期性获取应用名称、周期性判断并更新内存变量中应用使用数据以及更新本地数据库。

即该定位任务周期性地在不同节点执行应用名称获取、判断、更新等操作。

步骤203:按照预设获取周期,获取当前运行的应用的应用名称。

例如,预设获取周期为500ms。

步骤204:按照预设判断周期,判断当前获取的应用名称和上一获取周期获取的应用名称是否相同,若是,则执行步骤205,否则,则执行步骤208。

例如,预设判断周期为1s。

步骤205:判断当前系统日期与上一获取周期对应的系统日期是否相同,若是,则执行步骤206,否则,则执行步骤207。

步骤206:将当前获取的应用的使用时长增加预设判断周期对应的时长。

例如,使用时长增加1s,并此时使用频次和使用日期不变化。

步骤207:确定使用日期为当前系统日期,并重新统计当前应用的使用数据,将使用时长增加预设判断周期对应的时长、使用频次增加1次。

例如,使用日期增加1天,即变为当前系统日期,使用时长增加1s,使用频次增加1次,并统计到当前使用日期下。

步骤208:将当前获取的应用的使用时长增加预设判断周期对应的时长、使用频次增加1次。

例如,使用时长增加1s,使用频次增加1次。

步骤209:更新到内存相应的变量中。

步骤210:按照预设更新周期,根据内存中存储的各应用的使用数据,更新到本地预设的数据库中。

即将内存变量中各应用的使用数据进行持久化存储。

基于上述实施例,参阅图3所示,本发明实施例中,监测应用使用数据的装置具体包括:

获取模块30,用于按照预设获取周期,获取当前运行的应用的应用名称;

判断模块31,用于按照预设判断周期,判断当前获取的应用名称和上一获取周期获取的应用名称是否相同;

更新模块32,用于根据判断结果,更新当前获取的应用的使用数据。

可选的,所述使用数据至少包括使用时长、使用频次、使用日期;

则根据判断结果,更新当前获取的应用的使用数据时,更新模块32具体用于:

若确定当前获取的应用名称和上一获取周期获取的应用名称相同,则进一步判断当前系统日期与上一获取周期对应的系统日期是否相同,若确定系统日期相同,则将所述当前获取的应用的使用时长增加所述预设判断周期对应的时长,若确定系统日期不相同,则确定使用日期为所述当前系统日期,并重新统计所述当前应用的使用数据,将所述当前获取的应用的使用时长增加所述预设判断周期对应的时长、使用频次增加1次;

若确定当前获取的应用名称和上一获取周期获取的应用名称不相同,则将所述当前获取的应用的使用时长增加所述预设判断周期对应的时长、使用频次增加1次。

可选的,进一步包括:

确定模块33,用于调用预先声明的应用使用数据访问权限,当确定用户授权后,确定开始执行所述按照预设获取周期,获取当前运行的应用的应用名称的步骤。

可选的,更新模块32进一步用于:将更新后的当前获取的应用的使用数据,更新到内存相应的变量中。

可选的,更新模块32进一步用于:按照预设更新周期,获取内存中存储的各应用的使用数据,并根据内存中存储的各应用的使用数据,更新到本地预设的数据库中。

参阅图4所示,本发明实施例中,一种电子设备结构示意图。

本发明实施例提供了一种电子设备,该电子设备可以包括处理器410(centerprocessingunit,cpu)、存储器420、输入设备430和输出设备440等,输入设备430可以包括键盘、鼠标、触摸屏等,输出设备440可以包括显示设备,如液晶显示器(liquidcrystaldisplay,lcd)、阴极射线管(cathoderaytube,crt)等。

存储器420可以包括只读存储器(rom)和随机存取存储器(ram),并向处理器410提供存储器420中存储的程序指令和数据。在本发明实施例中,存储器420可以用于存储上述监测应用使用数据的方法的程序。

处理器410通过调用存储器420存储的程序指令,处理器410用于按照获得的程序指令执行:

按照预设获取周期,获取当前运行的应用的应用名称;

按照预设判断周期,判断当前获取的应用名称和上一获取周期获取的应用名称是否相同;

根据判断结果,更新当前获取的应用的使用数据。

可选的,处理器410进一步用于:调用预先声明的应用使用数据访问权限,当确定用户授权后,确定开始执行所述按照预设获取周期,获取当前运行的应用的应用名称的步骤。

可选的,所述使用数据至少包括使用时长、使用频次、使用日期;

则根据判断结果,更新当前获取的应用的使用数据时,处理器410具体用于:

若确定当前获取的应用名称和上一获取周期获取的应用名称相同,则进一步判断当前系统日期与上一获取周期对应的系统日期是否相同,若确定系统日期相同,则将所述当前获取的应用的使用时长增加所述预设判断周期对应的时长,若确定系统日期不相同,则确定使用日期为所述当前系统日期,并重新统计所述当前应用的使用数据,将所述当前获取的应用的使用时长增加所述预设判断周期对应的时长、使用频次增加1次;

若确定当前获取的应用名称和上一获取周期获取的应用名称不相同,则将所述当前获取的应用的使用时长增加所述预设判断周期对应的时长、使用频次增加1次。

可选的,处理器410进一步用于:将更新后的当前获取的应用的使用数据,更新到内存相应的变量中。

可选的,处理器410进一步用于:按照预设更新周期,获取内存中存储的各应用的使用数据,并根据内存中存储的各应用的使用数据,更新到本地预设的数据库中。

基于上述实施例,本发明实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例中的监测应用使用数据的方法。

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

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

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

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

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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