CN112148548B - 启动次数确定方法、装置及设备 - Google Patents
启动次数确定方法、装置及设备 Download PDFInfo
- Publication number
- CN112148548B CN112148548B CN201910570340.0A CN201910570340A CN112148548B CN 112148548 B CN112148548 B CN 112148548B CN 201910570340 A CN201910570340 A CN 201910570340A CN 112148548 B CN112148548 B CN 112148548B
- Authority
- CN
- China
- Prior art keywords
- application program
- page
- message
- moment
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供一种启动次数确定方法、装置及设备,该方法包括:在监听到应用程序广播的页面出现消息后,获取监听到页面出现消息的第一时刻、以及预先存储的应用程序最后一次广播页面消失消息的第二时刻;页面出现消息用于指示应用程序显示一个新的页面,页面消失消息用于指示应用程序取消显示一个页面;根据第一时刻、第二时刻和应用程序的启动入口函数中的统计代码,确定应用程序的启动次数,统计代码为预设插件在启动入口函数中插入的。降低了应用程序启动次数监控的复杂度。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种启动次数确定方法、装置及设备。
背景技术
目前,通过应用程序(APP)的启动次数可以直观的反映出应用程序的热度和使用频率,因此,在实际应用过程中,通常需要统计应用程序的启动次数。
在现有技术中,通常通过软件开发工具包(Software Development Kit,SDK)统计应用程序的启动次数。具体的,在应用程序开发者开发应用程序的过程中,在应用程序中写入对SDK进行调用的调用代码,当应用程序启动时,调用代码被执行,进而实现调用SDK,在SDK被调用后,SDK对应用程序的启动进行统计。然而,在上述过程中,需要开发人员在应用程序中写入调用代码,使得开发人员的工作量大,导致对应用程序启动次数监控的复杂度较高。
发明内容
本发明实施例提供一种启动次数确定方法、装置及设备,降低了应用程序启动次数监控的复杂度。
第一方面,本发明实施例提供一种启动次数确定方法,包括:
在监听到应用程序广播的页面出现消息后,获取监听到所述页面出现消息的第一时刻、以及预先存储的所述应用程序最后一次广播页面消失消息的第二时刻;所述页面出现消息用于指示所述应用程序显示一个新的页面,所述页面消失消息用于指示所述应用程序取消显示一个页面;
根据所述第一时刻、所述第二时刻和所述应用程序的启动入口函数中的统计代码,确定所述应用程序的启动次数,所述统计代码为预设插件在所述启动入口函数中插入的。
在上述过程中,由预设插件自动在应用程序的启动入口函数中插入调用代码,在应用程序冷启动时,启动入口函数中的调用代码可以调用SDK,通过SDK统计应用程序的冷启动次数。终端设备还可以根据监听到的应用程序的页面出现消息和页面消失消息,统计应用程序的热启动次数。在上述过程中,无需应用程序开发者在应用程序中添加对SDK进行调用的调用代码,降低了应用程序启动次数监控的复杂度。
在一种可能的实施方式中,所述根据所述第一时刻、所述第二时刻和所述应用程序的启动入口函数中的统计代码,确定所述应用程序的启动次数,包括:
获取所述应用程序的已启动次数;
在获取到所述第一时刻和所述第二时刻后,根据所述第一时刻、所述第二时刻和所述已启动次数,确定所述应用程序的启动次数;
在所述应用程序的启动入口函数被执行后,根据所述统计代码和所述已启动次数,确定所述应用程序的启动次数。
在一种可能的实施方式中,所述根据所述第一时刻、所述第二时刻和所述已启动次数,确定所述应用程序的启动次数,包括:
获取所述第一时刻和所述第二时刻之间的时间差值;
根据所述时间差值和所述已启动次数,确定所述应用程序的启动次数。
在一种可能的实施方式中,所述根据所述时间差值和所述已启动次数,确定所述应用程序的启动次数,包括:
若所述时间差值大于或等于第一阈值,则确定所述应用程序的启动次数为所述已启动次数加1;
若所述时间差值小于所述第一阈值,则确定所述应用程序的启动次数为所述已启动次数。
在一种可能的实施方式中,所述获取监听到所述页面出现消息的第一时刻、以及预先存储的所述应用程序最后一次广播页面消失消息的第二时刻,包括:
判断第一预设存储空间是否存在预设标记位;
在确定所述第一预设存储空间不存在所述预设标记位时,获取监听到所述页面出现消息的第一时刻、以及预先存储的所述应用程序最后一次广播页面消失消息的第二时刻。
在一种可能的实施方式中,在所述第一预设存储空间存在所述预设标记位时,所述方法还包括:
在所述预设存储空间删除所述预设标记位。
在一种可能的实施方式中,所述根据所述统计代码和所述已启动次数,确定所述应用程序的启动次数,包括:
根据所述统计代码调用软件开发工具包SDK;
通过所述SDK将所述已启动次数加1,得到所述应用程序的启动次数;
在第一预设存储空间中写入预设标记位。
在一种可能的实施方式中,所述获取应用程序广播页面出现消息的第一时刻,包括:
通过SDK监听所述应用程序广播的页面出现消息;
在通过所述SDK监听到所述页面消息时,获取监听到所述页面消息的第一时刻。
在一种可能的实施方式中,所述获取所述应用程序最后一次广播页面消失消息的第二时刻,包括:
在第二预设存储空间中获取所述第二时刻。
在一种可能的实施方式中,所述在第二预设存储空间中获取所述第二时刻之前,还包括:
通过SDK监听所述应用程序广播的页面消失消息;
在通过所述SDK监听到所述页面取消消息时,获取监听到所述页面消失消息的第二时刻;
在所述第二预设存储空间中存储所述第二时刻。
第二方面,本发明实施例提供一种启动次数确定装置,包括:第一获取模块和确定模块,其中,
所述第一获取模块用于,在监听到应用程序广播的页面出现消息后,获取监听到所述页面出现消息的第一时刻、以及预先存储的所述应用程序最后一次广播页面消失消息的第二时刻;所述页面出现消息用于指示所述应用程序显示一个新的页面,所述页面消失消息用于指示所述应用程序取消显示一个页面;
所述确定模块用于,根据所述第一时刻、所述第二时刻和所述应用程序的启动入口函数中的统计代码,确定所述应用程序的启动次数,所述统计代码为预设插件在所述启动入口函数中插入的。
在一种可能的实施方式中,所述确定模块具体用于:
获取所述应用程序的已启动次数;
在获取到所述第一时刻和所述第二时刻后,根据所述第一时刻、所述第二时刻和所述已启动次数,确定所述应用程序的启动次数;
在所述应用程序的启动入口函数被执行后,根据所述统计代码和所述已启动次数,确定所述应用程序的启动次数。
在一种可能的实施方式中,所述确定模块具体用于:
获取所述第一时刻和所述第二时刻之间的时间差值;
根据所述时间差值和所述已启动次数,确定所述应用程序的启动次数。
在一种可能的实施方式中,所述确定模块具体用于:
若所述时间差值大于或等于第一阈值,则确定所述应用程序的启动次数为所述已启动次数加1;
若所述时间差值小于所述第一阈值,则确定所述应用程序的启动次数为所述已启动次数。
在一种可能的实施方式中,所述第一获取模块具体用于:
判断第一预设存储空间是否存在预设标记位;
在确定所述第一预设存储空间不存在所述预设标记位时,获取监听到所述页面出现消息的第一时刻、以及预先存储的所述应用程序最后一次广播页面消失消息的第二时刻。
在一种可能的实施方式中,所述装置还包括删除模块,其中,
所述删除模块用于,在所述第一预设存储空间存在所述预设标记位时,在所述预设存储空间删除所述预设标记位。
在一种可能的实施方式中,所述确定模块具体用于:
根据所述统计代码调用软件开发工具包SDK;
通过所述SDK将所述已启动次数加1,得到所述应用程序的启动次数;
在第一预设存储空间中写入预设标记位。
在一种可能的实施方式中,所述第一获取模块具体用于:
通过SDK监听所述应用程序广播的页面出现消息;
在通过所述SDK监听到所述页面消息时,获取监听到所述页面消息的第一时刻。
在一种可能的实施方式中,所述第一获取模块具体用于:
在第二预设存储空间中获取所述第二时刻。
在一种可能的实施方式中,所述装置还包括监听模块、第二获取模块和存储模块,其中,
所述监听模块用于,在所述第一获取模块所述在第二预设存储空间中获取所述第二时刻之前,通过SDK监听所述应用程序广播的页面消失消息;
所述第二获取模块用于,在通过所述SDK监听到所述页面取消消息时,获取监听到所述页面消失消息的第二时刻;
所述存储模块用于,在所述第二预设存储空间中存储所述第二时刻。
第三方面,本发明实施例提供一种启动次数确定装置,包括:处理器,所述处理器与存储器耦合;
所述存储器用于,存储计算机程序;
所述处理器用于,执行所述存储器中存储的计算机程序,以使得所述终端设备执行上述第一方面任一项所述的启动次数确定方法。
第四方面,本发明实施例提供一种可读存储介质,包括程序或指令,当所述程序或指令在计算机上运行时,如上述第一方面任意一项所述的启动次数确定方法被执行。
第五方面,本发明实施例提供了一种计算机程序产品,所述程序产品包括:计算机程序,所述计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得电子设备执行如上所述的方法。
本发明实施例提供的启动次数确定方法、装置及设备,由预设插件自动在应用程序的启动入口函数中插入调用代码,在应用程序冷启动时,启动入口函数中的调用代码可以调用SDK,通过SDK统计应用程序的冷启动次数。终端设备还可以根据监听到的应用程序的页面出现消息和页面消失消息,统计应用程序的热启动次数。在上述过程中,无需应用程序开发者在应用程序中添加对SDK进行调用的调用代码,降低了应用程序启动次数监控的复杂度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的启动次数确定方法的架构图;
图2为本发明实施例提供的启动次数确定方法的流程示意图;
图3为本发明实施例提供的另一种启动次数确定方法的流程示意图;
图4为本发明实施例提供的又一种启动次数确定方法的流程示意图;
图5为本发明实施例提供的一种启动次数确定装置的结构示意图;
图6为本发明实施例提供的另一种启动次数确定装置的结构示意图;
图7为本发明实施例提供的启动次数确定装置的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的启动次数确定方法的架构图。请参见图1,应用程序中包括启动入口函数,在应用程序启动时需要调用该启动入口函数。在应用程序下载至终端设备之前,需要先在应用程序的开发端对应用程序进行打包,在应用程序打包时运行预设插件,该预设插件在应用程序的启动入口函数中插入统计代码。在应用程序打包完成之后,用户可以将打包后的应用程序下载至终端设备。在终端设备下载应用程序时,还可以下载该应用程序对应的SDK,终端设备可以通过SDK统计应用程序的启动次数。
应用程序的启动包括冷启动和热启动。在应用程序的进程未运行在后台时,应用程序的启动为冷启动。在应用程序的进程运行在后台时,应用程序的启动为热启动。在应用程序冷启动时,应用程序需要调用启动入口函数,在启动入口函数被执行时,执行统计代码,在统计代码被执行时,统计代码调用SDK,并通过SDK统计应用程序的冷启动次数。在应用程序运行过程中,若应用程序显示一个新的页面,则应用程序广播页面出现消息,若应用程序取消显示一个页面,则应用程序广播页面消失消息,若应用程序取消显示一个页面与应用程序显示下一个页面之间的时长大于第一阈值,则认为应用程序发生了热启动,因此,终端设备通过SDK可以监听应用程序广播的页面出现消息和页面消失消息,并根据监听到的消息统计应用程序的热启动次数。
在本申请中,在打包过程中,由预设插件自动在应用程序的启动入口函数中插入调用代码,在应用程序冷启动时,启动入口函数中的调用代码可以调用SDK,通过SDK统计应用程序的冷启动次数。终端设备还可以根据监听到的应用程序的页面出现消息和页面消失消息,统计应用程序的热启动次数。在上述过程中,无需应用程序开发者在应用程序中添加对SDK进行调用的调用代码,降低了应用程序启动次数监控的复杂度。
下面,通过具体实施例对本申请所示的技术方案进行详细说明。需要说明的是,下面几个具体实施例可以相互结合,对于相同或相似的内容,在不同的实施例中不再进行重复说明。
图2为本发明实施例提供的启动次数确定方法的流程示意图。请参见图2,该方法可以包括:
S201、在监听到应用程序广播的页面出现消息后,获取监听到页面出现消息的第一时刻、以及预先存储的应用程序最后一次广播页面消失消息的第二时刻。
本发明实施例的执行主体可以为终端设备,也可以为设置在终端设备中的启动次数统计装置。可选的,终端设备可以为手机、电脑、电视等设备。可选的,启动次数统计装置可以通过软件实现,也可以通过软件和硬件的结合实现。
可选的,终端设备在下载应用程序时,可以下载SDK。终端设备可以通过SDK统计该应用程序的启动次数。
其中,页面出现消息用于指示应用程序显示一个新的页面。在应用程序的运行过程中,若应用程序显示一个新的页面,则应用程序广播一个页面出现消息。
在SDK内部,通过监听系统所有Activity页面的生命周期回调函数Android.app.Application.ActivityLifecycleCallbacks(),可以监听到应用程序中页面的显示和消失。例如,在应用程序显示一个新的页面时,应用程序调用生命周期回调函数onResume()函数,在该onResume()函数被调用后,应用程序可以广播一个页面出现消息。
终端设备可以通过SDK监听应用程序广播的消息,因此,在应用程序广播页面出现消息之后,终端设备通过SDK可以监听到该页面出现消息,相应的,第一时刻为终端设备通过SDK监听到页面出现消息的时刻。
其中,页面消失消息用于指示应用程序取消显示一个页面。在应用程序的运行过程中,若应用程序取消显示一个页面,则应用程序广播一个页面消失消息。
在SDK内部,通过监听系统所有Activity页面的生命周期回调函数Android.app.Application.ActivityLifecycleCallbacks(),可以监听到应用程序中页面的显示和消失。例如,在应用程序取消显示一个页面时,应用程序调用onPause()函数,在该onPause()函数被调用后,应用程序可以广播一个页面消失消息。
终端设备可以通过SDK监听应用程序广播的消息,因此,在应用程序广播页面消失消息之后,终端设备通过SDK可以监听到该页面消失消息,相应的,第二时刻为终端设备通过SDK监听到页面消失消息的时刻。
可选的,在终端设备通过SDK监听到一个页面消失消息之后,可以将接收到页面消失消息的第二时刻存储至第二预设存储空间。相应的,当终端设备需要获取第二时刻时,可以在第二预设存储空间获取第二时刻。
可选的,在终端设备向第二预设存储空间写入第二时刻时,若第二预设存储空间中不包括第二时刻,则直接将第二时刻写入第二预设存储空间,若第二预设存储空间中存在一个时刻,则可以将第二预设存储空间中的时刻更新为本次获取得到页面消失消息的第二时刻。即,在第二预设存储空间中存储着应用程序最后一次广播页面消失消息的第二时刻。
可选的,页面出现消息对应的页面为终端设备当前显示的页面,页面消失消息对应的页面为终端设备显示的上一个页面。
S202、根据第一时刻、第二时刻和应用程序的启动入口函数中的统计代码,确定应用程序的启动次数。
其中,统计代码为预设插件在启动入口函数中插入的。
可选的,在应用程序打包的过程中,运行预设插件,由预设插件在应用程序的启动入口函数中插入该统计代码。
例如,预设插件可以为gradle插件。启动入口函数可以为onCreate()函数。
可选的,在终端设备通过SDK监听到一个页面出现消息之后,终端设备则获取第一时刻、以及第二时刻,并根据第一时刻和第二时刻判断是否存在热启动。若终端设备确定存在热启动,则将应用程序的启动次数加1。
可选的,在SDK被统计代码调用之后,终端设备确定检测到一次冷启动,则将应用程序的启动次数加1。
本发明实施例提供的启动次数确定方法,由预设插件自动在应用程序的启动入口函数中插入调用代码,在应用程序冷启动时,启动入口函数中的调用代码可以调用SDK,通过SDK统计应用程序的冷启动次数。终端设备还可以根据监听到的应用程序的页面出现消息和页面消失消息,统计应用程序的热启动次数。在上述过程中,无需应用程序开发者在应用程序中添加对SDK进行调用的调用代码,降低了应用程序启动次数监控的复杂度。
在上述任意一个实施例的基础上,应用程序的启动包括冷启动和热启动,在应用程序冷启动和热启动时,终端设备对启动次数的统计方式不同,下面,分别通过图3-图4所示的实施例进行说明。
图3为本发明实施例提供的另一种启动次数确定方法的流程示意图。图3为应用程序冷启动时,终端设备对应用程序的启动次数的统计方式。请参见图3,该方法可以包括:
S301、在应用程序冷启动时,执行应用程序的启动入口函数。
可选的,应用程序冷启动时,调用应用程序的启动入口函数,在启动入口函数被调用之后,执行启动入口函数。
S302、根据启动入口函数中的统计代码,调用SDK。
由于启动入口函数中包括统计代码,因此,在执行启动入口函数的过程中,统计代码被调用(执行)。在终端设备执行统计代码时,可以调用统计代码对应的SDK。
S303、获取已启动次数,并通过SDK将已启动次数加1,得到应用程序的启动次数。
已启动次数是指终端设备统计到的、应用程序已经启动的次数。应用程序已经启动的次数包括冷启动次数和热启动次数。由于SDK实时进行启动次数统计,因此,应用程序的已启动次数为不断更新的。
S304、在第一预设存储空间中写入预设标记位。
为了避免对冷启动和热启动进行重复统计,可以在第一预设存储空间中写入预设标记位。
其中,在第一预设存储空间中包括预设标记位时,则在终端设备监听到页面出现消息之后,终端设备不根据第一时刻和第二时刻进行热启动次数的统计,具体的,请参见图4所示的实施例,此处不再进行赘述。
在图3所示的实施例中,由预设插件自动在应用程序的启动入口函数中插入调用代码,在应用程序冷启动时,启动入口函数中的调用代码可以调用SDK,通过SDK统计应用程序的冷启动次数。在上述过程中,无需应用程序开发者在应用程序中添加对SDK进行调用的调用代码,降低了应用程序启动次数监控的复杂度。
图4为本发明实施例提供的又一种启动次数确定方法的流程示意图。图4为应用程序热启动时,终端设备对应用程序的启动次数的统计方式。请参见图4,该方法可以包括:
S401、在监听到应用程序广播的页面出现消息后,判断第一预设存储空间是否存在预设标记位。
若是,则执行S402。
若否,则执行S403。
当预设存储空间存在预设标记位时,说明应用程序进行了冷启动,且监听到的页面出现消息为应用程序在冷启动之后显示的第一个页面对应的页面出现消息。为了避免重复进行启动次数的统计,在判断第一预设存储空间存在预设标记位时,即使监听到了页面出现消息,也不判断应用程序是否进行了热启动。
当预设存储空间不存在预设标记位时,说明监听到的页面出现消息不是应用程序在冷启动之后显示的第一个页面对应的页面出现消息,该页面出现消息为应用程序冷启动之后显示的第二个页面或者第二个页面之后的页面。该种情况下,不会重复进行启动次数的统计,因此,可以判断应用程序是否进行了热启动。
S402、在所述预设存储空间删除所述预设标记位。
S403、获取监听到所述页面出现消息的第一时刻。
需要说明的是,S403的执行过程可以参见S201的执行过程,此处不再进行赘述。
S404、在第二预设存储空间中获取应用程序最后一次广播页面消失消息的第二时刻。
可选的,页面消失消息对应的页面为终端设备显示的上一个页面时,在终端设备取消显示上一个页面时,应用程序广播页面消失消息,则终端设备可以通过SDK监听到应用程序广播的页面消失消息,并获取监听到该页面消失消息的第二时刻,在第二预设存储空间中存储该第二时刻。相应的,终端设备可以在第二预设存储空间中获取该第二时刻。
S405、获取所述第一时刻和所述第二时刻之间的时间差值。
例如,时间差值可以为30秒、40秒等。在实际应用过程中,可以根据实际需要设置该时间差值,本发明实施例对此不作具体限定。
S406、判断时间差值是否大于或等于第一阈值。
若是,则执行S407。
若否,则执行S408。
在Android应用中,由于页面的访问是连续的,所以如果出现一个页面的结束时间与下一个页面的开始时间有较大的间隔,则可以认为这段时间应用程序处于后台状态,即,发生了热启动。
在时间差值大于或等于第一阈值时,说明应用程序进行了热启动。在时间差值小于第一阈值时,说明应用程序未进行热启动。
S407、获取已启动次数,并确定应用程序的启动次数为已启动次数加1。
在确定应用程序发生了热启动之后,则将应用程序的启动次数加1。
S408、获取已启动次数,并确定应用程序的启动次数为已启动次数。
在确定应用程序未发生热启动,则不改变应用程序的启动次数。
在图4所示的实施例中,终端设备可以通过SDK监听应用程序的页面出现消息和页面消失消息,并根据监听到的应用程序的页面出现消息和页面消失消息,统计应用程序的热启动次数。在上述过程中,无需应用程序开发者在应用程序中添加对SDK进行调用的调用代码,降低了应用程序启动次数监控的复杂度。
图5为本发明实施例提供的一种启动次数确定装置的结构示意图。请参见图5,该启动次数确定装置10可以包括:第一获取模块11和确定模块12,其中,
所述第一获取模块11用于,在监听到应用程序广播的页面出现消息后,获取监听到所述页面出现消息的第一时刻、以及预先存储的所述应用程序最后一次广播页面消失消息的第二时刻;所述页面出现消息用于指示所述应用程序显示一个新的页面,所述页面消失消息用于指示所述应用程序取消显示一个页面;
所述确定模块12用于,根据所述第一时刻、所述第二时刻和所述应用程序的启动入口函数中的统计代码,确定所述应用程序的启动次数,所述统计代码为预设插件在所述启动入口函数中插入的。
本发明实施例提供的启动次数确定装置10可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
在一种可能的实施方式中,所述确定模块12具体用于:
获取所述应用程序的已启动次数;
在获取到所述第一时刻和所述第二时刻后,根据所述第一时刻、所述第二时刻和所述已启动次数,确定所述应用程序的启动次数;
在所述应用程序的启动入口函数被执行后,根据所述统计代码和所述已启动次数,确定所述应用程序的启动次数。
在一种可能的实施方式中,所述确定模块12具体用于:
获取所述第一时刻和所述第二时刻之间的时间差值;
根据所述时间差值和所述已启动次数,确定所述应用程序的启动次数。
在一种可能的实施方式中,所述确定模块12具体用于:
若所述时间差值大于或等于第一阈值,则确定所述应用程序的启动次数为所述已启动次数加1;
若所述时间差值小于所述第一阈值,则确定所述应用程序的启动次数为所述已启动次数。
在一种可能的实施方式中,所述第一获取模块11具体用于:
判断第一预设存储空间是否存在预设标记位;
在确定所述第一预设存储空间不存在所述预设标记位时,获取监听到所述页面出现消息的第一时刻、以及预先存储的所述应用程序最后一次广播页面消失消息的第二时刻。
图6为本发明实施例提供的另一种启动次数确定装置的结构示意图。在图5所示实施例的基础上,请参见图6,该启动次数确定装置10还包括删除模块13,其中,
所述删除模块13用于,在所述第一预设存储空间存在所述预设标记位时,在所述预设存储空间删除所述预设标记位。
在一种可能的实施方式中,所述确定模块12具体用于:
根据所述统计代码调用软件开发工具包SDK;
通过所述SDK将所述已启动次数加1,得到所述应用程序的启动次数;
在第一预设存储空间中写入预设标记位。
在一种可能的实施方式中,所述第一获取模块11具体用于:
通过SDK监听所述应用程序广播的页面出现消息;
在通过所述SDK监听到所述页面消息时,获取监听到所述页面消息的第一时刻。
在一种可能的实施方式中,所述第一获取模块11具体用于:
在第二预设存储空间中获取所述第二时刻。
在一种可能的实施方式中,启动次数确定装置10还包括监听模块14、第二获取模块15和存储模块16,其中,
所述监听模块14用于,在所述第一获取模块11所述在第二预设存储空间中获取所述第二时刻之前,通过SDK监听所述应用程序广播的页面消失消息;
所述第二获取模块15用于,在通过所述SDK监听到所述页面取消消息时,获取监听到所述页面消失消息的第二时刻;
所述存储模块16用于,在所述第二预设存储空间中存储所述第二时刻。
本发明实施例提供的启动次数确定装置10可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
图7为本发明实施例提供的启动次数确定装置的硬件结构示意图,如图7所示,该启动次数确定装置20包括:至少一个处理器21和存储器22。其中,处理器21和存储器22通过总线23连接。
在具体实现过程中,至少一个处理器21执行所述存储器22存储的计算机执行指令,使得至少一个处理器21执行如上的启动次数确定方法。
处理器21的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
在上述图7所示的实施例中,应理解,处理器可以是中央处理单元(英文:CentralProcessing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:DigitalSignal Processor,简称:DSP)、专用集成电路(英文:Application Specific IntegratedCircuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上所述的启动次数确定方法。
上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备中。
所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
根据本申请的实施例,本申请还提供了一种计算机程序产品,程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (14)
1.一种启动次数确定方法,其特征在于,包括:
在监听到应用程序广播的页面出现消息后,获取监听到所述页面出现消息的第一时刻、以及预先存储的所述应用程序最后一次广播页面消失消息的第二时刻;所述页面出现消息用于指示所述应用程序显示一个新的页面,所述页面消失消息用于指示所述应用程序取消显示一个页面;
根据所述第一时刻、所述第二时刻和所述应用程序的启动入口函数中的统计代码,确定所述应用程序的启动次数,所述统计代码为预设插件在所述启动入口函数中插入的;
所述获取监听到所述页面出现消息的第一时刻、以及预先存储的所述应用程序最后一次广播页面消失消息的第二时刻,包括:
判断第一预设存储空间是否存在预设标记位;所述预设标记位表示所述应用程序进行了冷启动;
在确定所述第一预设存储空间不存在所述预设标记位时,获取监听到所述页面出现消息的第一时刻、以及预先存储的所述应用程序最后一次广播页面消失消息的第二时刻;
所述根据所述第一时刻、所述第二时刻和所述应用程序的启动入口函数中的统计代码,确定所述应用程序的启动次数,包括:
获取所述应用程序的已启动次数;在获取到所述第一时刻和所述第二时刻后,获取所述第一时刻和所述第二时刻之间的时间差值,若所述时间差值大于或等于第一阈值,则确定所述应用程序的启动次数为所述已启动次数加1;若所述时间差值小于所述第一阈值,则确定所述应用程序的启动次数为所述已启动次数;
在所述应用程序的启动入口函数被执行后,根据所述统计代码和所述已启动次数,确定所述应用程序的启动次数。
2.根据权利要求1所述的方法,其特征在于,在所述第一预设存储空间存在所述预设标记位时,所述方法还包括:
在所述预设存储空间删除所述预设标记位。
3.根据权利要求1所述的方法,其特征在于,根据所述统计代码和所述已启动次数,确定所述应用程序的启动次数,包括:
根据所述统计代码调用软件开发工具包SDK;
通过所述SDK将所述已启动次数加1,得到所述应用程序的启动次数;
在第一预设存储空间中写入预设标记位。
4.根据权利要求1所述的方法,其特征在于,所述获取监听到所述页面出现消息的第一时刻,包括:
通过SDK监听所述应用程序广播的页面出现消息;
在通过所述SDK监听到所述页面出现消息时,获取监听到所述页面出现消息的第一时刻。
5.根据权利要求1所述的方法,其特征在于,获取预先存储的所述应用程序最后一次广播页面消失消息的第二时刻,包括:
在第二预设存储空间中获取所述第二时刻。
6.根据权利要求5所述的方法,其特征在于,所述在第二预设存储空间中获取所述第二时刻之前,还包括:
通过SDK监听所述应用程序广播的页面消失消息;
在通过所述SDK监听到所述页面消失消息时,获取监听到所述页面消失消息的第二时刻;
在所述第二预设存储空间中存储所述第二时刻。
7.一种启动次数确定装置,其特征在于,包括:第一获取模块和确定模块,其中,
所述第一获取模块用于,在监听到应用程序广播的页面出现消息后,获取监听到所述页面出现消息的第一时刻、以及预先存储的所述应用程序最后一次广播页面消失消息的第二时刻;所述页面出现消息用于指示所述应用程序显示一个新的页面,所述页面消失消息用于指示所述应用程序取消显示一个页面;
所述确定模块用于,根据所述第一时刻、所述第二时刻和所述应用程序的启动入口函数中的统计代码,确定所述应用程序的启动次数,所述统计代码为预设插件在所述启动入口函数中插入的;
所述第一获取模块具体用于:
判断第一预设存储空间是否存在预设标记位;所述预设标记位表示所述应用程序进行了冷启动;
在确定所述第一预设存储空间不存在所述预设标记位时,获取监听到所述页面出现消息的第一时刻、以及预先存储的所述应用程序最后一次广播页面消失消息的第二时刻;
所述确定模块具体用于:
获取所述应用程序的已启动次数;在获取到所述第一时刻和所述第二时刻后,获取所述第一时刻和所述第二时刻之间的时间差值;若所述时间差值大于或等于第一阈值,则确定所述应用程序的启动次数为所述已启动次数加1;若所述时间差值小于所述第一阈值,则确定所述应用程序的启动次数为所述已启动次数;
在所述应用程序的启动入口函数被执行后,根据所述统计代码和所述已启动次数,确定所述应用程序的启动次数。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括删除模块,其中,
所述删除模块用于,在所述第一预设存储空间存在所述预设标记位时,在所述预设存储空间删除所述预设标记位。
9.根据权利要求7所述的装置,其特征在于,所述确定模块具体用于:
根据所述统计代码调用软件开发工具包SDK;
通过所述SDK将已启动次数加1,得到所述应用程序的启动次数;
在第一预设存储空间中写入预设标记位。
10.根据权利要求7所述的装置,其特征在于,所述第一获取模块具体用于:
通过SDK监听所述应用程序广播的页面出现消息;
在通过所述SDK监听到所述页面出现消息时,获取监听到所述页面出现消息的第一时刻。
11.根据权利要求7所述的装置,其特征在于,所述第一获取模块具体用于:
在第二预设存储空间中获取所述第二时刻。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括监听模块、第二获取模块和存储模块,其中,
所述监听模块用于,在所述第一获取模块所述在第二预设存储空间中获取所述第二时刻之前,通过SDK监听所述应用程序广播的页面消失消息;
所述第二获取模块用于,在通过所述SDK监听到所述页面消失消息时,获取监听到所述页面消失消息的第二时刻;
所述存储模块用于,在所述第二预设存储空间中存储所述第二时刻。
13.一种启动次数确定装置,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至6任一项所述的启动次数确定方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至6任一项所述的启动次数确定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910570340.0A CN112148548B (zh) | 2019-06-27 | 2019-06-27 | 启动次数确定方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910570340.0A CN112148548B (zh) | 2019-06-27 | 2019-06-27 | 启动次数确定方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112148548A CN112148548A (zh) | 2020-12-29 |
CN112148548B true CN112148548B (zh) | 2023-08-08 |
Family
ID=73868973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910570340.0A Active CN112148548B (zh) | 2019-06-27 | 2019-06-27 | 启动次数确定方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112148548B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6324546B1 (en) * | 1998-10-12 | 2001-11-27 | Microsoft Corporation | Automatic logging of application program launches |
JP2010245770A (ja) * | 2009-04-03 | 2010-10-28 | Funai Electric Co Ltd | デジタル放送受信装置 |
CN102945618A (zh) * | 2012-11-28 | 2013-02-27 | 天津七一二通信广播有限公司 | 一种船舶自动识别终端设备在恶劣gps定位环境工作的方法 |
JP2013178619A (ja) * | 2012-02-28 | 2013-09-09 | Kyocera Document Solutions Inc | ハードディスク起動回数検出装置、画像形成装置 |
CN106406963A (zh) * | 2016-09-29 | 2017-02-15 | 杭州迪普科技有限公司 | 一种Linux系统的初始化方法和装置 |
CN107038085A (zh) * | 2016-02-03 | 2017-08-11 | 阿里巴巴集团控股有限公司 | 一种客户端应用的修复方法、装置及系统 |
WO2017219589A1 (zh) * | 2016-06-19 | 2017-12-28 | 乐视控股(北京)有限公司 | 程序崩溃消息的处理方法及系统 |
JP2018055532A (ja) * | 2016-09-30 | 2018-04-05 | パナソニックIpマネジメント株式会社 | 情報処理装置 |
CN108055643A (zh) * | 2017-12-13 | 2018-05-18 | 广东欧珀移动通信有限公司 | 定位控制方法、装置、存储介质及终端设备 |
CN109359020A (zh) * | 2018-08-16 | 2019-02-19 | 中国平安人寿保险股份有限公司 | 启动时间测试方法及装置、计算机装置及存储介质 |
CN109542724A (zh) * | 2018-11-14 | 2019-03-29 | 北京达佳互联信息技术有限公司 | 应用程序异常处理方法、装置、电子设备及存储介质 |
-
2019
- 2019-06-27 CN CN201910570340.0A patent/CN112148548B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6324546B1 (en) * | 1998-10-12 | 2001-11-27 | Microsoft Corporation | Automatic logging of application program launches |
JP2010245770A (ja) * | 2009-04-03 | 2010-10-28 | Funai Electric Co Ltd | デジタル放送受信装置 |
JP2013178619A (ja) * | 2012-02-28 | 2013-09-09 | Kyocera Document Solutions Inc | ハードディスク起動回数検出装置、画像形成装置 |
CN102945618A (zh) * | 2012-11-28 | 2013-02-27 | 天津七一二通信广播有限公司 | 一种船舶自动识别终端设备在恶劣gps定位环境工作的方法 |
CN107038085A (zh) * | 2016-02-03 | 2017-08-11 | 阿里巴巴集团控股有限公司 | 一种客户端应用的修复方法、装置及系统 |
WO2017219589A1 (zh) * | 2016-06-19 | 2017-12-28 | 乐视控股(北京)有限公司 | 程序崩溃消息的处理方法及系统 |
CN106406963A (zh) * | 2016-09-29 | 2017-02-15 | 杭州迪普科技有限公司 | 一种Linux系统的初始化方法和装置 |
JP2018055532A (ja) * | 2016-09-30 | 2018-04-05 | パナソニックIpマネジメント株式会社 | 情報処理装置 |
CN108055643A (zh) * | 2017-12-13 | 2018-05-18 | 广东欧珀移动通信有限公司 | 定位控制方法、装置、存储介质及终端设备 |
CN109359020A (zh) * | 2018-08-16 | 2019-02-19 | 中国平安人寿保险股份有限公司 | 启动时间测试方法及装置、计算机装置及存储介质 |
CN109542724A (zh) * | 2018-11-14 | 2019-03-29 | 北京达佳互联信息技术有限公司 | 应用程序异常处理方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
摩拜七月APP使用时长4680万小时 大幅领先ofo86%.电子技术与软件工程.2017,(17),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN112148548A (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110806925B (zh) | 音频播放方法及设备 | |
CN107635078B (zh) | 游戏控制方法及设备 | |
CN109634822B (zh) | 一种函数耗时统计方法、装置、存储介质及终端设备 | |
CN106681749B (zh) | 基于安卓平台的局部代码补丁更新方法及装置 | |
CN105260655A (zh) | 一种应用程序启动保护的方法、装置及系统 | |
CN110908734A (zh) | 基于插件化的应用组合方法、装置、终端设备及存储介质 | |
CN109117153B (zh) | 应用程序的处理方法、装置、终端和存储介质 | |
CN110851208A (zh) | 接口参数和响应数据修改方法及装置 | |
CN109901849B (zh) | 应用程序安装方法、装置、电子设备及存储介质 | |
CN108762983B (zh) | 多媒体数据恢复方法及装置 | |
CN112148548B (zh) | 启动次数确定方法、装置及设备 | |
CN108549557A (zh) | 应用留存方法、终端及存储介质 | |
CN110083355B (zh) | 一种app页面的处理方法及装置 | |
CN107670276A (zh) | 游戏应用控制方法及设备 | |
CN109976790B (zh) | 应用更新方法、装置、终端及存储介质 | |
CN108595238B (zh) | 应用界面的显示控制方法及装置 | |
CN113467854B (zh) | 应用程序启动方法、装置、电子设备及存储介质 | |
CN111464688B (zh) | 工作模式切换方法及装置 | |
CN112989323B (zh) | 进程检测方法、装置、终端及存储介质 | |
CN111124627A (zh) | 应用程序的调起者确定方法、装置、终端及存储介质 | |
CN113778496A (zh) | 固件升级方法、装置及电子设备和存储介质 | |
CN107643951B (zh) | 进程处理方法、装置及电子设备 | |
CN106055392A (zh) | 应用进入后台后的处理方法、测试方法及终端 | |
CN110888686B (zh) | 应用程序启动方法、设备和存储介质 | |
CN115480835A (zh) | 程序启动方法和设备、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |