一种应用程序启动时间统计方法、装置及系统与流程

文档序号:18101451发布日期:2019-07-06 11:23阅读:147来源:国知局
一种应用程序启动时间统计方法、装置及系统与流程

本申请涉及计算机技术领域,特别涉及应用程序启动时间统计方法、装置和系统。



背景技术:

随着智能手机和ipad等移动终端设备的普及,人们逐渐习惯了使用应用程序(app)上网的方式,app是指智能手机、平板等移动终端的第三方应用程序;用户在使用app时,常会遇到首次或非首次启动应用,进入应用特别慢,即应用启动慢;因此,在开发app时,必须对其进行性能测试,不然会直接影响用户体验。而如何统计app启动时间是app研发时急需解决的技术问题。



技术实现要素:

基于此,本申请提出了一种app启动时间统计方法,从用户实际感知的角度分析app启动起始时间和启动结束时间,从而提高app启动时间统计的准确性。

本申请还提供了一种app启动时间统计装置和系统,用以保证上述方法在实际中的实现和应用。

本申请提出了一种app启动时间统计方法,包括:

从用户启动app的启动事件时间点至操作系统调用app代码的时间点之间的时间范围内,确定一个时间点作为app启动起始时间;

确定app启动结束时间;

计算所述app启动结束时间与所述app启动起始时间的差值,将所述差值作为所述app启动时间。

可选的,所述从用户启动app的启动事件时间点至操作系统调用app代码的时间点之间的时间范围内,确定一个时间点作为app启动起始时间,包括:

将操作系统创建app进程的时间点确定为app启动起始时间。

可选的,所述从用户启动app的启动事件时间点至操作系统调用app代码的时间点之间的时间范围内,确定一个时间点作为app启动起始时间,包括:将用户启动app的启动事件时间点确定为app启动起始时间。

可选的,所述从用户启动app的启动事件时间点至操作系统调用app代码的时间点之间的时间范围内,确定一个时间点作为app启动起始时间,包括:

将操作系统接收到app的启动事件准备创建app进程的时间点确定为app启动起始时间。

所述确定app启动结束时间,包括:将app的页面的生命周期函数的结束时间点作为app启动结束时间。

所述确定app启动结束时间,包括:将控件接收到数据的结束时间点作为app启动结束时间。

对应于上述app启动时间统计方法,本申请提出了一种app启动时间统计装置,包括:

第一确定模块,用于从用户启动app的启动事件时间点至操作系统调用app代码的时间点之间的时间范围内,确定一个时间点作为app启动起始时间;

第二确定模块,用于确定app启动结束时间;

计算模块,用于计算所述app启动结束时间与所述app启动起始时间的差值,将所述差值作为所述app启动时间。

本申请提出了另一种app启动时间统计方法,包括:

确定app启动起始时间;

根据app页面内容的实际渲染情况确定app启动结束时间;

计算所述app启动结束时间与所述app启动起始时间的差值,将所述差值作为所述app启动时间。

可选的,所述根据app页面内容的实际渲染情况确定app启动结束时间,包括:

监控app页面内容的渲染比例;将所述渲染比例达到预设比例阈值时的渲染时间点确定为app启动结束时间。

可选的,所述根据app页面内容的实际渲染情况确定app启动结束时间,包括:

以app页面内容被开始渲染的渲染时间点为起点,在预设时间内监控页面内容是否有变化,若否,将首次检测到页面内容不再变化的时间点确定为app启动结束时间。

可选的,所述根据app页面内容的实际渲染情况确定app启动结束时间,包括:

在app页面内容开始渲染之后,若接收到用户对页面实施的操作,则将用户实施操作的时间点确定为app启动结束时间。

可选的,所述确定app启动起始时间,包括:

将app代码被执行的时间点确定为app启动起始时间。

对应于上述app启动时间统计方法,本申请提出了另一种app启动时间统计装置,包括:

第一确定模块,用于确定app启动起始时间;

