应用启动耗时检测方法及相关装置与流程

文档序号:35283695发布日期:2023-09-01 04:14阅读:33来源:国知局
应用启动耗时检测方法及相关装置与流程

本技术涉及计算机,尤其涉及应用启动耗时检测方法及相关装置。


背景技术:

1、随着计算机科学技术的不断发展,例如手机等电子设备在人们日常生活中越来越常见,电子设备的功能也越来越丰富。例如,电子设备中可以安装不同类别的应用(application,app),可以用于购物、出行、支付以及社交等场景。

2、用户点击应用程序图标以启动该应用时,如果电子设备的后台没有该应用的进程,那么,电子设备将创建新的进程并分配给该应用,上述应用启动方式称为应用冷启动。冷启动过程花费的时长是衡量应用启动优劣的指标之一,因此,需要检测应用冷启动所花费的时长。


技术实现思路

1、本技术实施例提供了应用启动耗时检测方法及相关装置,通过本技术可以有效地检测出应用冷启动的花费的时长。

2、第一方面,本技术实施例提供了一种应用启动耗时检测方法,包括:

3、检测目标事件以及活动组件,上述目标事件用于触发启动应用;

4、在检测到的活动组件满足预设条件的情况下,确定上述活动组件为目标活动组件,上述预设条件包括活动组件的类别信息为启动器且活动组件的动作信息为主函数;

5、将第一时刻与第二时刻之间的时间差作为上述目标活动组件对应的应用的启动时长,上述第一时刻为上述目标活动组件的第一帧图像绘制完成的时刻,上述第二时刻为上述第一时刻之前距离上述第一时刻最近的目标事件的检测时刻。

6、本技术实施例中,上述目标事件可以理解为用于触发启动应用的事件,示例性地,在以点击应用程序图标的用户操作作为触发条件启动应用的情况下,上述目标事件可以理解为点击事件或者点击触控屏之后的抬手事件。

7、电子设备检测目标事件可以通过监控触控屏的电容值实现,示例性地,电子设备可以包括触控屏,在通过电子设备的触摸屏的电容值变化确定发生触摸事件的情况下,根据上述触摸事件的变化检测上述目标事件。其中,触摸事件可以理解为用户采用任意方式触摸到触控屏的事件,例如可以是点击、双击、长按以及双指捏合等事件。

8、可以理解的是,电子设备的触控屏可以为电容式触摸屏,电容式触摸屏可以包括多个电容组成的电容阵列,可选地,可以将该多个电容阵列理解为感应器。在受到外界影响后,电容阵列中的电容量(也可以理解为电容值)会发生改变。示例性地,将手指按压在电容式触摸屏上时,电容阵列可以与手指上的电解液接触而形成电场,因此,电子设备可以感知到用户手指的触摸。根据触摸事件的变化,电子设备检测上述目标事件,确定是否出现上述目标事件。

9、本技术实施例中,活动组件可以理解为安卓系统中的activity组件,也可以简称为activity。可以理解的是,用户点击应用程序图标触发启动该应用后,电子设备将启动activity;除了上述情况,电子设备进行界面切换也可能启动activity,例如图3中,响应于作用在账户按钮上的点击操作,电子设备从用户界面303跳转到账户界面也可能会启动activity。

10、电子设备检测activity可以理解为对activity进行监控,示例性地,电子设备可以监控事件日志(event log),其中,事件日志用于记录电子设备中已经启动的活动组件。因此,电子设备可以通过event log检测activity。

11、可以理解的是,一般地,在电子设备的使用过程中,先发生目标事件再启动activity,但是,检测目标事件与检测activity之间并不冲突,因此,本技术实施例中并不限定电子设备检测目标事件与电子设备检测activity之间的先后执行顺序。

12、可以理解的是,电子设备可以通过event log检测到电子设备中启动的各种activity。本技术实施例中,电子设备对检测到的activity进行识别,在检测到的活动组件满足预设条件的情况下,确定上述活动组件为目标活动组件。

13、可选地,上述目标活动组件也可以理解为后文实施例中的启动-activity,活动组件满足预设条件也可以理解为活动组件满足启动特征。

14、本实施例中,在activity的类别信息为启动器且活动组件的动作信息为主函数的情况下,电子设备可以认为activity为目标activity。其中,上述目标activity可以理解为用于计算应用冷启动耗时的activity,或者理解为用于合成启动场景的activity。示例性地,activity的类别信息为启动器也可以理解为activity的category信息为launcher,activity的动作信息为主函数也可以理解为activity的action信息为main。

15、在确定目标activity后,根据目标activity以及目标activity之前最近的目标事件即可得到应用的冷启动时长。可以理解的是,电子设备可以通过检测到的activity的名称确定出activity对应的应用,即检测到的activity属于哪一个应用。本技术实施例中,上述第一时刻可以理解为后文实施例中的第二参考时刻,上述第二时刻可以理解为后文实施例中的第一参考时刻,具体可以参阅后文实施例中的步骤606的描述,这里不再赘述。

16、本技术实施例中,通过识别满足预设条件的目标activity,将上述目标activity与目标activity之前最近的目标事件进行关联,将第一时刻与第二时刻之间的时间差作为上述目标活动组件对应的应用的启动时长,可以有效地得到从目标事件触发应用冷启动开始,到应用的第一个可视界面显示为结束之间的时长。

