一种应用程序运行数据的统计方法和装置与流程

文档序号:11949964阅读:260来源:国知局
一种应用程序运行数据的统计方法和装置与流程

本申请涉及通信技术领域,特别是涉及一种应用程序运行数据的统计方法和一种应用程序运行数据的统计装置。



背景技术:

随着安卓Android智能手机等移动终端的功能越来越丰富,用户可以根据需要在移动终端上安装各种不同的应用程序。但是哪些应用程序是用户使用频率较高的,哪些是用户很少使用的,一般都需要通过统计终端中各应用程序的运行数据(如运行时长、有效点击次数等),分析用户的使用习惯,进而改善用户体验。

目前,针对安卓Android类移动终端中应用程序运行数据的统计,通常是通过AcitivityManagerService监听各个应用程序的启动和退出,并在该应用程序启动和退出时分别对运行数据进行记录和上报。上述方法能够保证运行数据记录和上报的及时性,但也会对应用程序的启动和退出速度造成比较明显的影响,并进一步影响移动终端的整体性能。此外,通过上述方法获得的运行数据还存在无法满足统计分析的要求的问题,例如,用户误点击某个应用程序后马上退出,应该视为无效运行,不需要累加到应用程序的运行总次数的统计中,但上述方法无法准确分析应用程序的哪些启动是无效的。



技术实现要素:

鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种应用程序运行数据的统计方法和相应的一种应用程序运行数据的统计装置。

为了解决上述问题,本申请实施例公开了一种应用程序运行数据的统计方法,包括:

终端获取应用程序的第一运行数据,所述第一运行数据包括应用程序的包标识;

解析所述第一运行数据,获得应用程序的包标识,以及应用程序每次运行的开始时间和结束时间信息;

根据所述包标识,以及所述应用程序每次运行的开始时间和结束时间信息,统计所述应用程序的第二运行数据,所述第二运行数据包括应用程序的运行总时间;

当所述运行总时间大于等于第一预设阈值时,将所述第二运行数据发送至服务器。

可选地,所述终端获取应用程序的第一运行数据的步骤包括:

终端定时从预设文件夹中提取应用程序的第一运行数据。

可选地,所述根据所述包标识,以及所述应用程序每次运行的开始时间和结束时间信息,统计所述应用程序的第二运行数据的步骤包括:

从所述第一运行数据中提取出具有相同包标识的应用程序每次运行的开始时间和结束时间信息;

根据所述每次运行的开始时间和结束时间信息,统计应用程序的运行总时间。

可选地,所述第二运行数据还包括应用程序的运行总次数,所述方法还包括:

根据所述每次运行的开始时间和结束时间信息,统计应用程序的运行总次数。

可选地,所述根据所述每次运行的开始时间和结束时间信息,统计应用程序的运行总次数的步骤包括:

遍历所述每次运行的开始时间和结束时间信息;

分别判断每次运行的开始时间和结束时间之间的差值是否大于等于第二预设阈值;

若是,则确定是一次运行,增加到应用程序的运行总次数。

为了解决上述问题,本申请实施例还公开了一种应用程序运行数据的统计装置,包括:

获取模块,用于终端获取应用程序的第一运行数据,所述第一运行数据包括应用程序的包标识;

解析模块,用于解析所述第一运行数据,获得应用程序的包标识,以及应用程序每次运行的开始时间和结束时间信息;

统计模块,用于根据所述包标识,以及应用程序每次运行的开始时间和结束时间信息,统计所述应用程序的第二运行数据,所述第二运行数据包括应用程序的运行总时间;

发送模块,用于在所述运行总时间大于等于第一预设阈值时,将所述第二运行数据发送至服务器。

可选地,所述获取模块包括:

获取子模块,用于终端定时从预设文件夹中提取应用程序的第一运行数据。

可选地,所述统计模块包括:

提取子模块,用于从所述第一运行数据中提取出具有相同包标识的应用程序每次运行的开始时间和结束时间信息;

统计子模块,用于根据所述每次运行的开始时间和结束时间信息,统计应用程序的运行总时间。

可选地,所述第二运行数据还包括应用程序的运行总次数,所述装置还包括:

运行次数统计模块,用于根据所述每次运行的开始时间和结束时间信息,统计应用程序的运行总次数。