第二确定模块,用于根据app页面渲染时间确定app启动结束时间;

计算模块,用于计算所述app启动结束时间与所述app启动起始时间的差值,将所述差值作为所述app启动时间。

本申请还提出了第三种app启动时间统计方法,包括:

从用户启动app的启动事件时间点至操作系统调用app代码的时间点之间的时间范围内,确定一个时间点作为app启动起始时间;

根据app页面内容的实际渲染情况确定app启动结束时间;

计算所述app启动结束时间与所述app启动起始时间的差值,将所述差值作为所述app启动时间。

可选的,所述从用户启动app的启动事件时间点至操作系统调用app代码的时间点之间的时间范围内,确定一个时间点作为app启动起始时间,包括:

将操作系统创建app进程的时间点确定为app启动起始时间。

可选的,所述从用户启动app的启动事件时间点至操作系统调用app代码的时间点之间的时间范围内,确定一个时间点作为app启动起始时间,包括:

将用户启动app的启动事件时间点确定为app启动起始时间。

所述从用户启动app的启动事件时间点至操作系统调用app代码的时间点之间的时间范围内,确定一个时间点作为app启动起始时间,包括:

将操作系统接收到app的启动事件准备创建app进程的时间点确定为app启动起始时间。

所述根据app页面内容的实际渲染情况确定app启动结束时间,包括:

监控app页面内容的渲染比例;将所述渲染比例达到预设比例阈值时的渲染时间点确定为app启动结束时间。

所述根据app页面内容的实际渲染情况确定app启动结束时间,包括:

以app页面内容被开始渲染的渲染时间点为起点,在预设时间内监控页面内容是否有变化,若否,将首次检测到页面内容不再变化的时间点确定为app启动结束时间。

可选的,所述根据app页面内容的实际渲染情况确定app启动结束时间,包括:在app页面内容开始渲染之后,若接收到用户对页面实施的操作,则将用户实施操作的时间点确定为app启动结束时间。

对应于上述app启动时间统计方法,本申请还提出了第三种app启动时间统计装置,包括:

第一确定模块,用于从用户启动app的启动事件时间点至操作系统调用app代码的时间点之间的时间范围内,确定一个时间点作为app启动起始时间;

第二确定模块,用于根据app页面内容的实际渲染情况确定app启动结束时间;

第三确定模块,用于计算所述app启动结束时间与所述app启动起始时间的差值,将所述差值作为所述app启动时间。

此外,本申请还提出了一种app启动时间统计系统,包括:

终端,所述终端包括app启动时间统计装置,该app启动时间统计装置的功能和结构可以参见上文装置的描述;

所述终端,用于利用所述app启动时间统计装置统计出app启动时间,并生成用于记录app启动时间的日志,向服务器发送所述日志;

所述服务器,用于存储所述日志。

与现有技术相比,本申请具有以下优点:

本申请从用户启动app的启动事件时间点至操作系统调用app代码的时间点之间的时间范围内,确定一个时间点作为app启动起始时间,例如,操作系统创建app进程的时间点、用户启动app的启动事件时间点或者操作系统接收到app的启动事件准备创建app进程的时间点。这样确定的app启动起始时间的精度更高,更准确,克服了现有技术统计app启动起始时间时产生的时间点延后的缺点。

本申请以用户体验为基础,根据app页面内容的实际渲染情况确定app启动结束时间,根据页面复杂程度以及用户对页面的操作情况设计三种不同的方法获取app启动结束时间,这样能够提高app启动结束时间的准确度,与用户实际感知的时间基本一致,

通过上述方法可以获得精度高的app启动起始时间和结束时间,进而得到准确性高的app启动时间。克服了现有技术中,app启动时间与用户实际感知的统计时间相差较大的缺点。

当然,实施本申请提出的任一方法并不一定需要同时达到以上所有优点。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请在实际应用中的场景示例图;

图2是本申请实施例提供的一种app启动时间统计方法的流程图;

图3是本申请实施例提供的另一种app启动时间统计方法的流程图;

图4是本申请实施例提供的一种app页面渲染情况的示意图;

图5是本申请实施例提供的另一种app页面渲染情况的示意图;

图6是本申请实施例提供的第三种app页面渲染情况的示意图;

图7是本申请实施例提供的第三种app启动时间统计方法的流程图;

图8是本申请实施例提供的一种app启动时间统计装置的结构图;

图9是本申请实施例提供的另一种app启动时间统计装置的结构图;

图10是本申请实施例提供的第三种app启动时间统计装置的结构图;

图11是本申请实施例提供的一种app启动时间统计系统的结构图。

具体实施方式

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

为了便于理解本申请提供的技术方案,下面先对本申请技术方案的研究背景进行简单说明。

近年来,随着智能手机、平板电脑等终端设备和移动互联网的迅速普及和发展,越来越多的移动app应运而生,生活服务类、休闲娱乐类、人情交往类等app都大量的涌现在用户面前,终端安装的app越来越多,但真正能够维系用户的app却不多,随着人们对app的接受度不断提高,人们移动信息的获取已经出现过剩,安装尝试新app的动力明显不足,全新的app想获得脱颖而出的机会越来越难。用户在使用app时,常会遇到首次或非首次启动时,应用启动慢,影响用户对app的使用效果;因此,在开发和维护app时,必须要对其进行启动时间等性能测试,不然会直接影响用户体验。

在现有app启动时间统计方式中,基本都是从app代码被调用的时间点去统计app启动时间,但移动终端在执行app代码之前,往往会先进行系统相关代码的初始化,或者需要首先加载安全框架部分的代码,这将导致在app启动起始时间的采集上会有所延后,而在app启动结束时间的采集中,也会受到页面复杂程度等因素的影响,导致采集结果不准确,由于启动起始时间和启动结束时间的统计不准确,就会导致app启动时间统计也与用户实际感知的启动时间大相径庭。

基于此,本申请提出了一种app启动时间统计方法、装置和系统,本申请提供的技术方案,应用于终端,用于统计终端上app启动时间,该启动时间与用户实际感知的启动时间基本一致,再将统计的app启动时间生成日志,传递给服务器,以便于开发和测试人员后续对app的性能进行优化。

下面对本申请在实际中的应用场景进行介绍。

参见图1,为本申请在实际应用中的场景示例图,如图1所示,本申请提供的app启动时间统计方法可以以客户端101的形式装载于终端103中得以实现;该终端103中还装载有至少一个应用程序app,如app102。在实际应用中,终端103上可以装载有多个app,通过该客户端101对多个app启动时间分别进行统计。在实际应用中,客户端101可以是一个独立的应用程序,也可以是集成在一个应用程序中的功能模块,例如,该客户端101可以集成在app102中;通过客户端101统计app102启动起始时间和启动结束时间,再计算出app102的启动时间,并生成日志发送给服务器104;服务器104接收不同终端发送的关于app启动时间的日志,服务器104对这些日志进行存储管理,以为app的优化提供数据支持。

从硬件实现上来讲,终端103是指能够安装运行应用程序的终端设备,例如智能手机,ipad,平板等等。服务器104是指具有存储功能和通信功能的网络设备。在实际部署时,服务器104可以采用独立的设备,也可以采用集群服务器来实现。

基于以上应用场景,本申请实施例提供了一种app启动时间统计方法,下面对该方法进行介绍。

参见图2,为本申请实施例提供的一种app启动时间统计方法的流程图,如图2所示,该方法包括:

步骤201:从用户启动app的启动事件时间点至操作系统调用app代码的时间点之间的时间范围内,确定一个时间点作为app启动起始时间;

其中,操作系统调用app代码的时间点可以是操作系统调用app的入口函数或者构造函数的时间点,即,app的入口函数或者构造函数被调用执行的时间点;例如,在安卓系统中,操作系统调用app代码的时间点即为操作系统调用该app的构造函数的时间点。

在具体实现过程中,以用户实际感知为依据,从用户启动app的启动事件时间点至操作系统调用app代码的时间点之间的时间范围内,确定一个时间点作为app启动起始时间,而不是从执行app代码的角度去统计app启动起始时间点,这样可以将采集app启动起始时间点提前,确保统计的app启动起始时间和用户实际感知的时间基本一致。

例如:在执行app代码之前,操作系统需要执行必要的系统相关的初始化代码,或者出于安全性考虑,需要首先加载安全框架,而且很多框架都可能采用了注入、代理等手段优先于app代码先行启动,因此,为了准确获得app启动起始时间,将采集app启动起始时间提前。

下面,将对步骤201中如何确定app启动起始时间进行介绍:

一种实现方式是,将操作系统创建app进程的时间点确定为app启动起始时间;

在具体实现过程中,用户启动app,如用户点击app图标,或者声控启动app,操作系统响应于用户触发的app启动指令,操作系统开始创建用户进程,并且在这个过程中,操作系统会记录该进程的创建时间或者记录准备创建该用户app的时间。所以,可以通过操作系统接口或其他途径获得进程的创建时间。

举例说明,在linux/unix等操作系统下(包括基于这些系统的android或者ios系统),会在操作系统的/proc文件系统中记录每个进程的详细信息。在该系统下,cpu时间与创建时间等记录的都是jiffies时间,jiffies是内核中的一个全局变量,用来记录自系统启动以来产生的节拍数。硬件给内核提供一个系统定时器用以计算和管理时间,内核通过编程预设系统定时器的频率,即节拍率(tickrate),每一个周期称作一个tick(节拍)。当时钟中断发生时,jiffies值就加1。如android系统中,一般的节拍周期是10ms。由于cpu时间与创建时间等记录的都是jiffies时间,那么在这个过程中获取操作系统创建app进程的时间点,就可以以当前系统的jiffies时间减去进程创建的时间,并按照jiffies时间在当前设备上的周期计算出进程创建时间与当前时间的差值。将这个差值转化成毫秒以方便计算,也可以只获取进程的创建jiffies时间,在需要使用的时候一并计算。

在这种情况下,由于采用了获取操作系统创建app进程的时间点作为app启动起始时间,这样就可以将原来忽视的时间(包括系统在创建进程到运行到app工程的入口代码中这部分的时间)统计在内,避开了从工程代码入口中获取启动的起始时间,在启动完成时间点前标记结束即可,增加了算法的灵活性,同时避免了由于被其他框架代理、注入等先行执行其他框架代码,然后再执行自己工程入口代码所带来的统计误差问题,增加了时间统计的准确性。

另一种方式是,将用户启动app事件时间点确定为app启动起始时间;

举例说明:在部分定制系统中,可以将用户点击屏幕等方式启动app的事件时间点进行记录,在后续的app创建过程中,将这个时间传递给新的进程并作为执行进程的一个初始化时间,这样就可以拿到更早期的时间作为app启动起始时间,相对来说精度也会更高。

第三种方式是,将操作系统接收到app的启动事件准备创建app进程的时间点确定为app启动起始时间;

举例说明:在app启动过程中,从操作系统本身的层面来看,可以将收到事件后准备去创建这个app进程的时间做一个记录,这样后续如果用户进程能够有技术手段获得该时间,亦可以作为进程的创建时间点,这样精度也相对更高一些。

步骤202:确定app启动结束时间;

下面,将对步骤202中如何确定app启动结束时间进行介绍:

一种实现方式是,将app的页面的生命周期函数的结束时间点作为app启动结束时间;

举例说明,在安卓系统(android)中,将app启动时显示出第一屏页面的时间点作为app启动结束时间。即,一个activity的onresume生命周期执行完成的时间点作为页面已经展现的时间点,将这个时间点作为该app启动结束时间点。

另一种实现方式是,将控件接收到数据的结束时间点作为app启动结束时间;

例如,在手机上的淘宝app页面展现过程中,若需要用到服务器端的数据,那么就以收到服务器端的数据并设置给淘宝app页面的控件作为结束点,将这个时间点作为该app启动结束时间点。

步骤203:计算app启动结束时间与app启动起始时间的差值,将该差值作为app启动时间;

通过步骤201获取到app启动起始时间,再利用步骤202获取到app启动结束时间,计算app启动结束时间与app启动起始时间的差值,将该差值作为app启动时间。

由上述实施例可以看出,在统计app启动起始时间时,可以采用操作系统创建app进程的时间点、用户启动app事件时间点或者操作系统接收到app的启动事件准备创建app进程的时间点来确定为app启动起始时间,均可以将现有app启动起始时间点提前,从而与实际app启动起始时间点更接近,即,获得更准确,精度更高的app启动起始时间,再通过计算app启动起始时间与app启动结束时间的差值,获得更准确的app启动时间。

本申请还提供了一种app启动时间统计方法,下面对该方法进行介绍。

参见图3,为本申请实施例提供的另一种app启动时间统计方法的流程图,如图3所示,该方法包括:

步骤301:确定app启动起始时间;

下面,将对步骤301中如何确定app启动起始时间进行介绍:

一种可选的实现方式,以调用代码的时间点为基准统计app的启动的起始时间,例如,将app最早被执行的用户代码的时间点作为app启动起始时间。

举例说明,在安卓系统(android)中,是以application的构造函数作为app启动的起点入口,将执行这个函数代码的时间点作为该app启动起始时间点。

步骤302:根据app页面内容的实际渲染情况确定app启动结束时间;

在本申请实施例中,是从用户实际感知的角度来确定app启动结束时间,使得app启动时间的统计更符合用户实际感知,有利于app性能优化。

关于步骤302的具体实现,本申请实施例提供了几种可选的实现方式,下面分别进行介绍。

一种实现方式是,通过监控app页面内容的渲染比例,将该渲染比例达到预设比例阈值时的渲染时间点确定为app启动结束时间;

在实际页面渲染过程中,将一个页面内容按照横向、纵向或者两者结合的方式,划分为不同的区块,或者以横竖间隔按一定比例划分成网格,然后依次渲染区块内容或者网格内容,直到整个页面内容渲染完毕。渲染比例是指页面中已经被渲染的页面内容占整个页面内容的比例。

上述实现方式在具体实现过程中,可以通过监控软件监控app页面内容的渲染比例,不论是将app页面按照横向、纵向或者两者结合的方式,划分为不同的区块,还是以横竖间隔按一定比例划分成网格,都可以通过计算已渲染页面所占app页面整体需要展示的内容区域的比例,得到app页面内容的渲染比例。例如,将app页面需要展示的内容区域按照纵向方式,划分为不同的区块,计算已渲染区块所占app页面所有区块的比例作为app页面内容的渲染比例。

假设预设渲染比例阈值为80%,则将监控到该页面渲染比例达到80%的渲染时间点确定为app启动结束时间。

以图4为例进行说明,参见图4,图4示出了页面内容较为复杂的app页面示意图,图4所示的灰色底部是页面内容较为复杂的app页面,页面元素比较多,白色部分代表app页面内容已渲染部分,但为了便于理解本申请实施例的方案,图4中未给出具体画面,将页面内容的渲染比例达到图中标注的80%的渲染比例的时间点确定为app启动结束时间。

另一种实现方式是,以app页面内容被开始渲染的渲染时间点为起点,在预设时间内监控页面内容是否有变化,若否,将首次检测到页面内容不再变化的时间点确定为app启动结束时间。

在具体实现过程中,对于内容不多的页面或者静态页面,可以以app页面内容被开始渲染的渲染时间点为起点,一段时间内在用户没有操作的情况下,在预设时间内监控页面内容是否有变化,若否,将首次检测到页面内容不再变化的时间点确定为app启动结束时间。

需要说明的是,在上述实现方式中,在一段时间内页面内容不再变化是指在页面渲染比例在一段时间内不再发生变化,而不是实际内容像素不再变化,例如,有些页面的文字会做成跑马灯等效果进行显示,这种显示方式使得页面内容看起来是变化的,但是对于渲染比例而言,这部分内容是不再变化的。

以图5为例进行说明,参见图5,图5示出的是内容不多的app页面或者静态app页面完全渲染示意图,但为了便于理解本申请实施例的方案,图5中未给出具体画面,将app页面内容被开始渲染的渲染时间点为起点,预设监控时间内,用户未对页面做任何操作,图中标注的圆点为用户在预设监控时间过后对页面实施触发操作的点,并触发了页面内容的更改,这种情况下,在预设时间内监控页面内容没有变化,则将首次检测到页面内容不再变化的时间点确定为app启动结束时间。

第三种实现方式是,在app页面内容开始渲染之后,若接收到用户对页面实施的操作,则将用户实施操作的时间点确定为app启动结束时间;

在具体实现过程中,在app页面内容开始渲染之后,且算法计算上仍未结束,但接收到用户对页面实施的操作,将该操作触发的时间点作为app启动结束时间。

考虑到用户在使用终端时,由于不小心触碰终端屏幕可能会触发一些误操作,如不小心碰触了app显示页面,但其并非是用户触发的有效操作,因此,为了保证确定的app启动结束时间与用户实际感知一致,上述第三种实现方式在实际应用中,将用户实施的有效操作的时间点确定为app启动结束时间。

用户实施的有效操作是指用户对页面实施的,能够引起页面发生变化的操作,如用户点击页面上的按钮,页面发生了跳转;如用户滑动页面,页面随着用户滑动方向进行页面迁移;如用户点击页面上的输入框,输入框聚焦并允许用户输入等等。

以图6为例进行说明,参见图6,图6示出页面内容开始渲染之后且算法计算上仍未结束的app页面示意图,例如灰色底部是app未渲染页面,白色部分代表app已渲染页面,但为了便于理解本申请实施例的方案,图6中未给出具体画面,如图6所示,在页面未完全显示,只在页面已渲染部分显示了输入框及登录按钮后,用户在输入框输入指定数据,再点击登录按钮,页面会跳转到新的页面,即使此时原页面未完全显示,也会跳转到新页面,实现用户的登录新页面的操作,这种情况下,就可以将用户实施操作的时间点确定为app启动结束时间。

步骤303:计算app启动结束时间与app启动起始时间的差值,将该差值作为app启动时间;

通过步骤301得到app启动起始时间,在步骤302中根据app页面内容的实际渲染情况确定app启动结束时间,计算app启动结束时间与app启动起始时间的差值,将该差值作为app启动时间。

由上述实施例可以看出,在统计app启动结束时间时,是以用户的实际感知为依据,根据app页面内容的实际渲染情况来确定app启动结束时间,从而与实际app启动结束时间点更接近,即,获得更准确,精度更高的app启动结束时间,再通过计算app启动起始时间与app启动结束时间的差值,获得更准确的app启动时间。

本申请还提供了第三种app启动时间统计方法,下面对该方法进行介绍。

参见图7,为本申请实施例提供的第三种app启动时间统计方法的流程图,如图7所示,该方法包括:

步骤701:从用户启动app的启动事件时间点至操作系统调用app代码的时间点之间的时间范围内,确定一个时间点作为app启动起始时间;其具体实现过程同步骤201所述,此处不再赘述。

步骤702:根据app页面内容的实际渲染情况确定app启动结束时间;其具体实现过程同步骤302所述,此处不再赘述;

步骤703:计算app启动结束时间与app启动起始时间的差值,将该差值作为app启动时间;

通过步骤701和702分别得到app启动起始时间和结束时间,计算app启动结束时间与app启动起始时间的差值,将该差值作为app启动时间。