17、结合第一方面,在一种可能的实现方式中,上述方法还包括;

18、检测任务栈,上述任务栈用于存放活动组件;

19、在检测到任务栈被创建的情况下,将上述任务栈的标识设定为第一标识,上述第一标识用于表示上述任务栈对应的应用未完成启动耗时检测;

20、在检测到的活动组件不满足上述预设条件且上述活动组件所在的任务栈的标识为上述第一标识的情况下,确定上述活动组件为上述目标活动组件。

21、在安卓系统中,任务栈可以理解为用来存放activity的容器。一般地,如果当某个应用被启动时,安卓系统中不存在该应用的任务栈,那么,安卓系统会为该应用创建一个属于该应用的任务栈,该任务栈用于存放和管理该应用所启动的activity。

22、本实施例中,电子设备检测任务栈,在检测到有任务栈被创建的情况下,将上述任务栈的标识设定为第一标识,其中,上述第一标识用于表示上述任务栈对应的应用未完成启动耗时检测。也就是说,本实施例中,电子设备给任务栈设定标识,该标识可以理解为启动标识,在任务栈被创建之初,任务栈的标识被设定为上述第一标识,可选地,上述第一标识可以理解为后文实施例中的标识a。

23、本实施例中,在检测到的活动组件不满足上述预设条件的情况下,电子设备进一步对activity所在的任务栈标识进行判断,在检测到的活动组件不满足上述预设条件且上述活动组件所在的任务栈的标识为上述第一标识的情况下,电子设备可以确定上述活动组件为上述目标活动组件。

24、可以理解的是,某些应用可能为了规避系统管控,在应用冷启动过程中,第一个可视界面对应的不是第一个启动的activity,而是第二个启动的activity,而第二个启动的activity以及不满足预设条件,例如后文实施例中情况二的相关描述。因此,本实施例中,在activity不满足预设条件的情况下,进一步采用任务栈标识进行判断,可以覆盖更多的应用冷启动场景,有效得到更多冷启动场景中的启动时长。

25、结合第一方面,在一种可能的实现方式中,上述确定上述活动组件为上述目标活动组件之后,上述方法还包括;

26、将上述活动组件所在的任务栈的标识修改为第二标识,上述第二标识用于表示上述任务栈对应的应用已完成启动耗时检测。

27、本实施例中,在activity被确定为目标activity后,将该目标activity所在的任务栈的标识从第一标识修改为第二标识,其中,上述第二标识用于表示上述任务栈对应的应用已完成启动耗时检测,可选地,上述第二标识可以理解为后文实施例中的标识b。

28、可以理解的是,应用冷启动时长是基于目标activity得到的,在已经得到目标activity额情况下,可以认为已经确定出目标activity对应的应用的启动时长,因此,后续将不再需要计算启动时长,将目标activity所在的任务栈的标识从第一标识修改为第二标识,可以避免重复计算或者误计算应用启动时长。

29、结合第一方面,在一种可能的实现方式中,上述方法还包括;

30、在检测到的活动组件不满足上述预设条件,且上述活动组件所在的任务栈的标识为上述第二标识的情况下,确定上述活动组件不为上述目标活动组件。

31、本实施例中,在检测到的activity不满足上述预设条件,且上述activity所在的任务栈的标识为上述第二标识的情况下,电子设备可以认为检测到的activity对应的应用已经完成启动耗时检测,因此,电子设备确定检测到的activity不为上述目标activity。示例性地,电子设备可以过滤掉不为目标activity的一些activity。

32、第二方面,本技术实施例提供了一种应用启动耗时检测装置,包括:

33、检测单元,用于检测目标事件以及活动组件,上述目标事件用于触发启动应用;

34、确定单元,用于在检测到的活动组件满足预设条件的情况下,确定上述活动组件为目标活动组件,上述预设条件包括活动组件的类别信息为启动器且活动组件的动作信息为主函数;

35、上述确定单元,还用于将第一时刻与第二时刻之间的时间差作为上述目标活动组件对应的应用的启动时长,上述第一时刻为上述目标活动组件的第一帧图像绘制完成的时刻,上述第二时刻为上述第一时刻之前距离上述第一时刻最近的目标事件的检测时刻。

36、示例性地,本技术实施例中,上述检测单元和上述确定单元执行的步骤可以由处理器执行。

37、第三方面,本技术实施例提供一种电子设备,上述电子设备包括处理器、存储器;上述存储器与上述处理器耦合,上述存储器用于存储计算机程序代码,上述计算机程序代码包括计算机指令,上述处理器调用上述计算机指令,以使第一方面或第一方面的任意可能的实现方式中的方法被执行。

38、第四方面,本技术实施例提供一种芯片,包括逻辑电路和接口,上述逻辑电路和接口耦合;上述接口用于输入和/或输出代码指令,上述逻辑电路用于执行上述代码指令,以使第一方面或第一方面的任意可能的实现方式中的方法被执行。

39、第五方面,本技术实施例公开了一种计算机程序产品,上述计算机程序产品包括程序指令,上述程序指令当被处理器执行时,使第一方面或第一方面的任意可能的实现方式中的方法被执行。

40、第六方面,本技术实施例提供一种计算机可读存储介质,上述计算机可读存储介质中存储有计算机程序,当上述计算机程序在处理器上运行时,使第一方面或第一方面的任意可能的实现方式中的方法被执行。

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