可选地,所述运行次数统计模块包括:

遍历子模块,用于遍历所述每次运行的开始时间和结束时间信息;

判断子模块,用于分别判断每次运行的开始时间和结束时间之间的差值是否大于等于第二预设阈值;

运行次数统计子模块,用于在判断出每次运行的开始时间和结束时间之间的差值大于等于第二预设阈值时,确定是一次运行,增加到应用程序的运行总次数。

与背景技术相比,本申请实施例包括以下优点:

本申请实施例通过获取并解析应用程序的第一运行数据,得到应用程序的包标识,以及应用程序每次运行的开始时间和结束时间信息,并根据应用程序的包标识以及所述应用程序每次运行的开始时间和结束时间信息统计获得所述应用程序的第二运行数据,当运行总时间大于等于第一预设阈值时,将所述第二运行数据发送至服务器,解决了已有技术中需要在应用程序每次启动或退出时都记录并向服务器上报一次运行数据的问题,提高了终端应用程序的启动和退出的速度,降低了由于采集运行数据而对终端性能造成的影响。

附图说明

图1是本申请的一种应用程序运行数据的统计方法实施例一的步骤流程图;

图2是本申请的一种应用程序运行数据的统计方法实施例二的步骤流程图;

图3是本申请的一种应用程序运行数据的统计装置实施例的结构框图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。

参照图1,示出了本申请的一种应用程序运行数据的统计方法实施例一的步骤流程图,具体可以包括如下步骤:

步骤101,终端获取应用程序的第一运行数据,所述第一运行数据包括应用程序的包标识;

在本申请实施例中,所述应用程序的第一运行数据是指移动终端统计的已安装的应用程序的操作时间、操作类型等数据,所述移动终端可以是智能手机、平板电脑等终端,本申请对移动终端的具体类型不作限定。

通常,在安卓Android系统的移动终端中,在系统data/system/usagestats目录下,包括有记录应用程序运行数据的文件,所述文件可以按照日/周/月/年(daily/weekly/monthly/yearly)的分类分别记录应用程序在相应周期内的运行数据,其中,在weekly/monthly/yearly目录中记录的是对应周期内各应用程序最后一次运行的时间和状态,而在daily目录下则可以分文件详细记录各应用程序的每日运行信息,其格式可以是:

<操作时间包标识Activity名操作类型(前台/后台)>。

因此,在本申请实施例中,可以定时从预设文件夹中提取出应用程序的第一运行数据,例如,在每日23:59分从data/system/usagestats目录下的daily文件夹中提取出当日应用程序的第一运行数据,或者,按照预设的时间间隔从daily文件夹中提取所述第一运行数据,所述预设的时间间隔可以是每一小时或两小时,本申请对此不作具体限定。

在本申请实施例中,当按照预设的时间间隔提取所述第一运行数据时,可以记录本次提取的第一运行数据的时间,当在下次提取时,从而可以直接从该时间开始,以避免重复提取第一运行数据。

通常,所述第一运行数据可以包括应用程序的包标识。在安卓系统的设计标准中,包标识(Package Name)是指应用程序的唯一标识,即:包标识必须唯一,一个包标识代表一个应用程序,不允许两个应用程序使用同样的包标识,包标识主要用于系统识别应用程序,几乎不会被最终用户看到。

步骤102,解析所述第一运行数据,获得应用程序的包标识,以及应用程序每次运行的开始时间和结束时间信息;

通常,第一运行数据的格式可以是:

<操作时间包标识Activity名操作类型(前台/后台)>。

因此,在获得第一运行数据后,可以按照相应格式对所述第一运行数据进行解析,获得应用程序的包标识,以及应用程序每次运行的开始时间和结束时间信息。

步骤103,根据所述包标识,以及所述应用程序每次运行的开始时间和结束时间信息,统计所述应用程序的第二运行数据,所述第二运行数据包括应用程序的运行总时间;

通常,在从系统data/system/usagestats目录下的daily文件夹中提取出第一运行数据后,可以按照相应格式对所述第一运行数据进行解析,获得应用程序的包标识,以及应用程序每次运行的开始时间和结束时间等信息,然后,可以进一步根据所述包标识和所述应用程序每次运行的开始时间和结束时间,统计获得包括应用程序的运行总时间等信息的第二运行数据。

在本申请的一种优选实施例中,所述根据所述包标识,统计所述应用程序的第二运行数据的步骤具体可以包括如下子步骤:

子步骤1031,从所述第一运行数据中提取出具有相同包标识的应用程序每次运行的开始时间和结束时间信息;

子步骤1032,根据所述每次运行的开始时间和结束时间信息,统计应用程序的运行总时间。

由于包标识可以唯一地表示一个应用程序,因此,从系统daily文件夹中提取出的具有相同包标识的第一运行数据即是当日该应用程序的全部运行数据。在具体实现中,可以分别将具有相同包标识的应用程序每次运行的开始时间和结束时间信息提取出来,进而计算获得该应用程序在当日的运行总时间。

步骤104,当所述运行总时间大于等于第一预设阈值时,将所述第二运行数据发送至服务器。

在具体实现中,当统计获得某一应用程序多日的运行总时间后,当所述运行总时间满足一定条件时,例如,所述运行总时间大于等于第一预设阈值时,可以由移动终端将所述第二运行数据发送至服务器,由服务器根据所述第二运行数据对应用程序的运行状况及用户习惯进行分析,进而改善用户体验。

在本申请实施例中,通过获取并解析应用程序的第一运行数据,得到应用程序的包标识,以及应用程序每次运行的开始时间和结束时间信息,并根据应用程序的包标识以及所述应用程序每次运行的开始时间和结束时间信息统计获得所述应用程序的第二运行数据,当运行总时间大于等于第一预设阈值时,将所述第二运行数据发送至服务器,解决了已有技术中需要在应用程序每次启动或退出时都记录并向服务器上报一次运行数据的问题,提高了终端应用程序的启动和退出的速度,降低了由于采集运行数据而对终端性能造成的影响。

参照图2,示出了本申请的一种应用程序运行数据的统计方法实施例二的步骤流程图,具体可以包括如下步骤:

步骤201,终端定时从预设文件夹中提取应用程序的第一运行数据,所述第一运行数据包括应用程序的包标识;

在本申请实施例中,所述应用程序的第一运行数据是指移动终端统计的已安装的应用程序的操作时间、操作类型等数据,所述移动终端可以是智能手机、平板电脑等终端,本申请对移动终端的具体类型不作限定。

在具体实现中,可以定时从安卓系统移动终端的data/system/usagestats目录下的daily文件夹中提取出应用程序的第一运行数据,例如,在每日的23:59分提取出当日应用程序的第一运行数据,或者,按照预设的时间间隔从daily文件夹中提取所述第一运行数据,所述预设的时间间隔可以是每一小时或两小时,本申请对此不作具体限定。

具体地,当按照预设的时间间隔提取所述第一运行数据时,可以记录本次提取的第一运行数据的时间,当在下次提取时,从而可以直接从该时间开始,以避免重复提取第一运行数据。

通常,所述第一运行数据可以包括应用程序的包标识,用以区分不同的应用程序。

步骤202,解析所述第一运行数据,获得应用程序的包标识,以及应用程序每次运行的开始时间和结束时间信息;

通常,第一运行数据的格式可以是:

<操作时间包标识Activity名操作类型(前台/后台)>。

因此,在获得第一运行数据后,可以按照相应格式对所述第一运行数据进行解析,获得应用程序的包标识,以及应用程序每次运行的开始时间和结束时间信息。

步骤203,从所述第一运行数据中提取出具有相同包标识的应用程序每次运行的开始时间和结束时间信息;

步骤204,根据所述每次运行的开始时间和结束时间信息,统计应用程序的运行总时间;

由于包标识可以唯一地表示一个应用程序,因此,从系统daily文件夹中提取出的具有相同包标识的第一运行数据即是当日该应用程序的全部运行数据。在具体实现中,可以分别将具有相同包标识的应用程序每次运行的开始时间和结束时间信息提取出来,通过计算应用程序每次运行的开始时间和结束时间之间的差值,获得所述应用程序当次运行的时间,通过汇总所述当次运行的时间,可以获得该应用程序在当日的运行总时间。

步骤205,根据所述每次运行的开始时间和结束时间信息,统计应用程序的运行总次数;

在本申请实施例中,根据应用程序每次运行的开始时间和结束时间信息,还可以统计应用程序的运行总次数。在具体实现中,解析获得的第二运行数据中,每一条包括每次运行的开始时间和结束时间信息的记录即可以代表应用程序完成了一次启动和退出操作,因此,可以根据相应的记录的信息的数量获得应用程序的运行总次数。

在本申请的一种优选实施例中,所述根据所述每次运行的开始时间和结束时间信息,统计应用程序的运行总次数的步骤具体可以包括如下子步骤:

子步骤2051,遍历所述每次运行的开始时间和结束时间信息;

子步骤2052,分别判断每次运行的开始时间和结束时间之间的差值是否大于等于第二预设阈值;

子步骤2053,若是,则确定是一次运行,增加到应用程序的运行总次数。

通常,用户由于误点击某个应用程序后马上退出,应该视为应用程序的无效运行,不应该累加到应用程序的运行总次数的统计中。因此,在本申请实施例中,可以遍历所述每次运行的开始时间和结束时间信息,分别获得每次运行的开始时间和结束时间之间的差值,若所述差值小于第二预设阈值时,例如,小于3秒,可以认为运行数据中所记录的该次操作是由于用户的误操作而产生,而若所述差值大于等于3秒,则可以认为相应的记录是用户对应用程序的正常操作而产生,从而可以对应用程序的运行总次数递增一次。所述第二预设阈值可以根据实际需要确定,例如2秒,5秒等等,本申请对此不作具体限定。

步骤206,当所述运行总时间大于等于第一预设阈值时,将所述第二运行数据发送至服务器。

在具体实现中,当运行总时间大于等于某一预设阈值时,可以将包括应用程序的运行总时间和运行总次数的第二运行数据发送至服务器,以便服务器根据所述第二运行数据分析应用程序的运行状况,获得用户的使用习惯,进而改善用户体验。

在本申请实施例中,通过判断应用程序每次运行的开始时间和结束时间之间的差值是否大于预设阈值,从而可以判断应用程序的该次运行是否是无效运行,提高了统计应用程序运行总次数的准确性。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。

参照图3,示出了本申请的一种应用程序运行数据的统计装置实施例的结构框图,具体可以包括如下模块:

获取模块301,用于终端获取应用程序的第一运行数据,所述第一运行数据包括应用程序的包标识;

解析模块302,用于解析所述第一运行数据,获得应用程序的包标识,以及应用程序每次运行的开始时间和结束时间信息;

统计模块303,用于根据所述包标识,以及应用程序每次运行的开始时间和结束时间信息,统计所述应用程序的第二运行数据,所述第二运行数据包括应用程序的运行总时间;

发送模块304,用于在所述运行总时间大于等于第一预设阈值时,将所述第二运行数据发送至服务器。

在本申请实施例中,所述获取模块301具体可以包括如下子模块:

获取子模块3011,用于定时从预设文件夹中提取应用程序的第一运行数据。

在本申请实施例中,所述统计模块303具体可以包括如下子模块:

提取子模块3031,用于从所述第一运行数据中提取出具有相同包标识的应用程序每次运行的开始时间和结束时间信息;

统计子模块3032,用于根据所述每次运行的开始时间和结束时间信息,统计应用程序的运行总时间。

在本申请实施例中,所述第二运行数据还可以包括应用程序的运行总次数,所述装置还可以包括如下模块:

运行次数统计模块305,用于根据所述每次运行的开始时间和结束时间信息,统计应用程序的运行总次数。

在本申请实施例中,所述运行次数统计模块305具体可以包括如下子模块:

遍历子模块3051,用于遍历所述每次运行的开始时间和结束时间信息;

判断子模块3052,用于分别判断每次运行的开始时间和结束时间之间的差值是否大于等于第二预设阈值;

运行次数统计子模块3053,用于在判断出每次运行的开始时间和结束时间之间的差值大于等于第二预设阈值时,确定是一次运行,增加到应用程序的运行总次数。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

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

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

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

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

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

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请所提供的一种应用程序运行数据的统计方法和一种应用程序运行数据的统计装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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