由上述实施例可以看出,在统计app启动起始时间时,可以采用操作系统创建app进程的时间点、用户启动app事件时间点或者操作系统接收到app的启动事件准备创建app进程的时间点来确定为app启动起始时间,均可以将现有app启动起始时间点提前,从而与实际app启动起始时间点更接近;本实施例是以用户的实际感受为出发点,根据app页面内容的实际渲染情况来确定app启动结束时间,从而与实际app启动结束时间点更接近,在准确的获得了app启动起始时间和结束时间后,就可以做到统计的app启动时间更准确,并且和用户实际感知的时间基本一致。

上述实施例详细叙述了本申请方法的三种技术方案,相应地,本申请还提供了三种app启动时间统计装置的实施例。

参见图8,图8是本申请实施例提供的一种app启动时间统计装置的结构图,如图8所示,该装置包括:

第一确定模块801,用于从用户启动app的启动事件时间点至操作系统调用app代码的时间点之间的时间范围内,确定一个时间点作为app启动起始时间;可选的,该第一确定模块801的处理过程可参见图2所示实施例的实现。

第二确定模块802,用于确定app启动结束时间;可选的,该第二确定模块802的处理过程可参见图2所示实施例的实现。

计算模块803,用于计算所述app启动结束时间与所述app启动起始时间的差值,将该差值作为所述app启动时间;可选的,该计算模块803的处理过程可参见图2所示实施例的实现。

参见图9,图9是本申请实施例提供的另一种app启动时间统计装置的结构图,如图9所示,该装置包括:

第一确定模块901,用于确定app启动起始时间;可选的,该第一确定模块901的处理过程可参见图3所示实施例的实现。

第二确定模块902,用于根据app页面渲染时间确定app启动结束时间;可选的,该第二确定模块902的处理过程可参见图3所示实施例的实现。

计算模块903,用于计算所述app启动结束时间与所述app启动起始时间的差值,将该差值作为所述app启动时间;可选的,该计算模块903的处理过程可参见图3所示实施例的实现。

参见图10,图10是本申请实施例提供的第三种app启动时间统计装置的结构图,如图10所示,该装置包括:

第一确定模块1001,用于从用户启动app的启动事件时间点至操作系统调用app代码的时间点之间的时间范围内,确定一个时间点作为app启动起始时间;可选的,该第一确定模块1001的处理过程可参见图7所示实施例的实现。

第二确定模块1002,用于根据app页面内容的实际渲染情况确定app启动结束时间;可选的,该第二确定模块1002的处理过程可参见图7所示实施例的实现。

计算模块1003,用于计算所述app启动结束时间与所述app启动起始时间的差值,将该差值作为app启动时间;可选的,该计算模块1003的处理过程可参见图7所示实施例的实现。

本申请提供了一种app启动时间统计系统,下面对该系统进行介绍。

参见图11,为本申请实施例提供的app启动时间统计系统的结构图,如图11所示,该系统包括:

终端1101,包括app启动时间统计装置,该app启动时间统计装置的功能和结构可以参见上文装置实施例的描述,具体可参见图8-10。

终端1101,用于利用app启动时间统计装置统计出app启动时间,并生成用于记录app启动时间的日志,向服务器1102发送所述该日志。

服务器1102,用于存储所述日志。

本申请提供的技术方案从以用户实际感知的角度来统计app启动时间,使得统计出的app启动时间更真实,更具有测试价值。在具体实现时,终端不仅将统计app启动时间的结果生成相应的app启动时间日志上传到服务端,还也可以将自身的设备品牌、设备性能以及设备配置等一种或者多种设备属性信息上传到服务器,以便服务器从不同维度来统计管理app启动时间,为app开发人员提供可靠数据,提高优化效率。

服务器可以与一个或者多个终端通信,存储和管理终端发送的app启动时间日志,另外,根据终端发送的设备属性信息,从不同维度,或者从多个维度综合性汇总分析app启动时间,从而可以给app开发人员在app的后续开发提供更多的数据支持及优化参考点,使得开发人员后续可以更有针对性地对app进行优化和改进。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

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

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

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